因为jmeter是java写的所以需要java环境,配置jdk
下载好jmeter,点击bin里面的jmeter.bat 就会启动
会有一个图形化界面来配置创建调试接口测试
切换一下中文
先创建一个线程组
在线程组鼠标右击 选择配置元件 添加http请求默认值
设置一下默认地址和接口
在线程组鼠标右击 选择配置元件 添加http消息头管理器
跟普通http请求一样 需要什么参数就加
post请求 我们参数以json格式传 就加这个
在线程组鼠标右击 选择取样器 添加一个http请求
设置请求接口 和请求参数
在线程组鼠标右击 选择断言 添加响应断言
a、包括:返回结果包括你指定的内容,支持正则匹配
例如:
响应字段为: 响应文本
模式匹配规则:匹配
断言为:1、success 2、[a-z]+
当返回值为:{"msg":"login success."} , 这两个断言都是ok的,返回true
b、匹配:
(1) 相当于 equals 。当返回值固定时,可以返回值做断言,效果和equals相同
(2) 正则匹配 。 用正则表达式匹配返回结果,但必须全部匹配。 即正则表达式必须能匹配整个返回值,而不是返回值的一部分。
例如:
响应字段为: 响应文本
模式匹配规则:匹配
断言为:1、{"msg":"login success."} 2、\{"msg":"[a-z]+ success\."\} , 3、[a-z]+
当返回值为:{"msg":"login success."} ,断言1 2 是ok的, 断言3是false
原因是,断言1 只能用于equals,而断言3 只匹配了返回值部分,而不是全部匹配。
c、Equals : 返回结果与你指定断言完全一致
d、SubString:与 “包括”差不多,都是指返回结果包括你指定的内容,但是subString不支持正则字符串
例如:
响应字段为: 响应文本
模式匹配规则:匹配
断言为:1、success 2、[a-z]+
当返回值为:{"msg":"login success."} , 断言1返回true, 但断言2返回false
e、否:就相当于取反。 如果上面断言结果为true,勾选“否”后,最终断言结果为false。如果上面断言结果为false,勾选“否”后,则最终断言结果为 true。
f、或者:这个我目前还不清楚 我基本不用
在线程组鼠标右击 选择监听器 分别添加 结果 和 汇总报告
测试一下 保存 jmx文件 去bin里面找 通过命令方式来测试
CLI 模式测试
参考网址:https://www.bbsmax.com/A/8Bz8qDlLJx/
去bin找到我们的测试脚本 .jmx文件 修改一下名字 为英文
cmd
jmeter -n -t lottery.jmx -l result/report.jtl -e -o report
- 执行 lottery.jmx 脚本
- 在 result 目录下生成 report.jtl 报告
- 最后在 report 目录下生成测试报表文件夹
- 切记: report.jtl 必须不存在, report 目录必须不存在或者为空
然后就可以看我们的测试报告了