(目录)JMeter
知识点
2、官方文档(帮助文档):https://jmeter.apache.org/usermanual/component_reference.html
3、执行顺序
配置元件
取样器
监听器
4、接口输入的数据来源:
- 手动输入
- 读表配置
- 从之前的接口的响应提取的
5、怎么判断接口是否成功?
- 查看结果树 - 绿色(协议发送成功)
- 本质-接口有没有实现相应的业务
6、请求的组成:(Request)
- 请求行
- 请求头
- 中间空一行
- 请求body
7、HTTP响应组成:
- 状态行
- 消息报头
- 空行
- 响应正文
8、请求参数介绍
- Get请求:
- 参数都在请求行里 --可以在Webforms的QueryString查看(抓包工具)
- 可配置在Path后面或Parameters(Jmeter)(参数只填一个地方即可)
- Post请求:
- 参数类型在请求头Content-Type 数据类型查看(抓包工具)
- 参数可配置在:
- x-www-form-urlencoded格式:在JMeter中填写在Parameters中
- json格式:配置在JMeter中一定要填写在Body Data中,还要加信息头管理器因为jmeter默认发送的数据类型是 x-www-form-urlencoded
9、 参数化方法:
函数参数化 -- 随机,
csv参数化 -- 变量已存在
数据库参数化
10、响应的content-type
11、语法:
变量的引用:${变量名}
函数的引用:(直接在函数助手复制)
12、脚本编写流程
- 流水式的代码先写好 -- 毛坯房
- 优化脚本 -- 装修
- 参数化
- 关联
- 断言
一、常用快捷键
1、ctrl + s:保存
2、ctrl + e:清除
3、ctrl + r:运行
二、快速上手JMeter
1、参考:https://www.cnblogs.com/wwho/p/14069876.html
三、线程组
四、取样器
1、HTTP请求
主请求里面有很多子请求(JMetr可勾选显示出来)
2、调试取样器
- 可以查看参数有没有读错
五、配置元件
1、HTTP请求默认值:https://www.cnblogs.com/wwho/p/14102497.html
2、HTTP Cookie管理器:
https://www.cnblogs.com/wwho/p/14102451.html
- 保存登录信息,HTTP是没有状态的,使用cookie来保存状态
- 反复清除Cookie,如果有需要迭代的时候,比如登录不同用户购买不同商品就要勾上,因为一个用户登录了,会保存下Cookie,下一个用户登录的时候还是会用着前面那个用户登录的Cookie
3、HTTP信息头管理器
4、CSV数据文件设置(CSV Data set config)
- https://www.cnblogs.com/wwho/p/14134537.html
- 按行读取的;
- CSV随机参数化:https://www.cnblogs.com/wwho/p/14142270.html
- 如果账号密码在同一行(user,password);不会说账号1匹配到账号2的密码,因为是按行随机的
- 可以是txt文件或csv文件等
- csv文件:
- 是逗号隔开,CSV Data set config默认也是逗号
- 不能直接修改后缀名,用另存为
- 可以使用相对路径;./
六、监听器
1、查看结果树
七、函数助手
1、官方文档
2、函数参数化格式:${变量名}
3、random函数
4、__UUID函数(重复几率很少)
5、__time函数
6、__RandomDate:随机时间
- ${__RandomDate(,2022-01-01,2022-02-01,,)}
7、_RandomString:随机字符串
- 固定长度的随机数字,可用随机字符串来实现,用随机数字的话,第一位0会不显示
八、后置处理器
1、json提取器:https://www.cnblogs.com/wwho/p/14154912.html
- JSONPath格式:https://goessner.net/articles/JsonPath/
- 取最后一个值用-1:;
- $.[0].children[-1:].children[0].title
- 取最后一个值用-1:;
- 作用:可以把响应的数据提取出来作为变量让后面的接口使用
- 注意事项:
- json提取器提取的要放在想要其他数据的请求子集里面,不能跟请求同级,否则会出现后面的请求影响到前面的请求提取的数据
- 例如,要把新建的学校禁用了,用JSON提取器提取新建学校的id和schoolID,如果把JSON提取器放到跟新建学校同级,会出现调试采样器能看到变量的值,但是执行完禁用学校后,变量的值没了。导致禁用学校出错
2、边界提取器:https://www.cnblogs.com/wwho/p/14154912.html
固定两边取中间
缺省值:边界提取器填错了取不到东西,就用缺省值取代替
3、正则提取器
- 关联和正则:https://www.cnblogs.com/wwho/p/14147970.html
- 提取器的作用:提取数据
- 特殊字符含义:
- .点:匹配任何单个字符,除了\n\r之外
- +加号:匹配前面的子表示式一次或者多次
- ?问号:当该字符紧跟在任何一个其他限制符(*,+,?)后面时,匹配模式是非 贪婪的,非贪婪模式尽可能少地匹配所搜索的字符串
- *星号:匹配前面的子表达式任意次
- ()小括号:将()之间的表示式定义为“组”,并且将匹配这个表示式的字符保存到一个临时区域
- 正则表达式提取器里面重要参数:模板、组、匹配(match)的说明
- 正则表达式提取的数据讲解:
- 正则表达式提取器的使用步骤
- 先找到需要提取的文本
- 确定左右边界
- 取什么 就把那些值 用 (.*?) 代替
- 例子:laccount":(.+?),"statisticDatas
- 转义字符 \: https://www.cnblogs.com/wwho/p/14147970.html
九、断言
1、断言介绍:
用于对采样器执行结果的检查,让jmeter工具自己判断接口是否成功,检验业务成功还是失败
断言一般断主请求(接口)的响应,所以最好放在请求的子集里面
2、怎么找断言:
- 断言断的是响应的数据,在响应数据(响应正文)里面找
- 断言一般断成功的标记,一般是断业务状态码,message信息等;
- 业务状态码一般由开发决定
- 返回的是json格式:断code reson等
- html格式 ,对比找关键字
3、断言的结果:
断言成功,没有显示
断言失败,变红,响应里面没有包含期望的东西
4、响应断言:https://www.cnblogs.com/wwho/p/14106842.html
5、json断言:https://www.cnblogs.com/wwho/p/14133692.html
Json断言取值JSONPath格式:https://goessner.net/articles/JsonPath/
JSONPath格式
使用点表示法:$.store.book[0].title
使用括号表示法:$['store']['book'][0]['title']
Json取值只能一个个取,不能同时取多个
JSon断言跟响应断言的区别
- json断言更加精确一点
- 只有响应是json格式的,才能使用json断言
十、使用jmeter的例子
1、jmeter查询天气等信息(key:要去申请才会给(聚合API))
https://www.cnblogs.com/Samkes/p/16041715.html
报错整理
1、报错排查
- 去结果树中检查requst的组成
- 检查Request Body组成
2、错误码(Response code):
- 500:服务器发生不可预期的错误
- 可能请求里面没加信息头
3、登录不成功,因为网址的地方(POST http:....)多了个%20(空格),回到提交登录请求那里,把path里面的空格去掉
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)