LoadRunner压力测试自学笔记

发表于:2020-12-28 09:43

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:空空七宝    来源:CSDN

  以下仅记录自己的学习过程,有不对之处欢迎指出。脚本中提到的链接是本人学习时查阅到的有帮助的文章,如果对原作者有影响,可以联系我做修改。
  压力测试步骤:
  1.分析需求
  2.准备脚本
  3.调试脚本
  1.分析需求
  (1)计算单次业务所需时间
  用loadrunner录制并调试好脚本后给需要计算的业务加上事务(未调试成功的脚本不能用,因为业务可能不成功,计算出的时间不准确),设置合理的think time(一般是5秒,或者根据自己的需求不需要设置think time)运行一次,查看事务用了多长时间。
  2.准备脚本
  可以录制也可以自己写,录制的话先按需求分好每一个action,录制时先切换到当前action,再进行录制。例如:创建一个新的脚本,在action里添加新的action,open_index,submit_login,sign_off(loadrunner自带案例的登录过程)。
  3.调试脚本
  (1)回放
  脚本准备好后进行回放,需要参数的提前准备好参数,比如注册功能。回放时打开日志,run-time-settin—always sand messages—extended log—parameter substitution,调试结束后可关闭日志或修改成错误时发送。回放结束后在tasks—verify replay—visual test results查看回放结果,打开每个step查看回放是否成功,如下图所示。不能看replay status的返回结果,有时会显示No errors detected,但不代表回放成功了。
  (2)关联
  先看一下为什么要进行关联以及关联的本质。
  为什么要进行关联?
  在录制生成的脚本中,录制到了一些服务器分配的数据,比如sessionID,回放时脚本用的是录制的数据,即旧的sessionID,但回放请求服务器时,服务器重新分配了新的sessionID,回放用的sessionID与服务器新分配的不一致,就会导致请求失败。这时候就需要把服务器分配的新的sessionID存到参数中,再次使用时直接从参数中读取。关联不止适用于获取sessionID,还可以用来获取其他浏览器分配的数据。
  关联的本质
  关联就是用函数获取服务器分配的数据,存储到参数中,需要使用时从参数中取出,从而保证使用的是服务器最新分配的数据。
  其实关联也属于一种特殊的参数化,只是与一般的参数化有些不同。一般的参数化的参数来源于一个文件、一个定义的table、通过sql写的一个结果集等,但关联所获得的参数是服务器响应请求所返回的一个符合条件的、动态的值。
  以下是关联的步骤:
  如果没有关联直接回放脚本会发现回放出现错误,如下图:
  关联函数:web_reg_save_param(const char *ParamName, , LAST)
  关联步骤:
  a.录制脚本后打开树视图—show record and replay snapshots—http view—row data—response。找到需要做关联的地方,如下图,如果找不到userSession,可以在path下挨个选中路径。然后查看Rawdata里有没有需要找的数据。
  b.全选复制response中的内容到notepad++,找到userSession行,在下一行输入web_reg_save_param函数,输入顺序如下图,先输入web_reg_save_param("","","",LAST); ,再往里填充内容,其中第一个“”中输入参数名,例如usersession;第二个“”中输入左边界,例如LB=userSession value=;第三个“”中输入右边界,例如>。左右边界是为了让函数找到需要关联的值,左右边界中间的值是需要关联的值。(如果输入的内容包含"号,则在"号左边加上\),如下图,图中分别列出了有"号和没有"号的,具体根据自己的情况参考。web_reg_save_param函数还有很多其他的参数,不同的情况用到的参数可能不一样,具体的可以自己去查阅。
  c.把写好的函数插入到脚本第一个action中,即open_index里,如下图(关联函数放置位置这块我还没搞懂,具体可参考: https://blog.csdn.net/u011446864/article/details/38395975)。然后在脚本中找到需要替换的Usersession的值,替换成之前在函数web_reg_save_param中定义的参数名,即usersession,示例脚本在submit_login中,如下图,这是已经替换过参数的,未替换的应该是类似于 value=130067.248926691zzQADDtpVVzzzzzHtAVtcpAAtH> 这样的。替换参数后保存脚本然后回放。
  如果回放时replay log中报错Error -26377: No match found for the requested parameter,则在runt time setting中internet protocol-preferences中的advaced区域有一个winlnet replay instead of sockets选项,勾选后再运行就好了,具体参考链接:https://www.testwo.com/blog/5531 如下图:
  下图是关联后的运行结果,可以看到运行正确了。

  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号