【工具-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个用户并发处理,并只执行一次脚本

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

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

相关文章
|
4月前
|
API Apache
性能工具之JMeter5.0核心类JMeterEngine源码分析
【5月更文挑战第17天】性能工具之JMeter5.0核心类JMeterEngine源码分析
102 4
性能工具之JMeter5.0核心类JMeterEngine源码分析
|
4月前
|
消息中间件 Java 测试技术
性能工具之Jmeter扩展函数及压测ActiveMQ实践
【5月更文挑战第18天】性能工具之Jmeter扩展函数及压测ActiveMQ实践
80 5
|
1月前
|
存储 Linux 数据库
性能工具之JMeter + Grafana + InfluxDB 性能平台搭建
【8月更文挑战第7天】性能工具之JMeter + Grafana + InfluxDB 性能平台搭建
45 1
性能工具之JMeter + Grafana + InfluxDB 性能平台搭建
|
3月前
|
测试技术 Windows
软件测试之 性能测试 性能测试基础指标 Loadrunner、Jmeter等工具(下)
软件测试之 性能测试 性能测试基础指标 Loadrunner、Jmeter等工具(下)
52 2
|
3月前
|
测试技术 程序员
软件测试之 性能测试 性能测试基础指标 Loadrunner、Jmeter等工具(上)
软件测试之 性能测试 性能测试基础指标 Loadrunner、Jmeter等工具(上)
79 1
|
4月前
|
监控 数据可视化 测试技术
性能工具之JMeter+InfluxDB+Grafana打造压测可视化实时监控
【5月更文挑战第23天】性能工具之JMeter+InfluxDB+Grafana打造压测可视化实时监控
338 6
性能工具之JMeter+InfluxDB+Grafana打造压测可视化实时监控
|
4月前
|
前端开发 Java Linux
性能工具之 Jmeter 通过 SpringBoot 工程启动
【5月更文挑战第22天】性能工具之 Jmeter 通过 SpringBoot 工程启动
71 8
性能工具之 Jmeter 通过 SpringBoot 工程启动
|
4月前
|
网络协议 JavaScript 前端开发
性能工具之Jmeter压测Hprose RPC服务
【5月更文挑战第19天】性能工具之Jmeter压测Hprose RPC服务
59 5
|
4月前
|
JSON JavaScript Java
性能工具之Jmeter压测Thrift RPC服务
【5月更文挑战第21天】性能工具之Jmeter压测Thrift RPC服务
61 1
|
4月前
|
IDE Java Maven
性能工具之Jmeter扩展配置元件插件
【5月更文挑战第20天】性能工具之Jmeter扩展配置元件插件
53 1