jmeter使用文档

  • 一.准备工作
  • 二.安装
  • 1.安装jdk1.8+以上的版本
  • 2.解压apache-jmeter-5.4.1.zip
  • 2.1 启动软件
  • 2.2 修改为中文模式
  • 三.功能说明及名词解释
  • 3.1线程组
  • 3.2 HTTP请求
  • 3.3 Http信息头管理器
  • 3.4全局用户自定义变量
  • 3.5线程组内用户定义变量
  • 3.6察看结果树
  • 3.6.2.1查看响应的6种常用方法类型介绍
  • 3.7聚合报告
  • 3.8计数器
  • 3.9正则表达式提取器
  • 3.10 BeanShell后置处理程序
  • 3.11 CSV数据文件设置
  • 四.实战详解
  • 1.简单的http请求
  • 2.自定义用户变量
  • 3.提取请求数据,并存入文件中
  • 4.使用CSV文件,读取数据


一.准备工作

环境: JDK 1.8+以上版本
JDK1.8下载地址:

软件: Jmeter 5.4.1
下载地址: https://jmeter.apache.org/download_jmeter.cgi

二.安装

1.安装jdk1.8+以上的版本

安装完毕后,配置系统环境变量,配置过程略

2.解压apache-jmeter-5.4.1.zip

2.1 启动软件

解压后进入bin文件夹,找到并双击jmeter.bat,会出现如图二所示的Dos命令行和启动加载页面, 
	图三则为启动成功后的示意图

图一:

jemeter 使用文件参数_CSV

图二:

jemeter 使用文件参数_软件测试_02

图三:

jemeter 使用文件参数_jmeter_03

2.2 修改为中文模式

依据您个人的习惯,修改为对应的语言模式,本图为中文

jemeter 使用文件参数_CSV_04

三.功能说明及名词解释

3.1线程组

3.1.1创建步骤

右键测试计划 -> 添加 -> 线程(用户) -> 线程组

jemeter 使用文件参数_CSV_05

3.1.2 功能介绍

线程数: 同时并发的线程数量

Ramp-up时间: 缓冲时间, 如: 线程数为100,Ramp-up时间为2,则需在2秒内执行完100个线程,也就是每秒50个线程。 为0则表示同时并发

循环次数:循环多少次线程操作, 如循环次数为2,线程数为100,则共执行200个线程

jemeter 使用文件参数_CSV_06

3.2 HTTP请求

3.2.1 创建步骤

jemeter 使用文件参数_线程组_07

3.2.2 功能介绍

协议: http/https

服务器名称或ip: ip地址或正式网址

端口号: 正式网址无需端口号

Http请求: 常见的get/post/delete/put

路径: api地址

内容编码: 默认为ISO-8859-1, 如参数或请求体中未包含中文,可不填写; 如包含中文,但未填写,则提交后的内容会显示问号(?)

jemeter 使用文件参数_软件测试_08

3.3 Http信息头管理器

3.3.1 创建步骤

jemeter 使用文件参数_线程组_09

3.3.2 功能介绍

请求头的附加信息,此处默认为空白, 下图为常用的两项设置

左侧名称为 类型

右侧值为 变量

jemeter 使用文件参数_软件测试_10

3.4全局用户自定义变量

3.4.1 创建步骤

点击测试计划,右侧会出现设置界面

jemeter 使用文件参数_软件测试_11

3.4.2 功能介绍

在该页面定义好相关变量后,在任意的线程组中均可使用, 使用方法 ${定义的变量名}

如下图

jemeter 使用文件参数_jemeter 使用文件参数_12

3.5线程组内用户定义变量

3.5.1 创建步骤

右键线程组-> 配置元件-> 用户定义变量

jemeter 使用文件参数_jemeter 使用文件参数_13

3.5.2 功能介绍
使用方法同3.4全局自定义变量一致,区别在于 该设置只应用于当前线程组

3.6察看结果树

3.6.1 创建步骤

右键线程组-> 监听器-> 察看结果树

jemeter 使用文件参数_线程组_14

3.6.2 功能介绍

用于查看请求成功与失败时的数据反馈

jemeter 使用文件参数_线程组_15

3.6.2.1查看响应的6种常用方法类型介绍

1、Text

查看结果树中请求的默认格式为text,包含取样器结果、请求、响应数据3个部分内容。

取样器结果: 默认Raw视图,可以切换为Parsed视图,表单显示更直观。

请求:默认Raw视图下,Restquest Body 及Restquest Headers两部分。HTTP显示更直观。输入信息查找,还可以设置区分大小写、正则表达式。

响应数据: 显示Response Body 及Response Headers两部分内容。当数据过多时,可通过输入信息搜索,还可以设置区分大小写、正则表达式。

jemeter 使用文件参数_jemeter 使用文件参数_16

2、RegExp Tester

当需要从上一个请求的响应结果中获取数据来关联到下一个请求,且通过正则表达式提取器来实现。可以选择该显示格式,输入正则表达式,点击Test,测试正则表达式是否正确。

jemeter 使用文件参数_jemeter 使用文件参数_17

3、边界提取器测试 (Boundary Extractor Tester)

当需要从上一个请求的响应结果中获取数据来关联到下一个请求,且通过边界提取器来实现。可以选择该显示格式,输入左边界,右边界,点击Test,验证是否正确。

jemeter 使用文件参数_软件测试_18

4、CSS选择器测试(CSS Selector Tester)

通过css/jQuery提取器来实现关联时,查看结果可以选择CSS Selector Tester格式。可根据JSoup或Jodd对响应数据进行过滤和查看。验证css/jQuery提取器设置有无问题。

jemeter 使用文件参数_jmeter_19

5、JSON Path Tester

上一个请求的返回结果是json格式,通过JSON提取器来实现关联时,查看结果可以选择JSON Path Tester格式。在JSON Path Expression输入JSON表达式,点击Test验证,验证是否正常获取到所需内容。

jemeter 使用文件参数_线程组_20

6、JSON

返回结果是json数据格式的,可选择JSON视图,将显示树状风格的响应结果(也处理嵌入JavaScript的JSON)。跟默认的text相比展示更直观。结果可输入信息查找,还可以设置区分大小写、正则表达式。

jemeter 使用文件参数_jmeter_21

3.7聚合报告

3.7.1 创建步骤

右键线程组-> 添加-> 监听器-> 聚合报告

jemeter 使用文件参数_软件测试_22

3.7.2 功能介绍

最小值:最小响应时间

最大值:最大响应时间

异常值:指请求会出现断开或连接异常的比例

TPS(吞吐量):指每秒可处理多少请求,如120/sec,即每秒可处理120个网络请求.

平均值:指所有请求响应时间总和的平均值

99%:指有99%的请求在此范围之下,如354ms / 99%,即有99%的请求在354ms之前就完成了响应

jemeter 使用文件参数_线程组_23

3.8计数器

3.8.1 创建步骤

右键线程组-> 添加-> 配置元件-> 计数器

jemeter 使用文件参数_CSV_24

3.8.2 功能介绍

添加该元件并在线程组中使用相关变量名称后,则该计数器自动启动

Starting value:起始值

递增:每次计数增加多少

Maximum value:最大值,默认为2的63次幂

数字格式:默认为0,1,2,3 如改为00,则计数为001,002,003

引用名称:现成组中所用的变量名称 如${count}

jemeter 使用文件参数_jemeter 使用文件参数_25

3.9正则表达式提取器

3.9.1 创建步骤

右键线程组-> 添加-> 后置处理器-> 正则表达式提取器

jemeter 使用文件参数_软件测试_26

3.9.2 功能介绍

引用名称: 线程组中使用的变量名称,如${getId}

正则表达式: 正则表达式匹配规则

模板: 表示解析到的第几个值

匹配数字: 如果表达式匹配到多个目标,取第几个,一般填 1,就行了

缺省值: 默认值, 如果参数没有取得到值,那默认给一个值让它取

jemeter 使用文件参数_线程组_27

3.10 BeanShell后置处理程序

3.10.1 创建步骤

右键线程组-> 添加-> 后置处理器-> BeanShell PostProcessor(BeanShell后置处理程序)

jemeter 使用文件参数_软件测试_28

3.10.2 功能介绍

BeanShellPostProcessor可以使用Java进行逻辑判断提取更多复杂的值

本元件支持基本的java编码,如图例则使用了数据流写数据至文件

jemeter 使用文件参数_软件测试_29

