目录

 

Apache JMeter 下载与安装

Apache JMeter 快速使用入门

线程组与线程属性

Http 请求

Jmeter 设置响应内容编码

查看结果树

HTTP 信息头管理器

CVS 数据文件

用户自定义变量


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 请求中即可获取使用 ${变量名称}。

Logo

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

更多推荐