jmeter做接口和自动化常见的使用方法

一、提取器

1.JSON 提取器的应用场景

1.1.提取某个特定值
1.1.1.切片提取获取某个位标值

在这里插入图片描述
在这里插入图片描述

1.2.提取多个值

1.2.1.提取多个同名值这是查找全部然后按条件提取的方法,如果选择提取全部(-1)传递的时候需要改变成:变量名_1,变量名_2,变量名_matchNr返回你提取的数量,某些场景可以用于确认遍历次数
在这里插入图片描述
在这里插入图片描述

1.3.按条件查询按
1.3.1.件提取是一个常用的方法

在这里插入图片描述
在这里插入图片描述

1.3.2.还有其余几种用法

1.3.2.1. . . d a t a [ ? ( @ . i d > ′ 2020 − 06 − 0 1 ′ ) ] 大小比对 1.3.2.2. ..data[?(@.id > '2020-06-01')] 大小比对 1.3.2.2. ..data[?(@.id>20200601)]大小比对1.3.2.2.…data[?(@.id =~ /.会员.?/i)] 包含某些字符
1.3.2.3.$…data[?(@.id)] 这个字段

1.4.提取值组成的列表

1.4.1.提取值组成的列表这个方法能在某些场景使用,不过一般都是单独提取两个值,返回值是 变量 = {“id”: “演示”,“name”: “演示”}
在这里插入图片描述
在这里插入图片描述

2. 正则 提取器的应用场景

1.提取某个固定的字段的值
在这里插入图片描述
在这里插入图片描述

二、CSV 参数化

1.csv绝对路径场景
在这里插入图片描述

2.csv相对路径场景

2.1.需要注意的是,相对路径是以jmx脚本所存在目录为开始,…/为脚本上级目录
在这里插入图片描述

3.csv文件编码
3.1.如果你的csv文件是通过其他方式转译生成的,那么就选择gb2312编码,直接生成的默认选择utf-8
**加粗样式
**
4.csv变量名称
4.1.设置变量名称
这步是csv自动化的核心,设置变量名称a,b,c,d对应csv文件的第一行,同时勾选忽略第一行,这样我们调整文件时候也方便维护
在这里插入图片描述
在这里插入图片描述

5.csv允许带引号
5.1.在某些场景,我们断言或者传递参数,其中字符串中包含了引号,这时候我们就需要勾选允许带引号,默认是关闭状态不需要开启
在这里插入图片描述

6.csv线程共享
6.1.正常业务下,一个线程组一个csv配置。线程共享一定要选择当前线程组,不然会出现跨线程变量覆盖、参数传递失效等奇怪问题
在这里插入图片描述

三、beanShell 脚本

beanShell 脚本 配合 CSV配置让csv文件更精简,更容易维护,同时也能解决环境依赖项的变动问题

1.beanShell 引用变量与定义变量与引用函数

1.1 vars.get(String key); 从jmeter中获得变量值,如:vars.get(“key”); 注意,需要用双引号,不能这样vars.get(“${key}”);
1.2 vars.put(String key,String value); 数据存到jmeter变量中,如vars.put(“key”,“123456”); //变量名需要用双引号
1.3props.get(String key);与vars作用大致相同,vars 只能在当前线程组内使用,props 可以跨线程组使用
在这里插入图片描述

2.beanShell 打印输出日志

2.1 log.info("响应状态码" + ResponseCode);
2.2 log.debu("调试信息");
2.3 log.warn("警告信息");
2.4 log.error("出错信息");

在这里插入图片描述

3.beanShell 断言

3.1 	名称:BeanShell断言组件的自定义名称,见名知意最好。
3.2	注释:即添加一些备注信息,对该BeanShell断言组件的简短说明,以便后期回顾时		查看。
3.3	Reset bsh.Interpreter before each
call:每个BeanShell测试元素都有自己的解释器副本(对于每个线程)。如果重复调用测试元素,例如在循环内,除非选择在每次调用之前重置bsh.Interpreter选项,否则解释器将保留在调用之间。一些长时间运行的测试可能会导致解释器使用大量内存。
由于BeanShell的bsh.Interpreter存在内存泄露,常规方法无法支持长时间的压力测试。JMeter官网推荐,在使用BeanShell进行长时间测试时,打开选项Resetbsh.Interpreterbefore eachcall,则在每次调用BeanShell程序前,都把解释器重置,以释放解释器之前占用的内存。
参数 (-> String Parameters和String[]bsh.args):输入String参数。String
3.4	[]bsh.args是主类main函数的形式参数,是一个String 对象数组,可以用来获取命令		行用户输入进去的参数。
3.5	脚本文件:脚本文件(可以填入脚本文件路径),可以点击后边的浏览选择脚本文		件。
3.6	Script (see below for variables that aredefined):编写脚本,参照下文定义的变量		(使脚本文件参照定义的变量来运行)

四.BeanShell断言的使用

4.1 //状态码断言

log.info(“状态码:” + ResponseCode);
if(ResponseCode.equals(“200”)){
Failure=false; // 表示断言成功
}
else{
Failure=true; // 表示断言失败
FailureMessage=“响应状态码非200”; // 自定义的失败信息
}
注:字符串只能使用双引号,字符串相等要使用" “.equals(” ")表达式。
在这里插入图片描述

4.2 响应体包含特定内容断言代码:

在这里插入图片描述

五.使用BeanShell去掉某一个请求头参数

5.1 使用beanshell预处理程序要删除不需要的请求头参数

import org.apache.jmeter.protocol.http.control.HeaderManager;
// 获得请求头信息
HeaderManager headers = sampler.getHeaderManager();
// 打印删除指定请求头参数前的全部请求头信息
log.info("删除前" + headers.getHeaders().getStringValue());
// 删除请求头指定的信息
sampler.getHeaderManager().removeHeaderNamed("Content-Type");
// 打印删除指定请求头参数后的全部请求头信息
log.info("删除后" + headers.getHeaders().getStringValue());

在这里插入图片描述

六. 上传文件

6.1实际抓取接口
在这里插入图片描述

6.1.1 jmeter实际配置接口
在这里插入图片描述
在这里插入图片描述

注意点:1、确定请求头是符合要求的,一般上传接口会变更请求头信息

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值