jmeter压力测试_用Jmeter实现对接口的压力测试

一、多个真实用户对接口的压力测试

1. 获取多个真实用户的token的两种方法:

1)第一种:让开发帮忙生成多个token(多个用户账户生成的token),导出为csv格式的文件(以下步骤均以该方法为基础)

be1a439119722eb2a77b6158462ce54c.png

2)第二种:自己设置多个用户账户和密码,并存储于txt文件中,文件名称叫:login.txt(使用详情见步骤三)

1f6d4799deec7eed395934aca32fb2ff.png

2. 新建线程组,并根据需求设置”线程数“和”时间“

2ea1c40a6c9d27db7a4dc7724fa9272f.png

3. 在线程组下创建HTTP Header Manager,并设置信息头中的参数和值

1)该信息头放在了线程组下面,所以是针对该线程组下所有的接口;

2)不是所有的请求都需要设置信息头。若后端需要一些验证信息,比如“app的版本号”,“token”等,需要HTTP Header Manager 来保证发送HTTP请求的正确,否则是不需要的。

3)接口发送请求时,需要获取登录接口返回的token值,用”${token}“引入该变量

4)token变量的值取自步骤1中的csv文件,如何设置,请看步骤4

354e5cc21bc6a99e0c469d1d9094f534.png

4. 在线程组下添加CSV数据文件设置

1)从本地添加带有token信息的csv文件、设置文件编码为”UTF-8“

2)变量名称设置为”token“,方便信息头调用

728b427ef51c2bbb142435af6474dae8.png

5. 添加http请求

1)设置协议、服务器名称、端口号、方法和路径(用charles等工具抓包即可得到接口信息)

901b2fc7abdf28f554c96a6ba87906d6.png

6. 添加查看结果树和汇总报告,运行后查看结果

14dff2a8db7f1d3b6e0fbc816d151521.png

二、模拟单个用户获取token并应用在其他接口

1. 在登录接口请求下添加"JSON Extractor",设置变量名、接口响应数据中字段名

ec5efd4cc8c3a9ad26b8b9645b40d759.png

2. 把步骤1中的变量名应用于其他需要该变量的接口中即可,比如图中的asset_main接口的headers中

2a47042a92cd082bba0e4aa85e48dfb1.png

3. 用Debug Sampler检查变量的值是否取到,在察看结果树中查看“登录”和“Debug Sampler”中的值

3caf99970a35b6a28fbb005f654a5542.png

三、模拟多个用户获取token并应用在其他接口

1. 创建login.txt文件,并在CSV Data Set Config中选择该文件所在路径

fc482638c02022c0891f495653419e90.png

2. 把登录接口中的用户账户和密码参数化,名称与CSV Data Set Config中保持一致

e82ea4a0d81fe274d25f7df120333648.png

3. 在其他接口中的应用和步骤二一样,用户账户和密码的调用是按照顺序从上到下,可以在“察看结果树”中查看多个登录接口的请求参数phone_number(对应变量account)和password

75c5b0528ed86351b8f3d459e636c0d9.png

四、绝对并发、多场景混合并发

1. 使用Synchronizing Timer(同步定时器)实现绝对并发

1)Number of Simulated Users to Group by(集合点数):集合到对应的用户量才发送请求,设置的值不能大于线程数

2)Timeout in milliseconds(等待超时时间,毫秒):在指定的毫秒时间内没有达到集合点数,将停止等待直接发送请求

04a3421cf763af254c84ea9268253ca0.png

3)未使用Synchronizing Timer实现的相对并发(10s运行500个进程),在“用表格察看结果”处察看接口请求开始时间。从图中可以看出,用户在某个时间段内的随机一个时间点去执行,属于相对并发。

b2c2be0df9c53c4dd02cfab814a40ec0.png

4)使用Synchronizing Timer实现的绝对并发(10s运行500个进程),在“用表格察看结果”处查看接口请求开始时间。从图中可以看出,集合到3个用户才发送请求,做到了绝对并发。

2b2e91d01212f85d257953ce795ed34d.png

2. 多场景混合并发测试:

1)在线程组下面(各个接口上面),添加多个吞吐量控制器(Throughput Controller)

3f844bfd224b21fd00f1ae528deedd81.png

2)设置总线程数为20,“get_current_price_01”接口的线程数占比为30%,“get_current_price_02”接口的线程数占比为70%

74bb95dc05af478aa9cf150a34c3c42f.png

3)运行后,查看“View Results Tree”和“汇总报告”。从“View Results Tree”可看出两个接口是混合并发的;从“汇总报告”可看出接口占比的分别为30%和70%

47a3eefbb8f6fdf00265b792b2a1b77f.png

e97fe720a339683ba79c6a50fc05a5e2.png

五、测试报告生成

命令:[jmeter.bat路径] -n -t 财富接口.jmx -l financial.csv -e -o financial

5a37a6c3720dc7032c941c4bd7d392f6.png

026967a35d2496c184d2062413d4074a.png

推荐阅读

  • 【JVM】类加载、连接和初始化过程

  • 2018全套学习视频资源已经整理好了!免费分享!

  • 【资源分享】Docker核心技术视频教程

  • 【资源分享】蚂蚁课堂2期无加密-Java视频教程

  • Java日志体系详细总结

  • 【资源分享】Spring Cloud微服务实战视频课程

  • 2020传智-黑马Python全系列课程

  • 详解BlockingQueue

  • Springmvc源码解析总结

  • 老男孩教育-Linux中高级运维-58期

10d4808686720db3806f84b8613e24e7.png

微信:YuanMing1510

本公众号会不定期给大家发福利,包括学习资源等,敬请期待吧!

推送内容如果现在工作用不上,可以先转发朋友圈或收藏,用的时候方便找。

另外欢迎关注公众号添加微信好友,互相学习交流。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值