51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

12
返回列表 发新帖
楼主: zhengpeipei
打印 上一主题 下一主题

[求助] 可否根据字体颜色来进行判断呢?

[复制链接]

该用户从未签到

21#
发表于 2009-7-2 13:44:40 | 只看该作者
我机器上没有QTP,用RFT写了一段演示脚本楼主参考一下吧。代码虽然不同,但是思路是相同的,在演示脚本中我只对用户名的不同的情况验证,并返回系统的提示信息文本和字体颜色。代码写的比较复杂,因为我写它也是因为手痒。在我们的自动化测试过程中,测试力度不会细到用户名这样的功能点,因为在我们看来,用户名合法性校验以及系统登录功能是否正确这样的功能,是不适合用自动化测试来做的,更适合人工执行

import resources.UsrnameTestHelper;
import com.rational.test.ft.*;
import com.rational.test.ft.object.interfaces.*;
import com.rational.test.ft.object.interfaces.SAP.*;
import com.rational.test.ft.object.interfaces.siebel.*;
import com.rational.test.ft.object.interfaces.flex.*;
import com.rational.test.ft.script.*;
import com.rational.test.ft.value.*;
import com.rational.test.ft.vp.*;
import com.cn.jiuqi.automation.ci.*;
import com.cn.jiuqi.automation.rft.*;

/**
* Description   : 对页面中的用户名文本框进行校验,在演示脚本中,只校验了用户名为空\用户名不符合规定长度\正确用户名三种情况
* @author wangyunpeng
*/
public class UsrnameTest extends UsrnameTestHelper
{
        /**
         * Script Name   : <b>UsrnameTest</b>
         * Generated     : <b>2009-7-2 下午12:51:18</b>
         * Description   : Functional Test Script
         * Original Host : WinNT Version 5.1  Build 2600 (S)
         *
         * @since  2009/07/02
         * @author wangyunpeng
         */
        public void testMain(Object[] args)
        {
                /*
                 * 首先定义要进行录入的测试数据,然后遍历数组,执行测试
                 * 其实用键值对更为合理,因为输入和输出应该是对应的,这里就暂时用一个switch做简单处理了.
                 */
                String[] usrnames = {"","@","test"};
                String expectMessage = "";//定义一个变量用来存储预期结果
                String expectColor = "";
                for(int i = 0; i < usrnames.length; i++){
                        this.inputUsrname(usrnames);//录入用户名;
                       
                        switch(i){//利用switch来设置预期结果
                        case 0:
                                expectMessage = "请输入登录名";
                                expectColor = "Color:red";
                                break;
                        case 1:
                                expectMessage = "长度必须4-16位";
                                expectColor = "Color:red";
                        case 2:
                                expectMessage = "";
                                expectColor = "";
                        }
                        //获取页面信息并进行校验
                        String message = this.getMessage();
                        String color = this.getColor();
                        /*
                         * 以下代码实现对结果的检查,这里只简单输出比较结果
                         * 实际测试中,此出的代码应做相应修改
                         */
                        if(message.equals(expectMessage) && color.equals(expectColor)){
                                System.out.println("当输入用户名:" + usrnames + "时,系统处理正确");
                        }
                }
        }
        /**
         * 执行录入用户名的操作
         * @param usrname
         */
        public void inputUsrname(String usrname){
                rft.getObject(".name", "username").setProperty(".value", usrname);//在用户名文本框中录入用户名;
                rft.getObject(".name", "password").click();//点击密码文本框以切换焦点;
        }
        /**
         * 录入用户名,并且返回对用户名的检查结果
         * @param usrname String 要进行录入的用户名
         * @return String 返回信息
         */
        public String getMessage(){
                if(this.isError()){//首先判断是否出现了错误信息提示框,如果有则返回文本
                        String message = rft.getObject(".id", "chk_username").getProperty(".text").toString();//获取提示信息的文本
                        return message;
                }
                return null;
        }
        /**
         * 当录入用户名后,返回提示信息的文字;
         * @return
         */
        public String getColor(){
                if(this.isError()){//首先判断是否出现了错误信息提示框,如果有则返回文本颜色
                        String color = rft.getObject(".id", "chk_username").getProperty("style").toString();//获取提示信息的文本
                        return color;
                }
                return null;
        }
       
        /**
         * 判断错误提示信息是否出现
         * @return boolean 出现输入不合法则返回true,否则返回false
         */
        public boolean isError(){
                return (null == rft.getObject(".id", "chk_username"));
        }
        /**
         * RftTools类是一个封装了RFT对象识别接口的工具类.
         */
        public RftTools rft = new RftTools();
}
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-9-20 13:53 , Processed in 0.074029 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表