本人在做接口测试的过程中,遇到了一个问题,有好几个需要测试的环境,配置了不同的域名但是每个域名下需要测试的接口不同,但是接口的用例都是公用的,经过仔细学习了一下java代码的执行顺序之后,终于想到了一个办法,相当于写一个配置类,专门配置不同的域名和域名下的接口。
首先分享一下工程目录:
前三个包都是不同环境下的测试类内容非常简单,base是配置文件,case是执行所有方法,test调试接口的类。
分享一个测试代码里面的public属性设置:
-
public static List<Map<String, String>> apiGroups = new ArrayList<Map<String, String>>();// 用于管理接口
-
public static String HOST;
-
public static final String POST = "post";
-
public static final String GET = "get";
-
public static boolean hostType;
下面是一个base类的代码:(有删减)
-
package juziyule;
-
import java.util.HashMap;
-
import java.util.Map;
-
import source.ApiLibrary;
-
import source.SourceCode;
-
public class Base_juzi extends ApiLibrary {
-
static {
-
ApiLibrary.HOST = "http://testapi.app.happyjuzi.com";
-
ApiLibrary.hostType = false;
-
SourceCode.getInstance().output(HOST);
-
Map<String, String> group001 = new HashMap<>();
-
apiGroups.add(group001);
-
group001.put("/common/menu", GET);// 首页导航接口
-
group001.put("/common/setting", GET);// 设置,AB Test相关
-
group001.put("/topic/get", GET);// 专题列表
-
group001.put("/user/info", GET);// 获取用户信息
-
group001.put("/video/home", GET);// 全部视频列表
-
group001.put("/video/category", GET);// 视频栏目下的列表
-
SourceCode.getInstance().output("一共测试了" + group001.size() + "个接口!");
-
}
-
}
这样就完美解决了每次都要修改host和hosttype的值的办法了。因为如果我需要测试online环境,java会执行case_online里面的代码,然后会依赖base_online,只会加载base_online这一个配置类的代码,host和hosttype就是我想要测试的域名和域名类型,剩下的就是配置的接口。
原文地址:https://www.cnblogs.com/alidj/p/10262487.html