1、Postman中处理数据依赖
- 方式1:设置环境变量
Postman特定接口Test中添加代码:
var jsonData=JSON.parse(responseBody); //获取所有body中返回参数
// var jsonData=pm.response.json(); //或者使用该方法获取json格式
var data= jsonData.data.log_id; //获取其中data的log_id (jsonData是json格式)
pm.environment.set("data",data); //设置环境变量data
console.log(jsonData); //console即控制台打印
后置接口中通过{{data}} 来获取环境变量
- 方式2:设置变量/全局或
后置接口或后置collection
中的Pre-request Script
中获取变量
// 设置变量
pm.environment.set("variable_key", "variable_value");
pm.globals.set("variable_key", "variable_value");
pm.variables.set("variable_key", "variable_value");
pm.collectionVariables.set("variable_key", "variable_value");
// 获取变量
pm.environment.get("variable_key"); //环境变量
pm.globals.get("variable_key"); //全局变量
var variable=pm.variables.get("variable_key"); //局部变量
console.log(variable)
pm.collectionVariables.get("variable_key"); //collection变量
// 变量清除
pm.environment.unset("variable_key");
pm.globals.unset("variable_key");
pm.collectionVariables.unset("variable_key");
pm.variables.unset("variable_key"); //局部变量
2、JMeter 中处理数据依赖
step1:使用后置处理器,获取接口返回数据
- JSON提取器
例如:
{
"errno": 0,
"errmsg": "ok", "IsPrint": False,
"data": {
"log_id": "2227684114",
"action_rule":
{
"pos_1":[],
"pos_2":[],
"pos_3":[]
}
}
}
$
表示跟元素,然后一级级往下去找,先找到data
,再往下结点找到log_id
,如$.data.log_id
=>多个变量使用;
分割
- XPath提取器
- 正则表达式提取器
参考:[搬运工系列]-JMeter(六)关联-(上下接口参数传递)
step2: ${变量名}
引用
=> ${变量名(Json提取器中命名的)}
来获取该值
3、自动化框架
way1:用例执行先后顺序,前置sql查询获取
way2:pytest的setup_class,或unittest的setUp
way3:前置SQL构造数据