【工具-jmeter】jmeter 入门级demo练习,包教包会

简介: 最近在看大家简历的时候,发现大部分同学都写过用过jmeter,但再面试过程中还是发现其实对jmeter不太熟练,例:如何断言,如何自定义参数,如何对请求进行关联,这些其实都是必问,如果你做过一定会回答,并且会一门性能压测工具面试时真的比较加分。

大家好,我是温大大

最近在看大家简历的时候,发现大部分同学都写过用过jmeter,但再面试过程中还是发现其实对jmeter不太熟练,例:如何断言,如何自定义参数,如何对请求进行关联,这些其实都是必问,如果你做过一定会回答,并且会一门性能压测工具面试时真的比较加分。

网络异常,图片无法展示
|

所以今天给带大家入门jmeter http请求模拟,全程保姆式教学,希望大家喜欢。

目录:

  1. Jmeter 准备
  • 1.1 jmeter 安装包下载
  • 1.2 jmeter 启动
  1. Jmeter 运行1个Web请求的demo
  • 2.1 添加1个 Thread Group 线程组
  • 2.2 添加1个 HTTP Request 请求
  • 2.3 乱码问题解决
  • 2.4 添加1个 HTTP Header 请求头
  • 2.5 添加1个 View Result Tree 结果报告
  • 2.6 运行测试,查看结果
  • 2.7 添加1个 Assertion和Assert Results
  • 2.8 使用用户自定义变量
  • 2.9 关联
  1. Jmeter 并发设置
  • 3.1 Number of Threads(users)
  • 3.2 Ram-Up Period(in seconds)
  • 3.3 Loop Count

1. Jmeter 准备

1.1 jmeter 安装包下载

公众后后台回复:jmeter

1.2 jmeter 启动

mac为例:

1、解压:

unzip apache-jmeter-5.1.1.zip

2、jdk 版本1.8 或 1.8+:

java -version

显示:java version "1.8.0_271"

3、赋权 + 启动

chmod +x /apache-jmeter-5.1.1/bin/jmeter
sh /apache-jmeter-5.1.1/bin/jmeter


windos为例:

1、配置环境变量:

  • 此电脑-右键-属性-高级系统设置-环境变量-系统变量:
  • 1、JMETER_HOME E:\jmeter\apache-jmeter-5.1.1\apache-jmeter-5.1.1(此路径为jmeter放置位置,根据实际情况调整)
  • 2、Path %JMETER_HOME%\bin

2、启动:

  • 进入E:\jmeter\apache-jmeter-5.1.1\apache-jmeter-5.1.1\bin,双击jmeter.bat

1.3 jmeter 语言选择

网络异常,图片无法展示
|

2. Jmeter 运行1个Web请求的demo

2.1 添加1个 Thread Group 线程组

必须新建一个Thread Group,  jmeter的所有任务都必须由线程处理,所有任务都必须在线程组下面创建

网络异常,图片无法展示
|

2.2 添加1个 HTTP Request 请求

网络异常,图片无法展示
|

比如我要发送一个Get 方法的http 请求: toy1.weather.com.cn/search?cityname=上海

网络异常,图片无法展示
|

2.3 乱码问题

如果返回结果存在乱码

方法1:

  • 添加BeanShell Sampler注意要在HTTP请求后面添加
  • 在Script处填写如下代码:prev.setDataEncoding("utf-8");
    网络异常,图片无法展示
    |
    网络异常,图片无法展示
    |

方法2:

  • 修改bin下的配置文件并重启:jmeter.properties
  • 优点:一次修改,长久使用

网络异常,图片无法展示
|

2.4 添加1个 HTTP Header 请求头

选中上一步新建的HTTP request. 右键,新建一个Http Header manager. 添加一个header

网络异常,图片无法展示
|
网络异常,图片无法展示
|

2.4 添加1个 View Result Tree 结果报告

View Results Tree 是用来看运行的结果的

网络异常,图片无法展示
|

2.5 运行测试,查看结果

网络异常,图片无法展示
|
网络异常,图片无法展示
|

到这里。 我们已经成功运行起来了(有可能返回的中文显示乱码,但不影响我们后续的教程)。

2.6 添加1个 Assertion和Assert Results

选择HTTP Request, 右键 Add-> Assertions -> Response Assertion.  添加 Patterns To Test

网络异常,图片无法展示
|

然后添加一个Assetion Results 用来查看Assertion执行的结果.

选中Thread Group 右键  Add -> Listener -> Assertion Results.

运行后, 如果HTTP Response中没有包含期待的字符串。 那么test 就会Fail.

网络异常,图片无法展示
|
网络异常,图片无法展示
|

2.7 使用用户自定义变量

