5.6.2 Rendezvous Point(同步点)
要在系统上模拟较重的用户负载,需要同步各个Vuser以便在同一时刻执行任务。通过创建集合点,可以确保多个Vuser同时执行操作。当某个Vuser到达该集合点时,Controller会将其保留,直到参与该集合的全部Vuser都到达。当满足集合条件时,Controller将释放Vuser。
可通过将集合点插入到Vuser脚本中来指定会合位置。在Vuser执行脚本并遇到集合点时,脚本将暂停执行,Vuser将等待Controller允许继续执行。Vuser被从集合释放后,将执行脚本中的下一个任务。
下面脚本以多用户运行时(在Controller中执行场景),所有的用户会一同发起登录请求。
Lr_rendezvous("the begin port"); web_submit_form("auth", "Snapshot=t2.inf", ITEMDATA, "Nhttp://bbs.51testing.com/thread-10 LAST); |
提示:只能在Action中添加集合点(不能在vuser_init/vuser_end中添加)。
提示:因为同步点是协调多个虚拟用户的并发操作,显而易见,在VU运行脚本时,同步点是没有任何意义的,只有Controller多用户并发场景时,同步点的意义才表现出来(我们在Controller一章中会有详述)。
思考
在Transaction的开始和结束中间,插入同步点会对Transaction有什么影响?
5.6.3 注释
写脚本和写程序一样,应该养成经常写注释的习惯。
在LoadRunner C脚本中,LoadRunner支持C的注释方法。
以下是文件头注释,如图5-23所示。
图5-23 VU脚本信息注释
也可插入注释以描述脚本函数功能的信息,如图5-24所示。
图5-24 VU脚本函数注释
5.6.4 Think Time(思考时间)
用户在执行两个连续操作期间等待的时间称为“思考时间”。Vuser使用lr_think_time函数模拟用户思考时间。录制Vuser脚本时,Vugen将录制实际的思考时间并将相应的lr_think_time语句插入到Vuser脚本。可以编辑已录制的lr_think_time语句,而且可以向Vuser脚本中手动添加更多的lr_think_time语句。
提示:添加以上语句的途径有多种,我们可以通过Tree View、Script View以及快捷图标来添加事务、同步点、思考时间和注释等函数。
提示:lr_think_time的参数单位是秒,比如lr_think_tim(5)意味着LoadRunner执行到此条语句时,停留5秒,然后再继续执行后面的语句。
提示:如果不想在脚本中执行Think Time语句,需要逐条语句删除,那是件很麻烦的事情,所以LoadRunner提供了在Run-time Settings中可以设置直接忽略Think Time,而不用修改脚本,如图5-25所示。
图5-25 在VU运行时设置中忽略Think Time
上述设置生效后,脚本运行时,脚本中所有的lr_think_time语句都不会被执行。
思考
在一个Transaction里,插入lr_think_time语句,对Transaction会有什么影响?
思考
有Think Time的脚本和没有Think Time的脚本相比,哪个给服务器造成的压力大?哪个更符合用户实际的工作场景?
连载一 连载二 连载三 连载四 连载五 连载六 连载七 连载八 连载九 连载十 连载十一 连载十二 连载十三 连载十四 连载十五 连载十六 连载十七
本文选自:《51Testing软件测试作品系列》之一的《性能测试从零开始——LoadRunner入门》 ,本站经电子工业出版社和作者的授权,近期将进行部分章节的连载,敬请期待!
版权声明:51Testing软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像。51testing软件测试网欢迎与业内同行进行有益的合作和交流,如果有任何有关内容方面的合作事宜,请联系我们。