JMeter 简介
Apache JMeter 是一款流行的性能测试工具,可以用来模拟用户行为并对系统进行压力测试。
安装
官方网站:http://jmeter.apache.org/
在window下解压后, 运行 "bin/jmeter.bat"
Jmeter 支持中文, 启动 Jmeter 后, 点击 Options -> Choose Language 来选择语言。
使用 JMeter 进行 Http 测试
打开 JMeter 并创建一个新的测试计划。
添加一个线程组(Thread Group)到测试计划中,设置线程数和循环次数。
在线程组下添加一个 HTTP 请求(HTTP Request)。
参数类型如果是 JSON/XML 则使用 Body Data;如果是 FormData 则需要勾选 "Use multipart/form-data",并在 Parameters 这一栏下面填写参数。如果是 json 需要填添加头信息:Content-Type:application/json。
JMeter 设置请求头信息
POST 传过去的 Body 数据是 json 格式的。需要填添加头信息:Content-Type:application/json
查看结果树
json提取器
当我们要把请求得数据作为下面接口的参数,接口返回的数据是json格式,在要提取返回数据的接口
JSON Path expressions匹配规则:
json串 []表示对象组成的数组,{}表示对象。
对象里包含多个 "属性":属性值。属性值可以是值,或数组或对象。
JSON Extractor使用json path表达式匹配,可以一次取多个变量值。
美元符号"$"表示响应的根对象;
英文句号"."表示取子对象或对象的属性;(或者:表示取字典里key的value)
英文中括号"[]"表示取数组里的对象用,数组索引从0开始。
如上截图,我要把接口返回的Authorization
作为凭证保存到头部,
$.data.Authorization
json提取器填写介绍:
Names of created variables:变量名,如填 name ,那用时为 ${name}
JSON Path expressions:提取变量的路径
Match No. (0 for Random):如果返回结果中提取了多个参数,取哪个可用到。0代表随机,-1代表全部,整正数表示序号
Default Values:默认值
注意:如果同时提取多个:则Match No. (0 for Random)和Default Values一定要填;如果匹配的结果只有一个,则Match No.填"1";另外Default Values可随便填"0",不填的话会报错,匹配不到数据;
提取多个参数是,用英文;隔开
使用变量
提取出来的Names of created variables字段就是变量名,使用时:${xxx}
JMeter 测试websocket接口
Jmeter 不自带 WebSocket 功能,需要先安装 WebSocket 的插件,Options -> plugins Manager;
如果没有这个菜单,安装方法如下:
https://jmeter-plugins.org/install/Install/
在 available plugins 搜索 WebSocket 进行插件下载即可,将搜索到的2个插件都安装,待 Jmeter 重启后插件就是安装成功。
JMeter 模拟多用户并发
场景:100个用户同时登录
设置线程组
线程总共启动时间为0表示并发
导入用户数据(CSV)
将存储用户账号、密码的文件引入,并命名变量名称,在登录时调用
调用,传参: ${account}