小工具知识网

当前位置: 首页 > 行业知识 > 替换模板变量生成测试用例

行业知识

替换模板变量生成测试用例

2026-11-11 22:47:26 来源:互联网转载

需���:

()

针对指标的查值有固定的文法例如 ${org_name}的业务量是多少,需要替换变量来生成测试用例

package net.yto.com.testplatform;import com.alibaba.fastjson.JSON;import java.util.ArrayList;import java.util.List;public class TestMain {    public static void main(String[] args) {        TestMain testMain = new TestMain();        List templates = new ArrayList();        templates.add("${org_name}的业务量是多少?");//2        templates.add("${time}${org_name}的业务量是多少");//2*3=6        templates.add("${time}${org_name}${max}的业务量是多少");//2*3*2=12        List orgnameList = new ArrayList();        orgnameList.add("北京");        orgnameList.add("上海");        List timeList = new ArrayList();        timeList.add("昨天");        timeList.add("今天");        timeList.add("今年");        List maxList = new ArrayList();        maxList.add("最大");        maxList.add("前三");        List resultList = new ArrayList();        for (String template : templates) {            testMain.makeData(template, resultList, orgnameList, timeList, maxList);        }        System.out.println(resultList.size());        System.out.println(JSON.toJSONString(resultList, true));    }    /** 根据模板和变量值列表     * @param template    模板     * @param testList    生成的用例集合     * @param orgnameList 组织列表     * @param timeList    时间列表     * @param maxList     极值列表     */    public void makeData(String template, List testList, List orgnameList, List timeList, List maxList) {        //递归终止条件:        if (!template.contains("$")) {            return;        }        //替换org_name        if (template.contains("${org_name}")) {            List casesList = makeCases(template, "${org_name}", orgnameList);            for (String case1 : casesList) {                if (case1.contains("$")) {                    makeData(case1.replace("${org_name}", ""), testList, orgnameList, timeList, maxList);                } else {                    testList.add(case1);                }            }            //替换max        } else if (template.contains("${max}")) {            List casesList = makeCases(template, "${max}", maxList);            for (String case1 : casesList) {                if (case1.contains("$")) {                    makeData(case1.replace("${max}", ""), testList, orgnameList, timeList, maxList);                } else {                    testList.add(case1);                }            }            //替换time        } else if (template.contains("${time}")) {            List casesList = makeCases(template, "${time}", timeList);            for (String case1 : casesList) {                if (case1.contains("$")) {                    makeData(case1.replace("${time}", ""), testList, orgnameList, timeList, maxList);                } else {                    testList.add(case1);                }            }        } else {            return;        }    }    /**     * 具体生成用例方法,实际可以根据指标对应的组织来生成     *     * @param template      模板     * @param param         变量     * @param paramDataList 变量的值列表     * @return     */    public List makeCases(String template, String param, List paramDataList) {        List casesList = new ArrayList();        String temp = template;        for (String paramData : paramDataList) {            casesList.add(temp.replace(param, paramData));        }        return casesList;    }}
 生成结果

20条数据

()
["北京的业务量是多少?","上海的业务量是多少?","昨天北京的业务量是多少","今天北京的业务量是多少","今年北京的业务量是多少","昨天上海的业务量是多少","今天上海的业务量是多少","今年上海的业务量是多少","昨天北京最大的业务量是多少","今天北京最大的业务量是多少","今年北京最大的业务量是多少","昨天北京前三的业务量是多少","今天北京前三的业务量是多少","今年北京前三的业务量是多少","昨天上海最大的业务量是多少","今天上海最大的业务量是多少","今年上海最大的业务量是多少","昨天上海前三的业务量是多少","今天上海前三的业务量是多少","今年上海前三的业务量是多少"]

上一篇:揭秘安全漏洞真相,深度剖析漏洞真相大解密

下一篇:can‘t find model ‘zh