性能测试工具 jmeter 学习笔记

烂柯人 · 2021年04月01日 · 最后由 烂柯人 回复于 2021年04月02日 · 4404 次阅读

一、技能要求
分析需求
数据库信息、中间件、操作系统个、硬件信息
运维基础
难点:将核实的需求分析转化成场景设计

二、jmeter 元件(非常见使用)
1、http 请求默认值
类似一个全局变量,该元件不会执行,例如将 ip、port 等填写到 http 请求默认值中,其他 http 请求如果参数相同则不需要填写

2、集合点(Synchronizing Timer)
线程组不添加集合点,执行时间是错乱的执行后,时间是同一时刻,为了模拟真实并发情况

3、分布式执行(待细化)

三、控制器
1、ForEach Controller(循环控制器)
主要应用在自动化中,
第一个接口返回的 id 值有十个

使用正则表达式获取这十个 id 的值

forEach 控制循环的次数,十个 id 所以十个 scen


最终的 foreach 中的请求调用了十次

2、仅一次执行控制器 (此处限制对线程组设置中线程数和循环次数中均生效)
线程组设置循环次数


## 其中设置线程组设置现成 10 路,则有十个该请求
设置调度器

3、Throughput Contrlooer
1)、Percent Executions


2) Total Executions


4、If Controller
配置项
InterPet Condition as Varaialble Exprssion

Evaluate for all children

4、Transaction Controller 事务控制器
Generate Parent sample :是否生成一个父取样结果
1)选中结果如下


2)取消选中

四: 正则表达式
1、正则表达式的组成:元字符和限定符

1)用法 1:一个表达式提取多个,下次引用可以用下标,参考截图


2)用法 2:获取数组后使用 forEach 函数使用



其中线程组添加 Debug Sampler 可以查看到每个提取值
其中匹配数字,0 代表是随机,-1 代表是提取所有的值

2、对比 json 提取与正则表达式的区别
接口返回如下:针对 data 下 dsConfig 提取

1)正则表达式(支持提取多个,使用下标区分)

2)json 提取(支持提取多个,使用下标区分)

3)json 提取(已经明确了下标,只能提取一个)

五、HTTP Cookie 管理器
当登录成功以后响应中 setCookie 在以后的请求中是同一个时,在线程中添加头管理器则后续的请求会自动加上这个 cookie

六、jmeter 录制
1、添加线程组,添加 HTTP 请求默认值,将 ip 和端口信息配置好

2、在工作台添加 HTTP 代理服务器,在其下添加查看结果树
在 Test Plan Creation 中配置目标控制器,选择到线程组名称

在 Request Filtering 中配置排除模式,主要是去除一些资源的接口 :“(?i).*.(bmp|css|cab|js|gif|ico|jpe?g|png|swf|woff|woff2|htm|html).”

3、在 ie 浏览器中配置端口等信息

4、点击启动,访问页面即可

共收到 6 条回复 时间 点赞

记录笔记欢迎指正

赞一个 期待更新 。楼主,有场景吗,能放一个具体场景更好了

记录的基本上是单个组件的使用,复杂场景我还没有学到呢

烂柯人 回复

继续加油~期待更新

提几个和我理解不大一样的点:

1、定时器(Synchronizing Timer),这个应该是集合点吧,目的是模拟瞬间高压力的场景(几毫秒内直接指定数量的请求过来,造成短暂高压力)。定时器对应英文是 timer ,有好几种不同的定时器的,统一叫定时器好像不大好

2、ForEacheContrlooer 两个好像都拼写错误了?。

3、头管理器 不知道你具体指的是哪个?有 http header manager 和 http cookie manager ,你的描述像是 http cookie manager ,但直译的话头管理器应该是 http header manager 。

陈恒捷 回复

好嘞我来检查下

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册