loadrunner压力测试学习笔记

loadrunner学习过程
以下仅记录自己的学习过程,有不对之处欢迎指出。脚本中提到的链接是本人学习时查阅到的有帮助的文章,如果对原作者有影响,可以联系我做修改。
压力测试步骤:
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)关联:
先看一下为什么要进行关联以及关联的本质
以下这段有参考文章:https://blog.csdn.net/qq_34659777/article/details/81947433
为什么要进行关联?
在录制生成的脚本中,录制到了一些服务器分配的数据,比如sessionID,回放时脚本用的是录制的数据,即旧的sessionID,但回放请求服务器时,服务器重新分配了新的sessionID,回放用的sessionID与服务器新分配的不一致,就会导致请求失败。这时候就需要把服务器分配的新的sessionID存到参数中,再次使用时直接从参数中读取。关联不止适用于获取sessionID,还可以用来获取其他浏览器分配的数据。
关联的本质
关联就是用函数获取服务器分配的数据,存储到参数中,需要使用时从参数中取出,从而保证使用的是服务器最新分配的数据。
其实关联也属于一种特殊的参数化,只是与一般的参数化有些不同。一般的参数化的参数来源于一个文件、一个定义的table、通过sql写的一个结果集等,但关联所获得的参数是服务器响应请求所返回的一个符合条件的、动态的值。
脚本是否需要关联以及关联的位置可以参考如下链接:
https://blog.csdn.net/u011446864/article/details/38395975

以下是关联的步骤:
如果没有关联直接回放脚本会发现回放出现错误,如下图
在这里插入图片描述

在这里插入图片描述
关联函数:web_reg_save_param(const char *ParamName, , LAST); 具体用法参考:https://www.cnblogs.com/qmfsun/p/4900272.html
关联步骤:
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 如下图
在这里插入图片描述
下图是关联后的运行结果,可以看到运行正确了。
在这里插入图片描述
这次先写到这里,下次有空再来更新…

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值