学习三、开发测试脚本
开发测试脚本需要几个步骤:
关于脚本的录制就不再多说,需要注意的是基于HTML录制脚本还是基于URL录制脚本。默认是‘HTML-based Script’,说明脚本中采用HTML页面的形式来表示,这种方式的脚本容易维护和理解,推荐这种方式。‘URL-based Script’说明脚本中的表示采用基于URL的方式,这种方式看上去比较乱。
可以按照以下参考原则选择录制方式:
- 基于浏览器的应用程序推荐使用HTML方式
- 不是基于浏览器的应用程序推荐使用URL方式
- 如果基于浏览器的应用中包含了JavaScript并且该脚本向服务器产生了请求,比如DataGrid的分页按钮等,也要使用URL方式
- 基于浏览器的应用中使用了HTTPS安全协议,使用URL方式
完善测试脚本主要有以下几部分:
- 插入事务:为了衡量服务器的性能,我们需要定义事务。可以在录制过程中插入,也可以在完成后在脚本中插入。事务的名称最好有意义。
示例代码如下:
lr_start_transaction("SubmitBookData");
/*
* 中间代码是具体的事务操作
*/
lr_end_transaction("SubmitBookData", LR_AUTO);
- 插入集合点:插入集合点是为了衡量在加重负载的情况下服务器的性能情况。需要注意的是:集合点只能插入到Action部分,不能插入到vuser_init和vuser_end中。
示例代码如下:
lr_rendezvous("SubmitQueryData");
- 插入注释:好的注释对我们之后阅读、修改脚本有很大的帮助。最好是在录制过程中插入。
- 参数化:多个虚拟用户运行同一份脚本时,提交相同的数据可能会引起冲突。为了更加真实的模拟实际环境,需要各种各样的输入。参数化输入是一种不错的方法。参数化的方法已经学过,这里重点看下参数的类型:
- DateTime:输入日期/时间的地方,可以用DateTime替代。
- Group Name:在实际运行中,LR使用该虚拟用户的组名来代替,但在VuGen运行时会是None
- Load Generator Name:实际运行时,LR使用该虚拟用户所在的Generator机器名来替代
- Iteration Number:实际运行时,LR使用该测试脚本当前循环次数来替代
- Random Number:随机数,可设置范围。
- Unique Number:唯一的数,可设置第一个数以及递增的数的大小。
- Vuser ID:实际运行中,LR使用该虚拟用户的ID来替代,在VuGen运行时,ID将会是-1。
- File:从文件获取数据,也可从数据库
- User Defined Function:从用户开发的dll文件提取数据。
- 插入函数:LR使用C语言,可以使用C语言中的函数和数据类型,如if…else,strcmp等,也有LR提供的函数。
- 插入Text/Imag检查点:检查点用于检查某一步的返回值里有没有想要的图片或文字内容。文字检查点可根据某个字符串设定只搜索该字符串左/右边的字符串,搜索字符串可以使用正则表达式。图片与文字类似,可以用alt或src属性搜索。