Jmeter验证码注册接口压力测试实战
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jmeter验证码注册接口压力测试实战相关的知识,希望对你有一定的参考价值。
参考技术A 主要学习的内容包括发送HTTP请求、HTTP信息头管理器、HTTP cookies管理器、用户定义的变量、响应断言、CSV数据文件设置的使用。提供的测试网址为: http://www.qk365.com/security/register
使用Chrome浏览器,先将浏览器的cookies缓存清空。
清空后,打开待测试的网址,按F12键,输入要注册的手机号码,如“18300987622”,点击“发送验证码”,可以看到请求的接口为: http://www.qk365.com/security/smsCode.do ,请求的参数为json格式的数据:"mobile":"18300987622","func":"register","isValidate":"1","memKey":"register-18300987622","memValue":"7F4BEC3A-BE2F-48C7-91ED-33887E186C87",在知道接口后,就可以开始我们的接口测试了。
默认环境已经有的条件下(这里不对jmeter运行环境如何搭建做过多的描述,请自行上网查找环境搭建的相关资料),双击jmeter.bat。出现如下界面设置工具的显示语言,Options→Chose Language→Chinese
完成上述步骤后,创建HTTP请求,包括:HTTP请求头,HTTP请求体以及察看结果树
1、在测试计划中添加线程组
2、在线程组中添加配置元件,HTTP信息头管理器,将刚才注册页面的请求头选中并且复制,在HTTP信息头管理器中单击“Add from Clipboard”完成请求头的复制
3、在线程组中添加HTTP请求,请求的请求体为图下内容
4、线程组添加察看树,点击启动按钮,查看请求结果
5、为响应结果添加断言,只有响应结果中包含"msg":"短信发送成功"的响应数据,这个请求才算是成功
模拟5个用户执行以上的测试过程,我们发现只有第一次是成功的,其余的返回"msg":"短信验证码发送过于频繁"
发现原来是每个请求的请求手机号是一样的,导致失败
这时候可以使用配置元件,CSV数据文件设置每次请求的手机号是不同的,在这里我准了一份手机号码的excel文件,需要注意的是保存这个文件的时候要保存成.CSV格式的,这里我将这份文件放到jmeter的examples目录下
在CSV数据文件配置中填写如下信息,然后修改验证码接口中HTTP请求的请求体,最后再执行一次,发现每次请求使用的手机号是不同的,并且请求成功
修改线程组参数,添加聚合报告等,对接口进行压力测,这里可以把察看结果树禁用了,因为在请求很多的情况下,会影响工具性能。最后等结果
需要注意的是启动jmeter.bat提示的那段话,压力测试要用非界面模式,界面模式用来生成脚本,调试没有问题了,再进行非界面的压力测试
这部分内容网上能查询包相关信息,这里不进行讲解。
这个平台可以频繁的刷验证码接口,这本身就是一个bug。前端的滑动验证功能就是形同虚设的。
如果你看到这里,希望你能看一下这一篇博文 Jmeter验证码图片识别注册接口压力测试实战 ,希望对你有所收获
记jmeter接口测试动态获取验证码
在用jmeter做接口测试时,需要动态的获取验证码,以便在登录成功后可以获取token,但是在测试的过程中,遇到了一个问题,想在这里给大家分享一下:
- 环境描述 在获取验证码的http请求下加后置处理器jp@gc - JSON/YAML Path Extractor
- jp@gc - JSON/YAML Path Extractor错误的匹配规则:$..data.code,获取的结果中出现一些乱码,可能是“”,按照规则查询时是可以查询到的
3. jp@gc - JSON/YAML Path Extractor错误的匹配规则:$.data.code,获取的结果正确,按照规则查询时结果和上面的相同
4. 结果比较
从上面的对比来看,规则查询的结果一致,但实际结果是不一致的
如果用JSON Extractor不会出现上述的错误。
以上是关于Jmeter验证码注册接口压力测试实战的主要内容,如果未能解决你的问题,请参考以下文章