完成脚本录制过程以后,RFT会自动生成用工业标准语言Java描述的测试脚本,如下所示:
import resources.ThirdwithDatapoolHelper;
import com.rational.test.ft.*;
import com.rational.test.ft.object.interfaces.*;
import com.rational.test.ft.scrīpt.*;
import com.rational.test.ft.value.*;
import com.rational.test.ft.vp.*;
/**
* Descrīption : Functional Test scrīpt
* @author ndejun
*/
public class ThirdwithDatapool extends ThirdwithDatapoolHelper
{
/**
* scrīpt Name : <b>ThirdwithDatapool</b>
* Generated : <b>2005-4-17 15:22:36</b>
* Descrīption : Functional Test scrīpt
* Original Host : WinNT Version 5.1 Build 2600 (S)
*
* @since 2005/04/17
* @author ndejun
*/
public void testMain(Object[] args)
{
startApp("ClassicsJavaB");
// Frame: ClassicsCD
classicsJava(ANY,MAY_EXIT).close();
}
}
基于Java的测试脚本,为高级测试软员提高了更强大的编程和定制能力,测试员甚至可以通过在Helper类中加入各种客户化脚本,实现各种高级测试功能。
3.2 使用RFT轻松实现数据驱动的软件测试
RFT具有基于向导(Wizards)的数据驱动的功能测试能力。在功能测试脚本的录制过程中,如图四所示,我们可以方便选择被测应用图形界面上的各种被测对象,进行参数化,通过生成新的数据池字段或从数据池中选择已存在数据字段,实现数据驱动的功能回归测试。
图四、数据驱动的功能测试
在生成测试脚本的同时,RFT还能够帮助测试员在验证点中使用正则表达式或使用数据驱动的方法建立动态验证点。动态验证点用来处理普通验证点的期望值随着输入参数不同而发生变化的情况。在下面的例子中,如图五所示,订单总金额会随着购买商品数量的不同而变化,通过数据驱动的功能测试方法,测试员首先要对购买的商品数量和订单总金额进行参数化,然后编辑验证点中的期望值,将其用数据池中的对应订单总金额代替,这样验证点中的总金额就随着购买商品数量的不同而得出正确的总金额。通过简单操作、无需任何编程,测试员就可以很方便地实现动态验证点的功能。
图五、生成动态验证点
此外,测试员还可以通过在验证点中使用正则表达式,建立更加灵活的验证点,保证测试脚本的重用性。
图六、正则表达式在验证点中的应用