Apache JMeter web 应用测试工具使用快速入门
目录Apache JMeter 下载与安装Apache JMeter 并发请求接口Apache JMeter 下载与安装1、Apache JMeter 是一个开源的纯 Java 应用程序,旨在加载测试功能行为和测量性能,它最初设计用于测试 Web 应用程序,但后来扩展到其他测试功能。2、Apache JMeter 可用于测试静态和动态资源、Web动态应用程序的性能。可用于模拟服务器、服务器组、网络
目录
Apache JMeter 下载与安装
1、Apache JMeter 是一个开源的纯 Java 应用程序,旨在加载测试功能行为和测量性能,它最初设计用于测试 Web 应用程序,但后来扩展到其他测试功能。
2、Apache JMeter 可用于测试静态和动态资源、Web动态应用程序的性能。可用于模拟服务器、服务器组、网络或对象上的重载,以测试其强度或分析不同负载类型下的总体性能。
官网地址:Apache JMeter - Apache JMeter™(官网有详细的介绍和使用教程)
下载地址:Apache JMeter - Download Apache JMeter( 选择 Binaries(二进制)下面的下载即可)
| apache-jmeter-5.4.1.zip | sha512 | pgp |
3、下载解压后,打开 bin 目录下的 jmeter.properties 配置文件,修改第40行左右位置的 language=zh_CN,表示使用中文语言。
4、双击 jmeter.bat 脚本文件、或者直接双击 ApacheJMeter.jar 文件即可运行程序。
5、默认整个程序的字体是比较小的,看着不太习惯,可以点击:选项->放大,调整界面的字体到合适的大小。

Apache JMeter 快速使用入门
1、打开 JMeter 工具后,左侧默认会有一个[测试计划]。
2、选中[测试计划]右击,选择: 添加 -> 线程(用户)-> 线程组。
2.1、可以填写线程租名称、注释,以及线程属性,其中常用的配置有:线程数,循环次数。
2.2、线程数:表示模拟多少个用户操作,比如 100 就相当于 100 个人同时操作。
2.3、循环次数:表示每个线程执行几次,也可以理解为每个请求多少次。
3、选中新建的[线程组]右击,选择:添加 -> 取样器 -> HTTP请求。假如需要请求:http://localhost:8080/emp/getEmpBySal?start=2000
3.1、同理可以填写请求名称、注释,'基本'选项卡下常用的配置有:
3.2、协议:表示请求的协议,比如 http、https,不写时默认为 http。
3.3、服务器名称或IP:表示请求的服务器域名或者IP,比如 localhost、127.0.0.1、www.baidu.com 等等。
3.4、端口号:表示请求的端口,比如 8080。
3.5、HTTP请求:用于设置请求方式,比如 get、post、put 等等。
3.6、路径:协议、ip、端口分开写之后,这里只需要写端口后面的部分即可,比如 /emp/getEmpBySal。
3.7、参数:用于设置 url 上的查询参数,比如 start=2000。查询参数也可以直接使用?号带在路径上。
3.8、消息体:用于设置请求体 body 中的参数。
3.9、文件上传:用于设置上传的文件。
4、选中新建的[HTTP请求]右击,选择:添加 -> 配置元件 -> HTTP信息头管理器。
4.1、可以填写名称、注释,主要用于设置请求的头信息,如 token、Cookie 等等。
4.2、比如 Post 请求时通常需要设置:Content-Type=application/json;charset=utf8
5、配置请求结果查看面板,选择:测试计划 -> 添加 -> 监听器,常用的有:察看结果树,汇总报告,聚合报告、用表格察看结果等。
6、最后点击'运行'按钮即可发起请求。

7、多个线程组时,在指定的线程组上右击,选择 '启动' 即可只运行单独的线程组下面的请求,否则默认会运行所有线程组。
线程组与线程属性
1、线程组下有几个线程属性:线程数、Ramp-Up 时间(秒)、循环次数。
1.1、线程数可以理解为用户个数,有多少个线程就表示有多少个用户。
1.2、循环次数表示每个线程/用户重复(串行)请求几次。
1.3、Ramp-Up 时间(秒)表示多少时间内请求全部发送完成。
1.4、比如 线程数=100,循环次数 =2,Ramp-Up=5,则 100 * 2 / 5,表示 40/s,即每秒发送 40 个请求。


2、线程组的线程属性针对的是下面的所有 Http 请求,而且默认从上到下顺序执行,比如线程组下有两个请求,线程数为2,循环2此,则执行情况如下:

Http 请求
1、post 请求时查询参数建议直接使用 ? 号带在路径上,请求体设置在‘消息体数据’里面。
2、文件上传的 MIME 类型填写:application/octet-stream
3、如果使用了全局变量或者 cvs 数据文件设置参数值,则使用 ${xxx} 获取变量的值。
Jmeter 设置响应内容编码
1、默认情况下 Jmeter 是使用 ISO-8859-1 对返回内容进行解码,所以返回的中文会乱码。
2、解决方式1:修改 jmeter.properties 文件中的 sampleresult.default.encoding=UTF-8,这样所有请求都将使用此配置。
3、解决方式2:在指定请求上右击,选择:添加 -> 后置处理器 -> BeanShell 后置处理程序,在脚本框中输入如何内容后即可,此种方式只对指定的请求有序。prev.setDataEncoding("UTF-8");
查看结果树
1、【查看结果树】模块,"取样器结果"的左侧可以选择响应内容的展现形式,比如 Json。
HTTP 信息头管理器
1、如果请求的接口需要先登陆,则可以像 Postman 一样,先使用浏览器登陆,F12 随便找一个接口,从请求头信息中得到 Cookie 信息,然后放到【HTTP信息头管理器】中即可。
2、线程组或者Http请求—>配置元件—>【HTTP信息头管理器】,然后设置请求头即可。
3、【保存测试计划】可以将头信息保存到本地,方便后续再【载入】重复使用。
CVS 数据文件
1、有时候可能需要并发请求同一接口,而其中的参数却是动态变化的,此时可以选择从 cvs 文件读取。
2、准备 cvs 文件,设置参数值,第一行可以设置好变量名称,也可以在 Jmeter 中设置。
3、线程组或者Http请求—>添加—>配置元件—>CSV Data Set Config.
4、其中的配置选项都通俗易懂,不再重复累述,如果 cvs 文件首行没有设置变量名,则可以在其中的 "变量名称(西文逗号间隔)"栏上设置。
5、最后在 http 请求的参数值位置,使用 ${变量名} 的方式获取参数值。
6、值得注意的是,假如 cvs 文件中参数值数据有5行,此时线程属性配置:
线程数2+循环次数1:请求2次,只取 cvs 文件中第1、2行参数值。
线程数5+循环次数1:请求5次,逐个获取 cvs 文件中的5行参数值。
线程数5+循环次数2:请求10次,cvs 文件中5行参数值获取两遍。

用户自定义变量
1、除了从 cvs 文件中获取参数值,也可以直接在 Jmeter 中定义变量。线程组或者Http请求—>配置原件—>用户定义的变量。
2、然后在 Http 请求中即可获取使用 ${变量名称}。

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)