最近很久没更新了,一直在看接口方面的东西,所以现在开始,准备更新了。
从本质来说,我们通常使用的接口测试工具postman,fiddler或者一些其他的在线接口测试,等等都是由java写的,所以我们当然也可以用java来实现发包的过程
首先,我们可以看一下一个注册的接口(此接口是我部署在本地的服务器上,如果你们用的话,可以使用你们公司的接口进行test)
接口地址格式一般是这样的:http://主机地址:端口号/futuremery/mvc/api/模块/接口名
http://localhost:8080/futuremery/mvc/api/member/register
{"status":0,"code":"20103","data":null,"msg":"手机号不能为空"},可以看到如果我们不带请求参数的话,返回的值是显示手机号不能为空的,
现在我们来用fiddler先测试一下已经被注册过的手机号再次注册返回的是什么

好,可以看到显示的手机号码已被注册,那么我们现在就来模拟下fiddler发包,并且,拿到响应的数据信息
这里的话我们提一下,用的是maven来管理项目,所以我们需要先配置下pom.xml,这里面我已经给大家准备好了
<!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.2</version>
</dependency>下面先来看一下我们的代码
package auto.api.test;
import java.io.IOException;
import org.apache.http.Header;
import org.apache.http.ProtocolVersion;
import org.apache.http.StatusLine;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
public class ApiTest {
public static void main(String[] args) throws ClientProtocolException, IOException {
//1.发包,准备url
String url = "http://localhost:8080/futuremery/mvc/api/member/register?mobilephone=13666666666&pwd=123456";
//2.设置请求方法
HttpGet get = new HttpGet(url);
//准备客户端
CloseableHttpClient httpClient = HttpClients.createDefault();
//发包
CloseableHttpResponse response = httpClient.execute(get);
//验证响应头信息 HTTP/1.1 200 OK
// ProtocolVersion httpVer = response.getProtocolVersion();
//验证响应头信息 HTTP/1.1 200 OK
StatusLine stateLine = response.getStatusLine();
//获取协议版本
ProtocolVersion httpVersion = stateLine.getProtocolVersion();
System.out.println(httpVersion);
//获取状态码
int stateCode = stateLine.getStatusCode();
System.out.println( stateCode);
//遍历所有的头部信息
Header[] allheaders = response.getAllHeaders();
for (Header header : allheaders) {
System.out.println(header.getName() +":"+ header.getValue());
}
System.out.println();
//响应体,toString方法可以将响应体转换成字符串
String entityStr = EntityUtils.toString(response.getEntity());
System.out.println(entityStr);
}
}接着我们来看一下控制台的输出,和fiddler测试的结果一致,好的,这就是最简单的接口自动化测试了
HTTP/1.1
200
Server:Apache-Coyote/1.1
Content-Type:application/json;charset=UTF-8
Transfer-Encoding:chunked
Date:Thu, 09 May 2019 08:58:25 GMT
{"status":0,"code":"20110","data":null,"msg":"手机号码已被注册"}
版权声明:本文为lmarster原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。