本人在做接口测试的过程中,遇到了一个问题,有好几个需要测试的环境,配置了不同的域名但是每个域名下需要测试的接口不同,但是接口的用例都是公用的,经过仔细学习了一下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就是我想要测试的域名和域名类型,剩下的就是配置的接口。