作者:为徐嘉伟丷默哀 | 来源:互联网 | 2023-10-10 09:53
一、录制脚本测试脚本的录制过程可以参考下面这位仁兄的博客,写的很是详细:http:www.cnblogs.comchengtchp5965656.html二、修正脚本使用
一、录制脚本
测试脚本的录制过程可以参考下面这位仁兄的博客,写的很是详细:
http://www.cnblogs.com/chengtch/p/5965656.html
二、修正脚本
使用VUGen录制好脚本后,还需要对脚本进行调试和修改才能保证脚本的正确性。另外,为了方便Analysis对测试结果得分析,还需要在录制好的脚本中修正一些内容。
一般来说,对脚本的修正包括:参数化处理,关联,插入事务,增加检查点等。前两者后面学习过程中再做补充,先说后面两点。
1、插入事务
在LoadRunner中,Analysis应用会针对事务(Transaction)对Response Time进行统计。例如,脚本中有个“查询”操作,为了明确知道“查询”这一操作的响应时间,我们就可以把“查询”这一操作当做一个事务来处理,在开始查询之前和查询结束后插入事务标记,这样LR在运行脚本到开始点时就会计时,直到终止点时结束计时,该事务的运行时间就会在Analysis的结果中体现出来。
插入事务可通过菜单栏和工具条来插入,也可以直接在脚本中增加代码来实现。LR中标识事务开始和结束的函数是:
lr_start_transaction("写信");
lr_end_transaction("写信");
需要注意的是事务的名称最好有意义,能够清楚地说明该事务完成的动作。
通过脚菜单栏和工具条标识事务的操作如下:
2、插入集合点
插入集合点是为了衡量在加重负载的情况下服务器的性能情况。在测试计划中可能要求测试系统能够同时承受1000个人同时提交数据,在LR中,可以在提交数据操作前加入集合点,这样当虚拟用户运行到提交数据的集合点时,LR会检查同时有多少个用户运行到了集合点,如果不到1000人,LR就会命令已经到达集合点的用户等待,直到达到1000人时,LR会命令1000人同时去提交数据。
可以直接在脚本中插入代码:lr_rendezvous("提交");也可以点击菜单栏的Insert选择插入:
3、插入函数
VuGen中可以使用C语言中比较标准的函数和数据类型,语法和C语言相同。比如控制脚本流程:if(){}else{},for(),while{}......,也会用到一些字符串函数,像:比较两个字符串的strcmp(),拼接两个字符串的strcat()函数,复制字符串的strcpy()函数等。
4、插入Text/Image检查点
在进行压力测试时,为了验证Web服务器返回的网页是否正确,VuGen允许插入Text/Image检查点,这些检查点验证网页上是否存在指定的Text或Image,还可以测试在比较大的压力测试环境中,被测网站的功能是否保持正确。
录制过程中,添加检查点的方法是:
(1)选中需要检查的文本内容;
(2)单击录制工具条上的“插入文本检查点”的按钮。
如果是在录制完成后添加,首先要切换到TreeView视图,然后从树型菜单中选中需要插入检查的一项,然后单击鼠标右键,选中将检查点插入到该操作的执行前或执行后。
插入成功后脚本中会出现下面代码:web_find("web_find","What=恭喜",LAST);
5、设置Think-time
Think Time,一般被称为是思考时间,也可以称作休眠时间,从业务的角度来说,该时间指的是用户在进行操作时,每个请求之前的间隔时间。从自动化测试实现的角度来说,要真实的模拟用户操作,就必须在测试脚本中让各个操作之间等待一段时间。体现在脚本上,就是在脚本的操作之间放置一个Think的函数,使得脚本在执行两操作之间等待一段时间。
但是,如何才能给定一个合适的Think Time呢?
其实,思考时间和迭代次数,并发用户数和吞吐量之间存在着一定的关系。这里先给出个计算思考时间的一般方法:
(1)首先计算出系统的并发用户数;
(2)统计出系统的平均吞吐量;
(3)统计出平均每用户发出的请求数量;
(4)根据公式计算出思考时间。
这里给出两个公式:
(1)吞吐量的计算公式:F=VU * R / T,其中F为吞吐量,VU表示虚拟用户个数,R表示每个虚拟用户发出的请求数,T表示性能测试所用的时间;这是在没有遇到性能瓶颈的时候,由于吞吐量与虚拟用户数之间存在一定的联系,所以可以使用该公式来计算系统的吞吐量。
(2)思考时间的计算公式:R = T / TS
上面两个公式变形后可以看出,F和VU成正比,和TS成反比。
最后,设置思考时间只需要在脚本中相应的位置插入代码:lr_think_time(s);