|
我机器上没有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();
} |
|