7. 用Java做接口测试1-发送HTTP请求和接收HTTP响应

Posted 鹿爷聊测试

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了7. 用Java做接口测试1-发送HTTP请求和接收HTTP响应相关的知识,希望对你有一定的参考价值。

前面的文章介绍了使用Postman、Fiddler做接口测试,现在咱们进入代码阶段。我会使用Java做示例,讲解如何使用Java做接口自动化测试。所以,这一部分需要一些Java代码基础,需要掌握java的代码结构、类、对象、接口、List、Map、多态等,这些内容不会在我的文章里展开,愿意跟着我继续深入的童鞋,建议抽时间自己学习一下Java基础(特别是我上面提到的点)。

言归正传,之前提到做接口测试,无非就如下3步,使用Java做也一样。

  1. 构造一条符合要求的HTTP请求消息;

  2. 发给我,我给你回响应;

  3. 你读取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<String, String> params = new HashMap<String, String>();
		params.put("a", "1");
		params.put("b", "2");		
		//头部
		HashMap<String, String> headers = new HashMap<String, String>();		
		//响应
		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消息,至此,你已经可以用代码做最基本的接口测试了,只是对响应内容的检查需要你手工来检查,后续的文章会写如何用代码来做检查。


以上是关于7. 用Java做接口测试1-发送HTTP请求和接收HTTP响应的主要内容,如果未能解决你的问题,请参考以下文章

最近在做接口测试,

jmeter如何测试加密过的登录接口

接口测试学习

如何做接口测试?

为啥一般HTTP REST的接口都有API KEY跟API SECRET KEY两个key

做http可以访问的接口测试一般用啥工具或使用啥语言呢