遇一山,过一山,处处有风景;只要勇敢向前,一路尽是繁花盛开。 | (点击查看→)【测试干货】python/java自动化、持续集成、性能、测开、简历、笔试面试等

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方法即可将常用变量占位符替换为实际值,下一篇将会用到。

 

posted @ 2023-12-23 22:47  全栈测试笔记  阅读(503)  评论(0编辑  收藏  举报
浏览器标题切换
浏览器标题切换end