Java接口自动化测试实践(上)

发表于:2015-12-29 11:12

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:潜龙0318    来源:51Testing软件测试网采编

  众所周知,在现在这个移动互联网越来越发达的时代,瘦客户端和胖服务端的要求下,服务端的测试也变得越来越重要。而服务端的实现通常是通过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里面,最后以字符串的形式来返回。
21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号