Jmeter - 使用问题记录

2022-02-17

JMeter - ${var} 取值遇到的坑

问题:
1.

第一个请求 , 响应的数据如下,

通过JSON提取器提取token,并设置为jmeter变量

在第二个请求中用${token}的方式取 token 作为json请求体加入上送数据,校验token是否有效

但是上送数据如下, 预期是:{"token":"8d7caa926c411152498318eeba5d8b37"}:

解决过程:

  1. 提取token时, 用{"token": " ${token}"} , 依然不解决问题 (后来发现是token不存在导致)

  2. 第二个请求添加前置BeanShell处理器,处理token在前后添加 "" ,在存为token1 变量,在引用的时候用 ${token1} 解决

debug sample:

上送数据:

但感觉这种处理方式不太科学,之后有其他办法再更新




第二天再试 "${var}" 取值ok

取值方式:

取值结果:

总结:

  • jmeter 取变量的方式 : $
  • 需要在变量两边加双引号时: "${token}"
  • 当"${token}" 取不到值时说明这个变量根本就不存在所以取不到从而还是"${token}"

2022-06-08

请求1:

请求2:

问题:
Jmeter 接口请求的时候,跑多次的时候请求2 会失败,过一段时间再跑请求1和请求2都没有问题,紧接着再跑请求2失败

分析:
请求2 是请求1 重定向过去的, 如果请求1和请求2使用 KeepLive,当连接没有断开的时候,再次请求就会有问题

解决:
请求1 的 Jmeter 配置取消使用 KeepLive, 测试成功

总结:

HTTP - KeepAlive 的作用

2022-06-14

问题1:网页触发接口和jmeter触发接口返回的数据不一致

导致问题的原因:HTTP请求取样器没有填写编码

验证:
Jmeter 请求:请求体数据中出现中文乱码

网页请求:

总结:HTTP取样器内容编码最好还是写上,以免出现不必要的麻烦

问题2: HTTP取样器没有填写协议导致 HTTPS请求出现302 重定向

现象:

解决:

填写HTTPS 协议和443端口后正常

总结:

HTTPS协议的请求一定要填写协议和端口

2022-06-15

JSON 断言取list 最后一个数据:
https://blog.csdn.net/SwTesting/article/details/119140346

文件上传时请求头冲突问题:
https://blog.csdn.net/wangmcn/article/details/122639495

文件上传:
https://www.jb51.net/article/193029.htm

判断vars.get() 不为空

  • 如果使用的是 beanshell:
String value = vars.get("name");

if(value == null || value.isEmpty){

}
  • 如果使用的是 jsr223 或者 grovvy:

// 获取变量
def myVar = vars.get('myVariableName');
 
// 判断变量是否为空
if (myVar == null || myVar.isEmpty()) {
    // 如果为空,设置标志为false
    vars.put('isVarEmpty', 'false');
} else {
    // 如果不为空,设置标志为true
    vars.put('isVarEmpty', 'true');
}

https://www.dadaidc.com/zixun/30950.html

posted @ 2022-06-15 21:46  chuangzhou  阅读(54)  评论(0编辑  收藏  举报