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

java接口自动化系列(08):解析请求入参

 

本系列汇总,请查看这里https://www.cnblogs.com/uncleyong/p/15867903.html 

实现目标

将请求中的常用变量、关联参数占位符替换为实际值。

 

测试类中添加全局变量

    // 替换符
    public static Pattern replaceParamPattern = Pattern.compile("\\$\\{(.*?)\\}");

    // 存放全局变量的map
    public static Map<String, String> globalVariableMap = new HashMap<String, String>();

 

添加工具类

StringUtil.java

package com.qzcsbj.autotest.utils;

/**
 * @公众号 : 全栈测试笔记
 * @博客 : www.cnblogs.com/uncleyong
 * @微信 : ren168632201
 * @描述 : <>
 */
public class StringUtil {
    public static boolean isNotNullAndEmpty(String s){
        return s!=null && s.trim().length()!=0;
    }
}

  

GlobalVariableUtil.java

package com.qzcsbj.autotest.utils;

import com.qzcsbj.autotest.testcase.BaseCase;
import org.apache.log4j.Logger;
import org.testng.Assert;

import java.util.regex.Matcher;

/**
 * @公众号 : 全栈测试笔记
 * @博客 : www.cnblogs.com/uncleyong
 * @微信 : ren168632201
 * @描述 : <>
 */
public class GlobalVariableUtil {
    public static Logger logger = Logger.getLogger(GlobalVariableUtil.class);

    /**
     * 从全局map中获取全局变量并替换
     * @param param
     * @return
     */
    public static String substitutionGlobalVariable(String param){
        if (!StringUtil.isNotNullAndEmpty(param)){
            return "";
        }
        Matcher matcher = BaseCase.replaceParamPattern.matcher(param);
        while (matcher.find()) {
            String replaceKey = matcher.group(1).trim();  // 得到第一个匹配内容
            String value;
            // 从全局变量map中获取值
            if ("".equals(replaceKey) || !BaseCase.globalVariableMap.containsKey(replaceKey)){
                value = null;
                Assert.fail("替换失败");  // 如果未能找到对应的值,该用例失败
            } else {
                value = BaseCase.globalVariableMap.get(replaceKey);
                // logger.info("value: " + value);
            }
            param = param.replace(matcher.group(), value);
        }
        return param;
    }
}

 

修改测试方法

        logger.info("处理前的请求参数是:"+parameters);

        // 替换入参中的非关联参数
        parameters = VariableUtil.variableSubstitution(parameters);
        // 替换入参中的关联参数
        parameters = GlobalVariableUtil.substitutionGlobalVariable(parameters);

        logger.info("处理后的请求参数是:"+parameters);

 

结果演示

测试文件中数据

 

运行testng.xml文件,解析替换后结果

 

然后就可以发送请求了,下一篇分享。

 

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