java接口自动化系列(10):保存全局变量
本系列汇总,请查看这里:https://www.cnblogs.com/uncleyong/p/15867903.html
实现目标
如果后续有请求依赖本次请求的响应结果,那么把依赖数据保存到全局变量,比如token。
添加pom依赖
通过jsonpath提取值需要的依赖
<!-- https://mvnrepository.com/artifact/com.jayway.jsonpath/json-path --> <dependency> <groupId>com.jayway.jsonpath</groupId> <artifactId>json-path</artifactId> <version>2.4.0</version> </dependency>
修改工具类
GlobalVariableUtil工具类中添加保存全局变量的方法
/** * 解析全局变量,从响应内容获取值,并更新全局变量的值 * @param globalVariables */ public static void saveGlobalVariable(String res, String globalVariables){ if (null == res || "".equals(res) || null == globalVariables || "".equals(globalVariables)) { return; } String key,value; Object document = Configuration.defaultConfiguration().jsonProvider().parse(res); String[] globalVariablearr = globalVariables.split(";"); for (String globalVariable : globalVariablearr) { // token=$..token; if (StringUtil.isNotNullAndEmpty(globalVariable)){ key = globalVariable.split("=")[0].trim(); value = globalVariable.split("=")[1].trim(); String value_real = JsonPath.read(document, value); BaseCase.globalVariableMap.put(key, value_real); } } }
判断是否需要保存全局变量
测试方法中添加如下逻辑
// 是否需要保存全局变量 if (StringUtil.isNotNullAndEmpty(globalVariables)){ logger.info("开始保存全局变量:" + globalVariables); GlobalVariableUtil.saveGlobalVariable(actual, globalVariables); }
结果演示
测试数据中,登录成功后需要保存token
添加商品需要传token
运行testng.xml,可以看到,token保存并替换成功
__EOF__
本文作者:持之以恒(韧)
关于博主:擅长性能、全链路、自动化、企业级自动化持续集成(DevTestOps)、测开等
面试必备:项目实战(性能、自动化)、简历笔试,https://www.cnblogs.com/uncleyong/p/15777706.html
测试提升:从测试小白到高级测试修炼之路,https://www.cnblogs.com/uncleyong/p/10530261.html
欢迎分享:如果您觉得文章对您有帮助,欢迎转载、分享,也可以点击文章右下角【推荐】一下!
关于博主:擅长性能、全链路、自动化、企业级自动化持续集成(DevTestOps)、测开等
面试必备:项目实战(性能、自动化)、简历笔试,https://www.cnblogs.com/uncleyong/p/15777706.html
测试提升:从测试小白到高级测试修炼之路,https://www.cnblogs.com/uncleyong/p/10530261.html
欢迎分享:如果您觉得文章对您有帮助,欢迎转载、分享,也可以点击文章右下角【推荐】一下!