用户访问某个网站或软件,一般不会不停地做个各种操作,例如一次查询,用户需要时间查看查询的结果是否是自己想要的。例如一次订单提交,用户需要时间核对自己填写的信息是否正确等。
也就是说用户在做某些操作时,是会有停留时间的,我把这个时间叫思考时间。但利用代码去执行的时候是没有时间的,当然,脚本运行本身是需要时间的,但比起人的思考时间要小很多。这也是我们为什么要用软件来代替人的某些工作。
但有时候,我们在做性能测试时,为了更真实的模拟用户的操作,需要给代码加入思考时间。来看看在loadrunner是如何设置思考时间的。
打开loadrunner 的Virtual User Generator
菜单栏:Vuser ---Run-Time settings...,切换到Thark Time选项
好吧!为了更好的理解这个界面上设置,现在我们通过一个脚本来分析。
Action() { double trans_time; //定义变量 web_url(, , , , , , , LAST); web_url(, , , , , , LAST); web_url(, , , , , , LAST); web_url(, , , , , , LAST); lr_start_transaction(lr_think_time(20); //设置思考时间 web_url(, , , , LAST); web_url(, , , , , , LAST); web_link(, , , LAST); web_custom_request(, , , , , , , , , , EXTRARES, , , ENDITEM, , , ENDITEM, , , ENDITEM, LAST); web_url(, , , , , , , EXTRARES, , , ENDITEM, LAST); web_url(, , , , , , , EXTRARES, , , ENDITEM, , , ENDITEM, , , ENDITEM, , , ENDITEM, LAST); trans_time=lr_get_transaction_wasted_time(); (trans_time) { lr_output_message(,trans_time); //打印输出消耗实时间 }else{ lr_output_message(); } lr_end_transaction(,LR_AUTO); //事务结束 return 0; }
脚本有点长,但不要被吓到了,重要的几句我已经加了注释。你只用关注那几行就行了。
lgnore think time :忽视思考时间,也就说勾选这一项的时候 ,你脚本中加入的lr_think_time 函数设置是无效的。选中这一项,运行上面的脚本。
Action.c(62): The duration up to the submit is 0.032043 seconds Action.c(ended with status (Duration: 12.4113 Wasted Time: 0.0320).
虽然我在脚本中加入了lr_think_time(20); 这条语句,显现没起到任何作用。
Replay think time:回放思考时间
来看第一个选项:
As recorded : 取决于记录,选种这一项再来运行上面的脚本。
Action.c(111): The duration up to the submit is 0.034508 seconds Action.c(ended with status (Duration: 50.4453 Think Time: 20.0000 Wasted Time: 0.0345). Ending action Action.
运行结果中多了一个 Think Time: 20.0000 ;这说明我们脚本中的lr_think_time(20); 起到了作用,选中这一项后,我们可以在脚本中任意的添加思考时间。
Multiply recorded think time by: 录制思考时间乘以,使用录制思考时间的倍数。
其实,在我们脚本录制的过程中,根据我们的操作,脚本中就可以生成相应的思考时间。这个参数是根据脚本中的思考时间进行调整的。
例如:脚本是
Action.c(111): The duration up to the submit is 0.036610 seconds Action.c(ended with status (Duration: 131.2022 Think Time: 9.9998 Wasted Time: 0.0366).
注:将原谅脚本会有0.0002秒的误差。
Use random percentage of recorded think time : 使用录制思考时间的百分比。
通过指定思考的时间的范围,可以设置思考时间值的范围。假如思考时间为
Action.c(111): The duration up to the submit is 0.036191 seconds Action.c(ended with status (Duration: 40.8002 Think Time: 15.0050 Wasted Time: 0.0362).
这一次Think Time: 为15.0050 ,是在
Limit think time to: 限制思考时间的最大值。
假如脚本设置的思考时间为
感谢: