Jmeter工具入门-新手小白必学

Jmeter简介

JMeter,一个100%的纯Java桌面应用,由Apache组织的开放源代码项目,它是功能和性能测试的工具。具有高可扩展性、支持Web(HTTP/HTTPS)、SOAP、FTP、JAVA等多种协议的特点。

官方网站:https://jmeter.apache.org/ 下载Binaries二进制包zip 官网有最全的工具手册

Jmeter安装与配置

  1. 本机配置好Java环境变量
  2. 官网下载压缩包,在任意目录下解压
  3. 修改配置文件,打开Jmeter的bin目录下jmeter.properties,修改
    language=zh_CN
    sampleresult.default.encoding=utf-8
  4. 进入到Jmeter的bin目录下,双击jmeter.bat启动

Jmeter主要元件

  1. 测试计划
  2. 线程组
  3. 采样器(sampler)
  4. 断言
  5. 监听器
Jmeter基本元件-线程组

添加线程组并设置参数大小:测试计划→添加→Threads →线程组
线程组:代表一组用户,代表一群人,一个线程就是一个并发用户
在这里插入图片描述

Jmeter基本元件-http请求

添加HTTP请求:线程组下添加→Sampler →HTTP请求
在这里插入图片描述

Jmeter超时处理

在这里插入图片描述

在这里插入图片描述

查看结果树:添加查看结果树:监听器-查看结果树

在这里插入图片描述

JSON断言:对于返回结果的判断,绿的成功,红的失败
  • Jmeter默认情况下,会对HTTP接口做一个协议层面的判断,即响应状态码是否是200,并非基于业务
    添加断言-JSON断言
    在这里插入图片描述
    json路径表达式
    $.code 代表json中的code字段值
    详细用法参见:https://github.com/json-path/JsonPath
    在这里插入图片描述
响应断言:可以判断接口返回的所有文本的内容,功能更广,更强大
  • 包括(Contains):如果响应中包含了指定的字符串,判断为成功,支持正则表达式
  • 匹配(Matches):如果响应完全匹配指定的字符串,判断为成功,支持正则表达式
  • 相等(Equals):如果响应完全匹配指定的字符串,判断为成功,不支持正则表达式
  • 子字符串(Substring):如果响应中包含了指定的字符串,判断为成功,不支持正则表达式(使用最多)
  • 或者or 字段返回是否包含其中一个,not否在这里插入图片描述
定义全局变量

在这里插入图片描述
Jmeter中调用参数的方法:${ip}
在这里插入图片描述

常用的参数化方式-随机数:将接口中的数据动态化,不使用固定的,写死的数据

jmeter中能输入数据的地方都可以输入参数化函数等
可以通过“函数助手”生成各种函数
生成随机数: __Random函数(随机数小概率会重复)
在这里插入图片描述
进行使用
在这里插入图片描述
随机数参数化断言:
在这里插入图片描述
在这里插入图片描述

常用的参数化方式-随机字符串(可能重复,支持中文)

生成随机字符串函数: _RandomString
在这里插入图片描述
引用
在这里插入图片描述

uuid:唯一的不重复的字符串,位数固定

在这里插入图片描述

时间戳:毫秒值,从1970-1-1 00:00:00开始到当前时间所累计的毫秒值


时间戳格式化:yyyy-MM-dd HH:mm:ss,注意大小写
在这里插入图片描述
灵活使用
在这里插入图片描述

随机日期

在这里插入图片描述

常用的参数化方式-csv_read:从文本文件中读取数据

在这里插入图片描述
多个用户才能调取其他的用户,如果设置了6个用户,则循环调用
在这里插入图片描述
运行,查看结果
在这里插入图片描述

参数化文件

添加CSV Data Set Config :线程组→添加→配置元件 → CSV Data Set Config
在这里插入图片描述

File encoding:和记事本格式保持一致(编码解码保持一致,针对中文) 不填,使用文件自己的编码
Variable Names :数据保存到什么变量里,不要和前面全局定义的变量重名,会被覆盖
在这里插入图片描述
忽略首行:针对列名之类的非数据,否则会出现乱码
在这里插入图片描述在这里插入图片描述
区别:
与csv_read不同,CSV Data Set Config可以自动循环赋值,不受并发数限制;
csv_read如果线程数为1,则永远赋值第一行数据。

参数化函数
  1. CSV文件读取:${__CSVRead(D:\data.txt,0,)}
  2. 随机数:${__Random(1,100,)}
  3. 随机字符串:${__RandomString(8,abcdefghigklmnopqrstuvwxyz0123456789,)}
  4. 时间戳:${__time(,)}
  5. 生成唯一UUID:${__UUID}

注:上述函数都可以将结果保存到一个变量里,函数的最后一个参数为变量名称

后置处理器-Json提取器

专门对json数据进行提取的后置处理器
变量名称:自定义的变量名称
json路径:见下面链接
匹配数字:0代表随机,n代表具体的数字,-1代表所有

json路径表达式:https://github.com/json-path/JsonPath

匹配多个值时,四个地方都要填写内容
在这里插入图片描述
jmeter数据关联
场景:下一个接口的入参,需要用到上一个接口的返回值的某个数据

解决思路:

  1. 先调用第一个接口
  2. 将接口的返回值中某个数据保存在某个变量里
    • Json提取器:可以对接口返回的json数据做提取,并保存
  3. 下一个接口直接通过${变量名}方式使用变量
    在这里插入图片描述在这里插入图片描述在这里插入图片描述
    在这里插入图片描述
调试取样器

调试取样器可以打印出来Jmeter运行过程中保存下来的参数,需要配合查看结果树使用
在这里插入图片描述
在这里插入图片描述
常用于复杂的json数据:取出所有的用户姓名,json数组
在这里插入图片描述在这里插入图片描述
1取第一个值,0取随机的值
在这里插入图片描述
-1保存所有数据,调用其中一个
在这里插入图片描述
在这里插入图片描述

后置处理器-正则表达式提取器

在这里插入图片描述
可以通过正则表达式来获取http请求返回的数据

引用名称:匹配后的结果,保存到一个参数中,如param

正则表达式

  • 三步走
    • 1、拷贝目标数据和左右边界
    • 2、把目标数据用括号括起来
    • 3、把目标数据用.+?代替

模板:$1$表示取匹配到的第一组数据
匹配数字:当某组数据中包含多少个参数时,0代表随机,1代表该组的第一个参数,2表示第二个

常用的万能正则表达式:
b.b可匹配:bab bdb bed b2b .能匹配任意1个字符,除了换行符
b.+b可匹配:baab b132b bweaf3b +能匹配前面的正则表达式一次或多次
.+能匹配任意1个或多个字符 贪婪模式 按照最长的匹配
?能匹配前面出现的正则表达式零次或一次 通常配合.+一起使用
最终,万能的正则表达式写法为: .+? 能匹配任意多个字符,同时在最小范围内匹配
“stock”:“(.+?)”

常用正则表达式:
在这里插入图片描述

Jmeter结果统计-聚合报告(Aggregate Report):压测时,查看结果树不适合查看结果,性能有影响,此时就用聚合报告

Throughput:吞吐量——默认情况下表示每秒完成的请求数(Request per Second)
对于接口测试来说,Jmeter里的吞吐量=TPS
在这里插入图片描述
在这里插入图片描述
同一个线程组的接口TPS一致,是因为请求是接口轮流请求

Jmeter聚合报告中:

特点:

  1. 如果多个接口在同一个线程组内,那么它们的TPS是一样的,响应时间不一样(顺序执行)
  2. 如果多个接口不在同一个线程组内,那么他们的TPS是不一样的,响应时间也不一样

什么样的接口适合放在同一个线程组内呢???

图形化插件的使用

使用Jmeter插件可以扩展Jmeter的功能
插件官网: http://jmeter-plugins.org/downloads/all
使用Jmeter插件管理器,可以自动下载并安装插件,更加方便简单

  1. 使用方法:
    a. 下载插件管理器对应的jar包,然后放在Jmeter的lib/ext目录下
    b. 打开Jmeter,选项-插件管理器
    在这里插入图片描述

    c. 勾选对应的插件,等待下载完成,点击apply,等待重启Jmeter,即可使用

  2. 几个好用的插件:
    a. 3 Basic Graph:windows下可用的实时tps和响应时间的插件
    在这里插入图片描述
    在这里插入图片描述
    b. Custom JMeter Functions
    在这里插入图片描述
    c. Random CSV Data Set Config
    在这里插入图片描述
    每次测试,都是随机的
    在这里插入图片描述
    d. PerfMon :服务端性能实时监控插件

注:并发量高的话需要使用linux系统,基于linux下的压测

图形化插件的使用-TPS

添加tps监听器:事务控制器→添加→监听器 →jp@gc – Transaction per Second
在这里插入图片描述

图形化插件的使用-平均响应时间

在这里插入图片描述
到这里,Jmeter基本使用的工具就学习完成啦,如果想要学习更高阶的请继续跟进我的《性能测试》专栏噢~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值