学习是件开心事

jmeter压测

jmeter是apache旗下的一款开源的功能性能测试工具,相比Loadrunner而言,JMeter小巧轻便且免费,逐渐成为了主流的性能测试工具。本人用jmeter主要测试部分核心接口,有时也用它来测试数据库。

jmeter安装

下载地址 :https://jmeter.apache.org/download_jmeter.cgi
目前最新的版本为 Apache JMeter 5.1.1 (Requires Java 8+),额外要求本地jdk版本为8+。

打开jmeter

双击jmeter文件夹下 “ApacheJmeter.jar”,打开jmeter,入眼为一个空的测试计划
Image text

新建线程组

右键 “测试计划” -> “添加” -> “线程(用户)” -> “线程组”
Image text
线程组用来控制发送请求的并发数

  • 线程数: 虚拟用户数。一个虚拟用户占用一个进程或线程。设置多少虚拟用户数在这里也就是设置多少个线程数
  • Ramp-Up Period(in seconds)准备时长:设置的虚拟用户数需要多长时间全部启动。如果线程数为10,准备时长为2,那么需要2秒钟启动10个线程,也就是每秒钟启动5个线程。
  • 循环次数: 每个线程发送请求的次数。如果线程数为10,循环次数为100,那么每个线程发送100次请求。总请求数为10*100=1000 。如果勾选了“永远”,那么所有线程会一直发送请求,一到选择停止运行脚本。
  • 延迟创建线程直到需要: 直到需要时延迟线程的创建
  • 调度器: 设置线程组启动的开始时间和结束时间(配置调度器时,需要勾选循环次数为永远)
    • 持续时间(秒):测试持续时间,会覆盖结束时间
    • 启动延迟(秒):测试延迟启动时间,会覆盖启动时间
    • 启动时间:测试启动时间,启动延迟会覆盖它。当启动时间已过,手动只需测试时当前时间也会覆盖它。
    • 结束时间:测试结束时间,持续时间会覆盖它
      附上本人压测配置图

添加HTTP请求+用户定义的变量+csv数据文件设置

  • 添加http请求。右键”线程组” -> “添加” -> 取样器” -> “http请求”
    Image text

  • 填写协议、ip、端口、请求方式(post/get)、路径。
    如果想动态生成这些,右键”线程组” -> “添加” -> “配置元件” -> “用户定义的变量”
    在这里可以填写动态的ip、端口等
    Image text

  • 填写消息体数据。如果想动态生成入参,右键”线程组” (或者右键http请求) -> “添加” -> “配置元件” -> “csv数据文件设置”,再这里可以添加入参文件txt,以及变量名.
    Image text

  • 填写header。右键”线程组” -> “添加” -> “配置元件” -> “http信息头管理”

添加聚合报告+察看结果树

右键”线程组” -> “添加” -> “监听器” -> “聚合报告”/“察看结果树”,用以实时展示性能测试报告。
Image text

  • Label。每个 JMeter 的 element(例如 HTTP Request)都有一个 Name 属性,这里显示的就是 Name 属性的值
  • 样本。请求数——表示这次测试中一共发出了多少个请求,如果模拟10个用户,每个用户迭代10次,那么这里显示100
  • 平均值。平均响应时间——默认情况下是单个 Request 的平均响应时间,当使用了 Transaction Controller 时,以Transaction 为单位显示平均响应时间
  • 中位数。50% 用户的响应时间
  • 90%百分位。90% 用户的响应时间
  • 95%百分位。95% 用户的响应时间
  • 99%百分位。99% 用户的响应时间
  • 最小值。最小响应时间
  • 最大值。最大响应时间
  • 异常%。 错误请求数/请求总数
  • 吞吐量。默认情况下表示每秒完成的请求数
  • 接收kb/sec。每秒从服务器端接收到的数据量
  • 发送kb/sec。每秒发送到服务器的数据量

一般而言,性能测试中我们需要重点关注的数据有。样本、平均值、最小值、最大值、异常%、吞吐量。

本文参考链接: https://blog.csdn.net/u012111923/article/details/80705141