dreamever 发表于 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.1Build 2600 (S)
       *
       * @since2009/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 [2]
查看完整版本: 可否根据字体颜色来进行判断呢?