前面的文章介绍了使用Postman、Fiddler做接口测试,现在咱们进入代码阶段。我会使用Java做示例,讲解如何使用Java做接口自动化测试。所以,这一部分需要一些Java代码基础,需要掌握java的代码结构、类、对象、接口、List、Map、多态等,这些内容不会在我的文章里展开,愿意跟着我继续深入的童鞋,建议抽时间自己学习一下Java基础(特别是我上面提到的点)。
言归正传,之前提到做接口测试,无非就如下3步,使用Java做也一样。
构造一条符合要求的HTTP请求消息;
发给我,我给你回响应;
你读取HTTP响应,检查响应内容是否正确
仍然使用老例子,我提供加法计算的接口,你要给我传递2个数(a和b),我给你返回一个结果。
请求报文可能是:
POST http://192.168.27.184:8081/add HTTP/1.1Host: 192.168.98.178:8081Connection: keep-aliveHost: 192.168.98.178:8081Connection: keep-aliveContent-Type: application/x-www-form-urlencoded; charset=UTF-8Accept-Encoding: gzip,deflatea=1&b=2
响应报文可能是:
HTTP/1.1 200 OKServer: Apache-Coyote/1.1Cache-Control: no-cacheContent-Type: application/json;charset=UTF-8Transfer-Encoding: chunked{"sum":3}
如何使用Java发送和接收HTTP消息
AddTest.java文件如下,该代码引用了另外两个文件:HttpRequester.java和HttpRespons.java。这里不对代码进行解读,代码逻辑非常简单,非常容易懂。
import java.io.IOException;import java.util.HashMap;public class AddTest {public static void main(String[] args) {//url
String url = "http://192.168.27.172:8081/add";
//参数
HashMap params = new HashMap();
params.put("a", "1");
params.put("b", "2");
//头部
HashMap headers = new HashMap();
//响应
HttpRespons hr = new HttpRespons();
//请求
HttpRequester request = new HttpRequester();
try {//发送post请求,拿到响应
hr = request.sendPost(url, params,headers);
} catch (IOException e) {
e.printStackTrace();
}
//打印响应内容
System.out.println(hr.getContent());
}
}
运行这个Java类以后,可以看到响应如下:
小结
今天讲了最基础的使用Java发送和接收HTTP消息,至此,你已经可以用代码做最基本的接口测试了,只是对响应内容的检查需要你手工来检查,后续的文章会写如何用代码来做检查。