常用jmeter功能(附带场景)
- 一、jmeter其他特性
- 1、请求的接口有多个 且 域名相同
- 2、 jmeter支持统一管理参数的设置
- a、创建HTTP Header Manager
- b、用户定义参数
- c、csv数据文件设置
- 3、接口a的返回值作为 接口b的入参
- a、 `json`提取器
- b、 正则表达式
- 4、if controller
- 场景1 ,满足一定条件,会触发调用某(些)接口
一、jmeter其他特性
1、请求的接口有多个 且 域名相同
可以写到http请求默认值里【主要填写的部分:通讯协议,请求的内容编码,服务器域名】;
创建路径:在 testplan
右键 add-> Config Element -> HTTP Request Defaults
内容面板数值设置示例:
这样http请求就不需要写域名了,只需要写请求方式和请求路径及入参
2、 jmeter支持统一管理参数的设置
a、创建HTTP Header Manager
创建路径: 在testplan
右击 add -> Config Element -> HTTP Header Manager
内容设置:他的设置是key,value的形式 ,调用http请求的时候,你可以把这个对象看作是工具,定义在testplan里,作为全局变量
使用场景:用户鉴权信息需要作为全局变量供其他接口使用
详述:
当接口要做用户鉴权(BeanShell PreProcessor,此处定义在http请求上)
鉴权代码样例
定义的http 头信息管理器界面
b、用户定义参数
创建路径:在testplan
右键 add-> Config Element ->User Defined Variables
赋值方式为 key,value 的形式
适用场景:可以在这里定义一些商品ID,skuid 等等,便于其他接口作为入参去调用
大概长这个样子:
使用场景1:
用户参数变量的应用包括但不局限于http接口请求参数
http接口请求要用到的变量值:
添加购物车:
使用情况2:
请求路径带变量 ,eg:如 www.baidu.${a} ,a的值为com
jmeter可以通过在用户变量参数设置值,然后在这里获取使用。
c、csv数据文件设置
创建路径:在testplan
右键 add->Config Element -> CSV Data Set Config
界面参数参看:
最后一列Sharing mode ,是可以指定csv文件数据的作用域的,值域:All threads ,Current thread group ,Current thread,Edit【此项为作用域的可扩展项设置】
文件内容参看:即文件里的内容只有数据项,没有变量名称的指定
以上几种定义变量的方式,可以用: ${变量名}
的形式来取值。
至于是全局还是局部,看定义的位置和设置参数作用域范围
3、接口a的返回值作为 接口b的入参
a、 json
提取器
创建路径:在http请求
上面右键 add ->Post Processors ->JSON Extractor
jmeter
实现它的作用:上一个接口返回值是其他接口的入参
界面数值的设置:下图创建变量名为token
,则引用的地方可以写${token}
ps : 如果是对象的话,可以直接取值
$.data.字段
如果是数组,$.data[0].字段
-
场景1:下单接口的订单号,作为查询物流信息接口的入参
此处可以用jmeter
的json
提取器来实现接口间传值,创建json提取器: -
场景2:用户登陆后返回的token ,修改用户手机号的时候http信息头管理器需要用到token信息。
引用:
-
场景3 a接口返回值为数组里的字段值是b接口需要的
接口返回值的层级结构:想获取id
json提取器的值 :$.data.order[0].merchant.id
b、 正则表达式
创建路径:add->Post Processors -> Regular Expression Extractor
界面数值设置:"cartId":"(.+?)"
关于正则此处不做过多解说,想了解可以参看:jmeter正则
取值的地方:
4、if controller
创建路径:在线程组右键 add->Logic Controller -> If Controller
场景1 ,满足一定条件,会触发调用某(些)接口
这里只是简单的逻辑控制器的使用,想了解更多可以参看:jmeter逻辑控制器
逻辑控制器还可以嵌套
想了解更多可参看
jmeter的官网
想了解的同学可以关注官网的这部分内容