java接口自动化系列(06):常用变量解析到map
本系列汇总,请查看这里:https://www.cnblogs.com/uncleyong/p/15867903.html
实现目标
常用变量解析到map,方便后面解析初始化sql或者入参的时候将常用变量占位符替换为实际值。
添加工具类
VariableUtil.java
package com.qzcsbj.autotest.utils; import com.qzcsbj.autotest.entity.Variable; import org.apache.log4j.Logger; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; /** * @公众号 : 全栈测试笔记 * @博客 : www.cnblogs.com/uncleyong * @微信 : ren168632201 * @描述 : <> */ public class VariableUtil { public static Logger logger = Logger.getLogger(VariableUtil.class); // 存放变量和值的map public static Map<String, String> variableMap = new HashMap<String, String>(); // 从对象列表variableList中获取变量和值,放到map中 public static void loadVariablesToMap(List<Variable> variableList) { for (Variable variable : variableList){ String name = variable.getName(); String value = variable.getValue(); variableMap.put(name,value); } } }
同时,工具类中添加替换变量的方法
// 替换变量 public static String variableSubstitution(String parameters) { // 获取所有变量名 Set<String> names = variableMap.keySet(); for (String name : names) { if (parameters.contains(name)){ parameters = parameters.replace(name,variableMap.get(name)); } } return parameters; }
修改@BeforeTest修饰的方法
调用VariableUtil工具类中方法
@Parameters({ "excelPath", "dataSheetName", "variableSheetName"}) @BeforeTest public void readDataFromExcel(@Optional("caseData/caseData.xlsx") String excelPath, @Optional("case") String dataSheetName, @Optional("variables") String variableSheetName){ logger.info("excelPath: " + excelPath); logger.info("dataSheetName: " + dataSheetName); logger.info("variableSheetName: " + variableSheetName); cases = ExcelUtil.loadExcel(excelPath, dataSheetName, CaseData.class); variables = ExcelUtil.loadExcel(excelPath, variableSheetName, Variable.class); // logger.info("读取文件获取到的cases对象:" + cases); // logger.info("读取文件获取到的variables对象:" + variables); VariableUtil.loadVariablesToMap(variables); Set<String> keys = VariableUtil.variableMap.keySet(); for (String key : keys) { System.out.println(key + "=" + VariableUtil.variableMap.get(key)); } }
结果演示
运行testng.xml
通过结果可以看到,常用变量放到了map中
如果要替换,直接调用variableSubstitution方法即可将常用变量占位符替换为实际值,下一篇将会用到。
__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
欢迎分享:如果您觉得文章对您有帮助,欢迎转载、分享,也可以点击文章右下角【推荐】一下!