我们还可以在Jmeter中定义变量。 比如我定义一个变量叫 city.    使用它的时候用  ${city}

添加一个 User Defined Variables.  选中Thread Group: 右键 Add -> Config Element -> User Defined Variables.

我们添加一个变量: city

网络异常,图片无法展示
|

然后在Http Request中使用这个变量

网络异常,图片无法展示
|

2.8 关联

所谓关联, 就是第二个Requst, 使用第一个Request中的数据

我们需要在第一个Http Requst 中新建一个正则表达式,把Response的值提取到变量中,提供给别的Http Request 使用

选择第一个Http Request, 右键 Add -> Post Processors -> Regular Expresstion Extractor

网络异常,图片无法展示
|

现在新建第二个Http Request,     发送到: http://www.weather.com.cn/weather2d/${citycode}.html

${citycode} 中的数据, 是从Regular Expression Extractor 中取来的

网络异常,图片无法展示
|

到这, 脚本就全部写好了, 运行下, 请求参数里面http://www.weather.com.cn/weather2d/101020100.shhtml ${citycode}被替换数字

网络异常,图片无法展示
|

3. Jmeter 并发设置

3.1 Number of Threads(users)

  • 用于设置线程数,即用户数

3.2 Ram-Up Period(in seconds)

  • 用于告知JMeter要在多长时间内建立全部的线程。
  • 假如Ramp-Up设置了1秒,而Number of Thread(users), 即线程数,也是用户数,设置了10,则代表JMeter会每在1秒内建立10个线程,即1/10=0.1秒建立一个线程。 Ramp-Up的值默认为0,代表立即建立所有线程,即同时并发。

3.3 Loop Count

  • 用于设置循环次数

如图,此处代表300个用户并发处理,并只执行一次脚本

网络异常,图片无法展示
|

关注我,加我好友拉你进面试群,一起讨论面试干货 / 套路, 大家一起升职加薪

相关文章
|
1月前
|
编解码 NoSQL 测试技术
性能工具之Jmeter HLS 插件(入门篇)
【2月更文挑战第28天】JMeter Redis 数据集 vs CSV 数据集性能对比
68 1
性能工具之Jmeter HLS 插件(入门篇)
|
1月前
|
关系型数据库 Java 数据库连接
PostgreSQL从小白到高手教程 - 第47讲:JMETER工具使用
PostgreSQL从小白到高手教程 - 第47讲:JMETER工具使用
106 3
|
1月前
|
编解码 测试技术 索引
性能工具之 Jmeter 使用 HTTP 请求编写 HLS 脚本
在我们简要介绍了 HLS 协议的基础知识,接下来我们详细介绍一种使用 Jmeter 编写压测 HLS 协议脚本的方法。
70 1
性能工具之 Jmeter 使用 HTTP 请求编写 HLS 脚本
|
5月前
|
Java 测试技术 Apache
Mac 下安装压力测试工具JMeter
Mac 下安装压力测试工具JMeter
207 0
|
5月前
|
消息中间件 弹性计算 Java
使用阿里云性能测试工具 JMeter 场景压测 RocketMQ 最佳实践
使用阿里云性能测试工具 JMeter 场景压测 RocketMQ 最佳实践
|
13天前
|
JSON 测试技术 数据格式
性能工具之Jmeter关联入门
【4月更文挑战第4天】关联是每个性能测试人员必须掌握的技能,是解决性能脚本中的"金钥匙"。
22 2
性能工具之Jmeter关联入门
|
25天前
|
XML Shell Linux
性能工具之 JMeter 使用 Python 脚本快速执行
性能工具之 JMeter 使用 Python 脚本快速执行
40 1
性能工具之 JMeter 使用 Python 脚本快速执行
|
29天前
|
Shell Linux 网络安全
性能工具之 JMeter 使用 shell 脚本快速执行
【2月更文挑战第30天】性能工具之 JMeter 使用 shell 脚本快速执行
93 1
性能工具之 JMeter 使用 shell 脚本快速执行
|
30天前
|
监控 数据可视化 Java
性能工具之Jmeter 后置监听器可视化数据逻辑
【2月更文挑战第29天】性能工具之Jmeter 后置监听器可视化数据逻辑
27 2
性能工具之Jmeter 后置监听器可视化数据逻辑
|
1月前
|
SQL Java 关系型数据库
性能工具之JMeter JDBC Request 基础
JDBC 本质其实是官方(sun 公司)定义的一套操作所有关系型数据库的规则,即接口。各个数据库厂商去实现这套接口,提供数据库驱动 jar 包。我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动 jar 包中的实现类。
34 0
性能工具之JMeter JDBC Request 基础