目录

2024-06-04-jmeter并发测试

jmeter并发测试

目录

常用的压测工具

  • postman:串行测试,一般用于功能性测试,即返回结果是否正常
  • jmeter:可以多线程并行测试,一般用于压测

jmeter安装

  • 直接官网下载压缩包,解压缩,运行即可

配置并执行

新建测试计划 Test Plan

  • 修改 Name测试Demo

    https://i-blog.csdnimg.cn/blog_migrate/731694c8e065bd2f19b0a2dba29e54e3.png

添加线程组

https://i-blog.csdnimg.cn/blog_migrate/3ba89854dc3d989a2d7f35b22f3e6512.png

  • Action to be taken after a Sampler error
    如果测试过程报错了怎么处理
    • Continue
      报错了继续执行
    • Stop Thread
      停止所在的线程
    • Stop Test
      停止整个测试计划
    • Stop Test Now :
    • Start Next Thread Loop :
  • Number of Threads(users)
    线程数,虚拟用户数。一个虚拟用户对应一个线程。需要10个用户发送请求,则设置为10。
  • Ramp-up period(seconds)
    准备时长,设置的虚拟用户数需要多长时间全部启动。需要2秒钟启动10个线程,也就是每秒钟启动5个线程,则此处设置为 2。如果设置为 1,则意思是1秒钟启动所有线程。
  • Loop Count
    循环次数,每个线程发送的请求个数,如果设置 1,则每个线程只发送1次请求就停止。如果勾选 Infinite(永远) ,则每个线程会一直发送请求,直到手动停止测试计划。

    https://i-blog.csdnimg.cn/blog_migrate/cee31c28d7da152f4abf228cbeaecafa.png

练习01:共10个线程,每秒钟启动一个线程(需要10秒),每个线程发送两个请求

https://i-blog.csdnimg.cn/blog_migrate/5c2344e36291bb32834e48e81d229d54.png

https://i-blog.csdnimg.cn/blog_migrate/fe607bba5ca14160e78e38d1bc4c2e72.png

练习02:共10个线程,1秒中内启动完毕,每个线程发送1个请求

https://i-blog.csdnimg.cn/blog_migrate/9e6a6997287e1eca899dabdaf5d1f8c2.png

  • 同练习01执行,可以看到结果大约在1秒内全部返回

练习03:共10个线程,同时发送(0秒内发送完毕),每个线程发送1个请求【模拟用户同时并发】

https://i-blog.csdnimg.cn/blog_migrate/34cab4faa511f4e588acd5dc5cc24df4.png

  • 同练习01执行,可以看到发送结果一下子全部返回

添加请求信息

  • 后台本地在 8080 端口启动一个服务接口 /hello ,没有请求参数,直接返回字符串 ok

    https://i-blog.csdnimg.cn/blog_migrate/af85154aee2e1b50af81b4c9b7f55a0b.png

添加常用的结果监听器

https://i-blog.csdnimg.cn/blog_migrate/c995b189be4d6b6ffafce4b335723f08.png

https://i-blog.csdnimg.cn/blog_migrate/8d17fe688d116e49ee1515eb9b914c06.png

执行测试计划

查看结果观察树-View Results Tree

https://i-blog.csdnimg.cn/blog_migrate/6c77ed619460e872ceb6114080bd822c.png

总结报告-Summary Report

https://i-blog.csdnimg.cn/blog_migrate/f16bf1ed70d35bd71d12f244a32874aa.png

聚合报告-Aggregate Report

https://i-blog.csdnimg.cn/blog_migrate/5f2ffe209dcd5ff31b25d41c11d8db84.png

  • Label
    每个 JMeter 的 element(例如 HTTP Request)都有一个 Name 属性,这里显示的就是 Name 属性的值
  • Samples
    请求数——表示这次测试中一共发出了多少个请求,如果模拟10个用户,每个用户迭代10次,那么这里显示100
  • Average
    平均响应时间——默认情况下是单个 Request 的平均响应时间,当使用了 Transaction Controller 时,以Transaction 为单位显示平均响应时间
  • Median(中位数)
    50%用户的响应时间小于该值
  • 90% Line(90%百分位)
    90%用户的响应时间小于该值
  • 95% Line(95%百分位)
    95%用户的响应时间小于该值
  • 99% Line(99%百分位)
    99%用户的响应时间小于该值
  • Min
    最小响应时间
  • Max
    最大响应时间
  • Error%
    错误率——错误请求数/请求总数
  • Throughput
    吞吐量(QPS)——默认情况下表示每秒完成的请求数(Request per Second),当使用了 Transaction Controller 时,也可以表示类似 LoadRunner 的 Transaction per Second 数

需要注意,重复运行会叠加之前的,每次运行前需要先清除之前的结果

一般而言,性能测试中我们需要重点关注的数据有: #Samples 请求数,Average 平均响应时间,Min 最小响应时间,Max 最大响应时间,Error% 错误率及Throughput 吞吐量

结果图

https://i-blog.csdnimg.cn/blog_migrate/8091a3fc0fbaa62fe5731b01eb903872.png

参考链接

68747470733a2f2f62:6c6f672e6373646e2e6e65742f71715f33373239343136332f:61727469636c652f64657461696c732f313339343534303834