JMeter接口测试与性能测试实战

Apache JMeter™应用程序是开放源码软件,它是一个100%纯Java应用程序,用于加载测试功能行为和度量性能。它最初是为测试Web应用程序而设计的,但后来扩展到其他测试功能。

安装

Step 1

JDK安装

1)官网下载jdk对应版本的exe文件

JMeter接口测试与性能测试实战

2)双击安装

3)配置环境变量

JMeter接口测试与性能测试实战

Step 2

JMeter安装

1)官网下载

JMeter接口测试与性能测试实战

2)解压到指定文件夹,打开bin/jmeter.bat文件即可

接口测试

Step 1

保存测试计划,右键保存,选择保存位置

JMeter接口测试与性能测试实战

Step 2

添加线程组

JMeter接口测试与性能测试实战

Step 3

线程组添加完成

JMeter接口测试与性能测试实战

线程属性

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

调度器配置

  • 持续时间(秒):测试持续时间,会覆盖结束时间 
  • 启动延迟(秒):测试延迟启动时间,会覆盖启动时间 
  • 启动时间:测试启动时间,启动延迟会覆盖它。当启动时间已过,手动只需测试时当前时间也会覆盖它
  • 结束时间:测试结束时间,持续时间会覆盖它

Step 4

添加HTTP请求

JMeter接口测试与性能测试实战

Step 5

HTTP请求添加完成

JMeter接口测试与性能测试实战

Web服务器

  • 协议:向目标服务器发送HTTP请求协议,可以是HTTP或HTTPS,默认为HTTP
  • 服务器名称或IP :HTTP请求发送的目标服务器名称或IP
  • 端口号:目标服务器的端口号,默认值为80

HTTP请求

  • 方法:发送HTTP请求的方法,可用方法包括GET、POST、HEAD、PUT、OPTIONS、TRACE、DELETE等
  • 路径:目标URL路径(URL中去掉服务器地址、端口及参数后剩余部分) 
  • 内容编码:编码方式,默认为ISO-8859-1编码,可配置为utf-8

同请求一起发送参数

  • 在请求中发送的URL参数,用户可以将URL中所有参数设置在本表中,表中每行为一个参数(对应URL中的 name=value)
  • 注意参数传入中文时需要勾选“编码”

Step 6

添加查看结果树

JMeter接口测试与性能测试实战

Step 7

Text响应数据格式选择HTML Source Formatted

JMeter接口测试与性能测试实战

Step 8

发送HTTP请求,查看响应结果

JMeter接口测试与性能测试实战

Step 9

添加用户定义的变量

JMeter接口测试与性能测试实战

Step 10

添加变量

JMeter接口测试与性能测试实战

Step 11

HTTP请求中使用添加的变量

JMeter接口测试与性能测试实战

Step 12

添加响应断言

JMeter接口测试与性能测试实战

Step 13

校验返回文本中是否包含搜索词

JMeter接口测试与性能测试实战

Step 14

添加断言结果

JMeter接口测试与性能测试实战

Step 15

再次请求,查看断言

JMeter接口测试与性能测试实战

Step 16

添加聚合报告,存放性能测试报告

JMeter接口测试与性能测试实战

性能测试

Step 1

配置线程组

JMeter接口测试与性能测试实战

Step 2

开始测试,查看聚合报告

JMeter接口测试与性能测试实战

参数详解

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

性能测试中重点关注数据:#Samples 请求数,Average 平均响应时间,Min 最小响应时间,Max 最大响应时间,Error% 错误率以及Throughput 吞吐量

祝您旅途愉快~