参数化实现设计思路
参考postman环境变量存储及参数化替换方法实现java代码
postman参数化实现思路:
1.使用javaScript代码提取出上一个接口响应值的指定字段值
2.将该值存入环境变量中
3.下一个接口中使用{{XXX}}调用该变量
JAVA代码中参数化实现
- 使用res.jsonPath().get(XXX);获取到指定接口的返回值中指定字段值
- 将获取到的值赋给环境变量类中定义的变量,以下为环境变量类的定义:
public static Enviroment{
public static String pwd;
...
}
- 使用正则表达式提取出下一个接口要调用该变量的位置并将其使用环境变量中的值进行替换,如:
下一个接口的请求参数为:{“usersName”:“xiaowang”,“pwd”:“{{XXX}}”}
pwd值需要调用上一个接口返回值中的pwd的值
因此需将该接口的请求参数中的{{XXX}}进行替换
正则提取及替换方法为:
public static String regexReplace(String orgStr,String replaceStr){
//pattern为正则表达式提取器
Pattern pattern = Pattern.compile("\\{\\{(.*?)}}");
//matcher 匹配原始字符串,得到匹配对象
Matcher matcher = pattern.matcher(orgStr);
String result = "";
while(matcher.find()){
//提取出连带正则表达式前后匹配值的字符串
String outerStr = matcher.group(0);//{{XXX}}
//提取出不连带正则表达式前后匹配值的字符串
String innerStr = matcher.group(1);//XXX
result = result.orgStr.replace(outerStr,replaceStr);
}
return result;
}