中国外贸网站,网络工程专业毕业设计论文,网站源码怎么搭建,产品设计公司招聘在做接口测试时#xff0c;除了测单个接口#xff0c;还需要进行业务链路间的接口测试 比如[注册-登陆]需要token鉴权的业务流 当我们用使用postman/jmeter等工具时#xff0c;将注册接口的一些响应信息提取出来#xff0c;放到登陆接口的请求中#xff0c;来完成某个业务… 在做接口测试时除了测单个接口还需要进行业务链路间的接口测试 比如[注册-登陆]需要token鉴权的业务流 当我们用使用postman/jmeter等工具时将注册接口的一些响应信息提取出来放到登陆接口的请求中来完成某个业务流的接口测试。
截取postman部分图示
Step1新增环境变量并且通过编写postman脚本将响应字段提取并且保存到环境变量中 Step2引用变量在你需要引用变量的位置通过{{XXX}}XXX代表的是变量名
在后续接口的请求中引入{{token}}将从环境变量中把token的数值提取出来替换掉{{token}}进行接口请求
同样的在接口自动化编写代码时我们也可以参考postman的参数化替换 后续接口 如果需要使用前面接口的响应信息直接从环境变量中取出来通过正则表达式的替换安装到自己的需要字符串里面
举例如下 通过正则匹配{{(.*?)}}找到{{mobile_phone}}再找到里面的mobile_phone拿mobile_phone去环境变量中找到对应的响应值通过字符串的replace方法把{{mobile_phone}}替换为具体的值比如15764340463 java正则表达式通过java.util.regex包下的Pattern类与Matcher类实现 Pattern类的作用在于编译正则表达式后创建一个匹配模式. Matcher类使用Pattern实例提供的模式信息对正则表达式进行匹配 public class RegexUtils {public static void main(String[] args){//1、在环境变量中存在 变量及值mobile_phone,13323234545...//这里方便演示手动存入Environment.envMap.put(mobile_phone,13323234545);Environment.envMap.put(pwd,123456);Environment.envMap.put(id,666);//2、接口请求数据中为了方便管理测试数据写成如下json样式发送请求之前进行参数化替换String str {\n \mobile_phone\: {{mobile_phone}},\n \pwd\: {{pwd}},\n \id\:{{id}}\n };System.out.println(原始的字符串str);String replaceStr regexReplace(str);System.out.println(替换后的字符串replaceStr);}/*** 字符串替换* param orgStr 原始字符串* return 替换后的字符串*/public static String regexReplace(String orgStr){String result orgStr;//compile————编译 Pattern正则匹配器Pattern pattern Pattern.compile(\\{\\{(.*?)\\}\\});//matcher匹配对象和原始字符串相匹配Matcher matcher pattern.matcher(orgStr);while (matcher.find()) {//找到的完整字符串String allGetStr matcher.group(0);System.out.println(找到的完整字符串allGetStr);//找到{{XXX}}内部的匹配的字符串String innerStr matcher.group(1);System.out.println(找到的内部字符串innerStr);//具体的要替换的值从环境变量中找到的Object replaceValue Environment.envMap.get(innerStr);//替换result result.replace(allGetStr,replaceValue);}return result;}}运行结果 关于具体的表达式内容可以看这篇 CSDN