一. Jmeter安装
1. 安装jdk
1) 安装
2) 配置环境变量
JAVA_HOME、PATH、CLASSPATH
【JAVA_HOME】:我的电脑->属性->高级->单击“环境变量”按钮->单击“系统变量”区域的“新建”按钮->在 “变量名”文本框中输入JAVA_HOME,在“变量值”文本框中输入JDK的安装路径(参数名JAVA_HOME 其值 为安装的jdk的路径,在本案例中为C:\Program Files\Java\jdk1.8.0_181
【PATH】:在系统变量中查看PATH变量,如果存在PATH,则在最末尾添加 (直接添加,连;也加上,无 需加空格之类的,以下相同)。如果不存在,则新建变量PATH,设定变量值 为:;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
【CLASSPATH】:在系统变量中查看CLASSPATH变量,如果存在CLASSPATH,则在最末尾添加: %JAVA_HOME%lib\dt.jar;%JAVA_HOME%\lib\tools.jar;。如果不存在,则新建一个,设定变量值 为:.;%JAVA_HOME%lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
3) 验证安装成功
完成以上步骤后,开始验证是否安装成功。运行CMD(开始,运行,输入cmd,回车),输入 java version (java 和 -version 之间有空格)若显示版本信息 则说明安装和配置成功。
2. 安装jmeter
将安装包放入非中文目录下,安装就算完成了,因为jmeter是绿色免安装文件。
3. 启动jmeter
运行apache-jmeter-5.0\bin下的Jmeter.bat文件即可(jmeter.sh是Linux环境的运行文件),如下图打 开界面所示:
黑色dos窗口不能关闭,如果关闭的话,jmeter界面也随之消失。
为什么要非GUI模式运行
jmeter是java语言开发,实际是运行在JVM中的,GUI模式运行需要耗费较多的系统资源,一般来说, GUI模式要占用10%-25%的系统资源。
而使用非GUI模式(即linux或dos命令)可以降低对资源的消耗,提升单台负载机所能模拟的并发数。 jmeter是一个java开发的利用多线程原理来模拟并发进行性能测试的工具,一般来说,GUI模式只用于 创建脚本以及用来debug,执行测试时建议使用非GUI模式运行。
修改jmeter界面
如想永久更换语言,需要修改jmeter/bin目录下的jmeter.properties第 37行:改为language=zh_CN,注意要去掉注释#,重启方可生效。
二. jemert使用
1. 建立测试计划
a) 步骤
打开jmeter默认打开的已经建立了测试计划,测试计划内编写线程组,所有的组件都在测试计划内添加
b)相关说明
2. 建立线程组
a) 步骤
右击测试计划-->添加-->线程(用户)-->线程组
b) 相关说明
线程数: 设置发送请求的用户数目 即虚拟用户数,此处的线程数不等于每秒并发请求数;
Ramp-up period: 每个请求发生的总时间间隔,单位是秒。比如你的请求数目是5,而这个参数是 10,那么每个请求之间的间隔就是10/5,也就是2秒(设置为1,表示同时并发)
循环次数:保持默认;除非按照明确指定的次数压测,即可指定明确次数;一般压测正式开始我们会勾 选永远,然后通过调度器来控制脚本压测时间。
延迟创建线程直到需要:不用勾选
调度器:勾选---通过其控制压测时间,比如压测5分钟,则填入300s;
启动延迟:主要用于延迟多少时间后启动压测脚本,默认不使用;
3. 建立http请求
a) 步骤
右击线程组-->添加-->取样器->Http请求
b)相关说明
建立http请求后需要填写相关信息:服务器ip,端口,接口名称,参数,以及参数值,http的请求方式 post)
协议:由被测接口的协议决定,http或https
服务器名称/ip:填写服务的域名/ip地址,不要含有接口路径
端口:默认端口号80(http)和443(https)可以不写,非默认端口必填
方法:接口的请求方式,选择即可
路径:接口的path(域名后面的路径)
参数: 接口需要提交的参数
c) 请求get接口
请求查询商品信息接口
请求结果
d) 请求post接口-表单入参
请求结果
e) 请求post接口-json入参(需添加 http信息头管理器)
添加http 信息头管理器
在http请求中添加参数
请求结果
4. 添加http 信息头管理器
在信息头中添加content-type字段
内容为:application/json
请求结果
当然信息头管理器不只能添加content-type,还能添加任何可以放在请求头中的字段,比如什么 token,cookie等等,具体如下
a) 添加cookie
content-type字段换成 cookie 值换成cookie的值即可