最近在公司又进行了一次LoadRunner11性能测试,技能又get了一点,继续Mark起来!!!
一、异步/同步接口分离
之前在另一篇博文中有提到“事务拆分”的小节,即一个html页面包含了很多个接口,录制完毕后还需我们手动进行事务拆分。以上录制是基于[录制选项-常规-录制-基于HTML的脚本]进行录制的。
此种操作不仅增加后续需要手动拆分事务的繁琐,还无法区分和统计同步、异步接口的平均响应时间;而在性能测试过程中,我们是需要区分统计同步、异步接口请求,才能正确统计整个事务的响应时间。
此处从测试角度来简单描述何为同步、异步接口:同步,即执行一个接口需等待结果返回才能执行下一个接口;异步,可同时执行多个接口,不需要等待上一个接口请求返回结果后才可继续往下执行下一接口请求。
因此,异步请求接口组中,仅需计算统计耗时最长的接口的平均响应时间即可。
举个例子:一个事务中包含11个接口请求,其中10个接口为异步接口,剩余一个为同步接口。假设每个接口的平均响应时间均为1秒。当不区分同步、异步接口时,该事务的平均响应时间为11秒;而区分同步、异步接口时,该事务的平均响应时间仅为2秒。由此可看出在性能测试过程中区分统计同步、异步接口请求来计算事务的平均响应时间的重要性。
而在LoadRunner11中,我们可在[录制选项-常规-录制]中设置“基于URL的脚本”进行录制,这样就可以在脚本中完成事务拆分(即请求URL不会重定向到HTML页面下)、同步/异步接口拆分的工作。
设置录制“基于URL的脚本”后,对应的录制脚本中会出现web_concurrent_start(NULL)、web_concurrent_end(NULL)函数,分别用来标记异步请求接口组的开始、结束。
因此截图中“信息自检”事务的平均响应时间仅需计算web_url("apply.html")+异步请求组中耗时最长的接口+web_submit_data("query.v_12")的平均响应时间之和。不过事务的平均响应时间不用我们手动去统计,压测之后在分析测试结果的概要报告中各事务已根据同步、异步情况自行统计。
二、Notepad批量替换请求头
同样是在另一篇博文中有提到“添加请求头”小节,但如何在众多的url类、submit类请求前添加批量替换添加,接下来将讲解如何使用Notepad进行批量替换请求头。
将脚本复制到Notepad中,使用快捷键Ctrl+F调出查找替换窗口,在[替换]页签下填写查找目标、替换内容,查找模式选择“扩展”,最后进行全部替换即可。
查找内容:LAST);\r\n\r\n #即查找内容为“LAST);”且其后换两行的内容,其中\r\n 表示一个换行
替换内容:LAST); \r\n\r\n web_add_header("access-token","{b}");\r\nweb_add_header("loginaware","true");\r\n #标红部分为要添加的请求头
替换后的结果:
以上完成了使用Notepad进行批量替换请求头,可自行检查脚本是否替换完整并复制粘贴到LoadRunner中执行验证即可。