zl程序教程

您现在的位置是:首页 >  后端

当前栏目

Jmeter的基本使用方法及实战

方法 实战 基本 JMeter 使用
2023-09-27 14:25:58 时间

Jmeter实战以及解释。在刚接触Jmeter的时候有些同学可能不太懂怎么用 不过如果用过Postman的话就上手很快了。Jmeter也就是一个工具 用户将请求地址请求方法配置正确后执行即可 Jmeter就可以发起请求了。通过监听器可以查看响应结果 方便排查。下面就是Jmeter的实际的基本使用以及各项字段的解释。

image.png

1. 名称 这个HTTP请求的名字 可以自定义 建议使用一个有意义的名字 方便查看

2. 注释 对于测试没有任何作用 仅用户记录用户可读的注释信息。

 

一. 基本配置 Basic

1. 协议 向目标服务器发送HTTP请求时的协议 可以是http或者是https或者File 默认值为http 。

2. 服务器名称或IP  HTTP请求发送的目标服务器名称或IP地址 注意 此处不可带http:/或者https:/ 。

3. 端口号 目标服务器的端口号 默认值为80 。

4. 方法 发送HTTP请求的方法 可用方法包括GET、POST、HEAD、PUT、OPTIONS、TRACE、DELETE等。

5. 路径 目标URL路径 不包括服务器地址和端口 -也可以直接写完整路径 上面的IP 端口就可以省略了 。

6. Content encoding  内容的编码方式 默认值为iso8859 所以常用为UTF-8减少乱码 。

7. 自动重定向 如果选中该选项 当发送HTTP请求后得到的响应是302/301时 JMeter 会自动重定向到新的页面 但是Jmeter是不记录重定向的过程内容。只能用于get和head方法 如果是post或者put请求则取样器不会发送。

8. 跟随重定向 Http Request取样器的默认选项 当响应code是3xx时 自动跳转到目标地址。与自动重定向不同 Jmeter会记录重定向过程中的所有请求响应 在查看结果树时可以看到服务器返回的内容 如有多个跳转则多个请求都会被记录下来 此为默认选项。

自动重定向和跟随重定向的区别只在于是否记录多个跳转的请求上

9. Use keep Alive  当该选项被选中时 jmeter 和目标服务器之间使用 Keep-Alive方式进行HTTP通信 默认选中。

10. Use multipart/from-data for HTTP POST  当发送HTTP POST 请求时 使用Use multipart/from-data方法或者application/x-www-form-urlencoded方法发送 默认不选中。

11. Browser-compatible headers 当勾选multipart/form-data时 勾选此项会截掉http请求头中的Content-Type和Content-Transfer-Encoding 而只发送Content-Disposition部分

12. 同请求一起发送参数 

在请求中发送URL参数 对于带参数的URL jmeter提供了一个简单的对参数化的方法。用户可以将URL中所有参数设置在本表中 表中的每一行是一个参数值对 对应RUL中的 名称1 值1 。编码这个选项最好勾选 因为如果参数值内含有ASCII Control Chars或者Non-ASCII characters或者其他符号的话 如果不勾选会导致发送失败 勾选的话会自动将含有的这些特殊符号进行编码。

13. 同请求一起发送文件 在请求中发送文件 通常 HTTP文件上传行为可以通过这种方式模拟 参数名称就是发送文件对应的参数 MINE Type为资源媒体类型 说明参考如下链接

14. 常见的MIME类型(通用型)

超文本标记语言文本 .html text/html

xml文档 .xml text/xml

XHTML文档 .xhtml application/xhtml xml

普通文本 .txt text/plain

RTF文本 .rtf application/rtf

PDF文档 .pdf application/pdf

Microsoft Word文件 .word application/msword

PNG图像 .png image/png

 

 

二. 加强配置 Advanced

1. Client implementation

Implementation 发送http请求的方式 可选项为java和HttpClient4 默认为HttpClient4 如果是上传文件的话一定要选择 否则请求发送成功了 其实文件并未上传成功

2. Timeouts(milliseconds)

Connect 连接超时时间 单位为毫秒

Response 响应等待超时时间 单位为毫秒

3. Embedded Resources from HTML Files

