行业知识
替换模板变量生成测试用例
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条数据
()["北京的业务量是多少?","上海的业务量是多少?","昨天北京的业务量是多少","今天北京的业务量是多少","今年北京的业务量是多少","昨天上海的业务量是多少","今天上海的业务量是多少","今年上海的业务量是多少","昨天北京最大的业务量是多少","今天北京最大的业务量是多少","今年北京最大的业务量是多少","昨天北京前三的业务量是多少","今天北京前三的业务量是多少","今年北京前三的业务量是多少","昨天上海最大的业务量是多少","今天上海最大的业务量是多少","今年上海最大的业务量是多少","昨天上海前三的业务量是多少","今天上海前三的业务量是多少","今年上海前三的业务量是多少"]