3.11 CSV数据文件设置

3.11.1 创建步骤

右键线程组-> 添加-> 配置元件-> CSV Data Set Config (CSV数据文件设置)

jemeter 使用文件参数_CSV_30

3.11.2 功能介绍

文件名: 文件名称

文件编码: utf-8 utf-16 等

变量名称: 指在线程组中的引用. 如id

忽略首行: 忽略CSV文件的第一行, 因为有的自动生成的CSV文件第一行是无数据的

jemeter 使用文件参数_线程组_31

四.实战详解

在进行以下实战操作时,默认您已阅读 三.功能说明及名词解释, 对基本功能与组件的使用有了一定了解!

1.简单的http请求

进行较为简单的网络请求操作

线程组样例:

jemeter 使用文件参数_CSV_32


1.1新建 线程组

1.2新增 取样器- HTTP请求

用于进行网络请求操作

根据具体的API要求,填入对应的 协议类型 与 服务器名称

jemeter 使用文件参数_jmeter_33

1.3新增 配置元件-察看结果树

用于查看请求结果

请求成功则为绿色,反之为红色

jemeter 使用文件参数_jemeter 使用文件参数_34


1.4新增 配置元件-聚合报告

用于查看性能是否符合测试标准

jemeter 使用文件参数_软件测试_35


1.5点击 运行 ,即可查看结果

jemeter 使用文件参数_软件测试_36

2.自定义用户变量

方便参数复用,如网络IP地址,用户ID等等

线程组样例:

jemeter 使用文件参数_jemeter 使用文件参数_37


2.1新增 线程组内用户定义变量

jemeter 使用文件参数_CSV_38


2.2Http请求中使用

jemeter 使用文件参数_软件测试_39


2.3使用过程同 1.简单的http请求 一致

3.提取请求数据,并存入文件中

-使用场景: 批量新增,批量查询
-所需组件: [正则表达式提取器->BeanShell 后置处理程序]
-注意点: 文字编码utf-8

线程组样例:

jemeter 使用文件参数_线程组_40

3.1新建 线程组

3.2新增 HTTP请求
用于进行网络请求操作

3.3添加监听器 察看结果树
用于查看请求结果

3.4添加监听器 聚合报告
用于查看性能是否符合测试标准

3.5新增 计数器

设置方法按实际需求来具体调整数值

jemeter 使用文件参数_线程组_41


3.6新增 正则表达式提取器.

根据实际需求填写相关 正则表达式与线程组引用名称

jemeter 使用文件参数_jemeter 使用文件参数_42


3.7新增 BeanShell后置处理程序

根据实际需求填写下方的Java编码,如图例中为 保存符合条件的返回值至CSV文件

jemeter 使用文件参数_线程组_43


3.8运行程序

运行后,会在您填写的路径下自动生成一份CSV数据文件,里面包含您刚通过HTTP请求匹配到的数据

须知:如果您再次点击运行,则新的Http请求会继续在源文件(test.csv)中填值,而非重新创建一份同名文件

jemeter 使用文件参数_jmeter_44


jemeter 使用文件参数_jmeter_45

4.使用CSV文件,读取数据

-使用场景: 批量编辑,批量删除
-所需组件: [CSV 数据文件设置]

线程组样例:

jemeter 使用文件参数_软件测试_46


4.1新建 线程组4.2新增 HTTP请求

用于进行网络请求操作

CSV数据文件设置 中定义的变量名称在此使用

jemeter 使用文件参数_线程组_47


4.3添加监听器 察看结果树

用于查看请求结果

4.4添加监听器 聚合报告
用于查看性能是否符合测试标准

4.5新增 计数器

设置方法按实际需求来具体调整数值

jemeter 使用文件参数_jmeter_48

4.6添加配置元件 CSV数据文件设置

注意: 1.运行前请手动打开文件,查看文件首行是否为空,如下图CSV文件首行 为空,则选择 忽略首行 选择True,反之为false

2.文件编码,如csv文件中无中文字符,则为空即可,反之选择合适的编码格式

3.变量名称, 自行定义,用于Http请求中的请求体引用,见图三

jemeter 使用文件参数_jmeter_49


jemeter 使用文件参数_软件测试_50

jemeter 使用文件参数_CSV_51


不积跬步无以至千里!