写点什么

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

  • 2022 年 3 月 18 日
  • 本文字数:1830 字

    阅读完需:约 6 分钟

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

大家好,我是温大大


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



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


目录:


  1. Jmeter 准备

  2. 1.1 jmeter 安装包下载

  3. 1.2 jmeter 启动

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

  5. 2.1 添加 1 个 Thread Group 线程组

  6. 2.2 添加 1 个 HTTP Request 请求

  7. 2.3 乱码问题解决

  8. 2.4 添加 1 个 HTTP Header 请求头

  9. 2.5 添加 1 个 View Result Tree 结果报告

  10. 2.6 运行测试,查看结果

  11. 2.7 添加 1 个 Assertion 和 Assert Results

  12. 2.8 使用用户自定义变量

  13. 2.9 关联

  14. Jmeter 并发设置

  15. 3.1 Number of Threads(users)

  16. 3.2 Ram-Up Period(in seconds)

  17. 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/jmetersh /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 个用户并发处理,并只执行一次脚本



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



发布于: 刚刚阅读数: 2
用户头像

还未添加个人签名 2018.09.17 加入

还未添加个人简介

评论

发布
暂无评论
【工具-jmeter】jmeter 入门级demo练习,包教包会_面试_测试猿温大大_InfoQ写作平台