3.2.2 数据驱动的性能测试能力及测试数据的智能关联能力
性能测试的主要任务就是模拟一定数量的虚拟用户,按造指定的负载模型对被测系统进行各种操作,完成测试。因此,性能测试脚本的参数化能力和消息上下文数据的智能关联能力,就会成为性能测试员工作中的一个重要任务。
RPT在测试脚本录制和生成过程中,能够按照最佳实践经验,自动完成测试数据在不同消息间的智能关联(关联数据用紫色标识)。如图七所示,为了性能测试员更好的理解测试数据的来源,还可以选择指定的测试关联数据,右键菜单转至指定关联的数据源。此外,测试员还可以通过图形界面,自己建立数据关联关系,实现各种动态数据关联需求。
图六、PRT测试脚本的能力
图七、测试脚本中消息上下文中数据的智能关联 RPT会自动标识可能进行参数化的动态数据(用绿色标识),测试员可以通过右键选取指定的数据,如图八所示,选择用数据池变量替换,从而实现测试脚本的参数化任务。RPT使用绿的底色标识指定的变量由数据池中读取。当然,在测试员可以使用数据池之前,如图九所示,首先必须在性能测试项目中创建所需的数据池,数据池中的数据可以从外部文件中导入,也可以在数据池的数据编辑窗口中进行编辑。
图八、测试脚本参数化
图九、数据池的创建过程和数据池内容编辑窗口
通过以上描述,我们可以充分了解到RPT灵活、方便的测试脚本的参数化能力和上下文数据的智能关联能力,它们将会使性能测试员的性能测试工作变得更加轻松。
3.2.3 自定义Java脚本的使用
在测试脚本中添加自定义的Java代码,主要是为了实现对消息返回内容的验证、为其后的消息构造动态消息数据或为了完成如验证、加解密、日志记录等的特殊任务。RPT通过内置Java代码执行引擎,提供在测试脚本中灵活插入客户化Java代码的能力。性能测试员可以通过右键菜单(如图六所示),方便地在测试脚本中添加定制Java脚本。
图十、在测试脚本中加入定制代码
在加入定制代码过程中,性能测试员通常要根据需要为添加的Java类命名,然后,点击"生成代码"按钮,RPT可以自动生成测试脚本的框架;通过点击"查看代码"按钮,性能测试员可以对生成的代码进行编辑,实现所需的定制任务。自动生成的Java代码框架如下所示:
package test; import com.ibm.rational.test.lt.kernel.logging.IKLog; import java.util.Random; /** * @author Ning Dejun */ public class Random_Duration implements com.ibm.rational.test.lt.kernel.custom.ICustomCode { public Random_Duration() { } /** * @see com.ibm.rational.test.lt.kernel.custom.ICustomCode#exec(IKLog, java.lang.String[])*/ public String exec(IKLog log, String[] args) { /******** 以下部分是测试员所加入的定制代码 *****************/ // Function Generates a Random Trip duration from 1 to 7 days Random generator = new Random(); int iDuration = generator.nextInt(6)+1; String sDuration = new Integer(iDuration).toString(); log.reportMessage("Random Trip Duration: " + sDuration); return sDuration; /*************************************************************/ } } |
从代码中我们可以看到,性能测试员只要把要实现的逻辑写入exec()方法即可。定义了定制脚本之后,我们就可以在其后的测试脚本中使用自定义的代码,完成各种任务了。具体操作过程如图十一所示,RPT用桔黄色来标识变量的值来自定制的Java脚本。
图十一、在测试脚本中使用"定制代码"
文章来源于领测软件测试网 https://www.ltesting.net/