从HTML文件获取所有内含的资源 当该选项被选中时 jmeter在发出HTTP请求并获得响应的HTML文件内容后 还对该HTML进行解析 并获取HTML中包含的所有资源 图片、flash等 默认不选中 如果用户只希望获取页面中的特定资源 可以在下方的Embedded URLs must match 文本框中填入需要下载的特定资源表达式 这样 只有能匹配指定正则表达式的URL指向资源会被下载。

Parallel downloads.:是否使用自设资源池 勾选后可设置大小

Number:资源池大小 默认为6。

URLs must match:URL匹配过滤 填写此项则只会下载与此内容项匹配的url的资源 例如要获取http://example.com/下的所有资源 使用正则表达式http://example.com/.*

4. Source address

Source address:只用于http协议且Implementation为HttpClient4的情况。

此属性用于启用IP欺骗。会重写了这个http请求使用的默认本地IP地址。用于Jmeter主机具有多个IP地址 即IP别名、网络接口、设备 的情况。该值可以是主机名、IP地址或网络接口设备 如“ey0”或“l0”或“wlan0”。

- IP/Hostname IP /主机名以使用特定的IP地址或 本地 主机名

- Device 选择设备以选择该接口的第一个可用地址 该设备可以是IPv4或IPv6。

- Device IPV4 选择IPv4设备来选择名称设备的IPv4地址 如eth0, lo, em0

- Device IPV6 选择IPv6设备来选择名称设备的IPv4地址 如eth0, lo, em0

5. Proxy Server 比如不想用本机的地址来发送Http请求而想使用代理服务器则填写这部分

服务器名称或IP 代理服务器的名称或者IP地址

端口号 该代理的端口号

用户名 使用该代理的用户名

密码 用户密码

6. 其他任务

Save response as MD5 hash 选中该项 在执行时仅记录服务端响应数据的MD5值 而不记录完整的响应数据。在需要进行数据量非常大的测试时 建议选中该项以减少取样器记录响应数据的开销

 

三. 实战

打开jmeter 右键测试计划- 添加- 线程- 线程组

15753411661.png (466×460).png

   2. 右键线程组- 添加- 取样器- HTTP请求

15753412401.png (529×262).png

   3. 添加HTTP请求后 输入名称 协议 服务器名称或IP 请求方法 接口路径等选项15753419421.png (1503×479).png

 

4. 右键添加监听器 一般常用 聚合报告 查看结果树 图形结果 用表格查看结果

15753420891.png (895×609).png

1 查看结果树 配置基本的http请求后 启动 绿色的那个三角 后就可以看到请求结果了 结果树中选择JSON Path Tester就可以将响应数据变成json格式的数据 方便查看。

15753421951.png (1069×634).png

2 聚合报告 在这个监听器中可以看到此线程组下的所有请求执行情况 响应时间啊 错误率啊 吞吐量啊等数据

15753423291.png (1521×390).png

3 图形结果 由于我这里请求较少 因此不是特别明显。这里可看到吞吐量 响应时间等数据的变化过程。

15753426081.png (1360×769).png

4 用表格查看结果 在此监听器中可看到所执行的所有请求的名称 响应状态 连接时间等数据信息

15753424831.png (1503×475).png

 

 


利用 JMeter 压测上传和下载接口实战 突然来一个任务,让压测对象存储服务的上传和下载接口,之前也没有干过呀,也不属于自己的工作范畴。但是,事情着急,自己也就硬着头皮搞了。说到压测接口,自己首先想到了 Postman 和 Apipost,但是简单看过之后,发现对于自己的压测需求满足起来可能有些费劲。于是,自己又找到了 JMeter,嗯,果然,实现并发测试 so easy!
性能测试实战 | 修改 JMeter 源码,定制化聚合压测报告 性能和压力测试是每一个互联网应用程序上线之前都必须检验的测试项目。JMeter 作为目前互联网大厂最流行、最强大的性能测试工具,已经成为测试人员行走江湖的必备利器。 相比传统的压力测试工具(如 LoadRunner),JMeter 最显著的特点就是开源、轻量级、易于维护、便于扩展。 面对变化多端的业务情况,测试开发人员可以基于 JMeter 源码修改和二次开发,快速实现定制化功能,更好的满足业务
此例使用的是 GitHub 上一个开源的电商项目 mall,需要的可以去 GitHub 上下载部署,有详细的部署教程: - GitHub地址: - https://github.com/