Java接口自动化测试实践(上)
作者:网络转载 发布时间:[ 2015/12/29 15:03:42 ] 推荐标签:软件测试 自动化测试
众所周知,在现在这个移动互联网越来越发达的时代,瘦客户端和胖服务端的要求下,服务端的测试也变得越来越重要。而服务端的实现通常是通过HTTP请求的API和服务来实现的,而服务由于实现起来比较复杂,所以大多公司使用的还是HTTP请求的API接口来处理底层数据。在前面的博文中我们讲过了如何使用PHPUNIT框架和python的urllib2和reqests模块,来进行接口自动化测试。
可是很多同学比较善长java,如果想用这个来做接口自动化测试的化,还是有点儿麻烦的。因为没有具体的函数,需要利用HttpClient来模拟HTTP请求,并对接口的返回值进行处理才行。下面我们讲解,如何用java来封装对HTTP请求的API来做自动化测试:
一、GET方式的请求
Get类请求分为有参数和无参数两种情况,如果没有参数,则直接通过接口调用地址进行请求,接收返回结果;如果有参数,则把参数添加进来,对请求的结果进行筛选。
public static String GetRequests(String url,String params)
{
StringBuffer response = new StringBuffer();
HttpClient client = new HttpClient();
HttpMethod method = new GetMethod(url);
try {
if (StringUtils.isNotBlank(params))
//对get请求参数做了http请求默认编码,好像没有任何问题,汉字编码后,成为%式样的字符串
method.setQueryString(URIUtil.encodeQuery(params));
client.executeMethod(method);
BufferedReader reader = new BufferedReader(new InputStreamReader(method.getResponseBodyAsStream(),"utf-8"));
String line;
while ((line = reader.readLine()) != null) {
response.append(line);
}
reader.close();
} catch (URIException e) {
System.out.println("执行HTTP Get请求时,编码查询字符串“" + params + "”发生异常!");
} catch (IOException e) {
System.out.println("执行HTTP Get请求" + url + "时,发生异常!");
} finally {
method.releaseConnection();
}
return response.toString();
}
代码分析:
(1)新建HttpClient和GetMethod,通过GetMethod来创建URL请求相关的URL和参数,然后通过HttpClient发起HTTP请求,接收返回结果。
(2)如果接口请求的参数不为空,则通过setQueryString()将参数和URL拼接到一起。
(3)通过HttpClient的getResponseBodyAsStream()来获取请求结果,并将结果添加到StringBuffer里面,后以字符串的形式来返回。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11