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

二、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、点击启动,访问页面即可


↙↙↙阅读原文可查看相关链接,并与作者交流