自动化接口测试 - 极简方式使用(简单版)
2019-06-06 本文已影响51人
circlq
本人推荐使用idea编译器,不建议使用eclipse
以下2种依赖,自行选择一种
1、使用gradle添加依赖
【注:】需要在build.gradle添加jcenter()仓库
compile 'com.circlq:http-api:1.1.5'
2、使用pom文件添加依赖
<dependency>
<groupId>com.circlq</groupId>
<artifactId>http-api</artifactId>
<version>1.1.5</version>
</dependency>
使用pom依赖会有java版本问题,这边截图两张自己看下


下面开始如何实现
只需要简单的2步骤就能实现请求。
定义接口
@DealClass(HttpDealMethodImpl.class)
//@DealAll
@NetServiceClass("")
public interface NetService {
/**
* get的简单请求
*/
@GET("https://qybeta.321go.com/api/v1/home/index")
String get(@Query("cid") String cid, @Query("token") String token);
/**
* get请求(URL中带有参数)
*/
@GET("https://qybeta.321go.com/api/{version}/home/index")
String get(@Path("version") String version, @Query("cid") String cid, @Query("token") String token);
/**
* 表单提交
*/
@POST("https://marathonbeta.321go.com/api/v5/assis/user")
String postForm(@Field("token") String token, @Field("auid") String auid, @Field("step") String step, @Field("formId") String formId);
/**
* json提交
*/
@POST("http://public.api.fashionworldcn.com/api/my/login")
String postJson(@Param("mobile") String mobile, @Param("password") String password);
/**
* json 整串提交
*/
@POST("http://public.api.fashionworldcn.com/api/my/login")
String postJson(@Body String json);
/**
* json 实体类提交
*/
@POST("http://public.api.fashionworldcn.com/api/my/login")
String postJson(@Body LoginBuild json);
/**
* 请求跟返回经过统一特殊处理。
*/
@POST("http://a.szy.com:4480/SignManageServer/sign/appHandle")
@Deal
String onDeal(@Field("reqcode") String reqcode, @Param("pageNo") String pageNo, @Param("pageSize") String pageSize, @Param("schoolId") String schoolId);
}
执行请求
/**
* 表单提交
*/
public static void postForm() {
String token = "QpglbXabpgvKa5d1cqjq5Qb6KKldbvz6dmr0AVjXUlljQsVC5gkKA8IkEChX1ssY";
String auid = "2c93e148674de85b01674ebc7e760018";
String step = "2";
String formId = "4f0e43a7c6095adfc0e5b216d9914f9e";
String result = HttpRequest.getNetService().postForm(token, auid, step, formId);
System.out.println("postForm : " + result);
//返回类型支持java实体类,只需要在方法返回类型String换成java实体类,它会自动给你转化成实体类。
}
强大的Json解析器
我们可以看到返回类型支持java实体类跟String类型,但是这边建议使用String类型
然后解析的时候使用JsonUtils类,这是一个强大解析器
直接
int forum_id = JsonUtils.parse(json,Integer.class,"notice","forum_id");
我们可以看到直接解析出第二层forum_id里面的数据,直接转换成int类型,
如果需要转换实体类,直接在第二个参数改成 类名.class ,然后指定那一层就解析那一层数据转化成实体类。
这样是不是很方便。