使用HttpClient测试SpringMVC的接口

转载:http://blog.csdn.net/tmaskboy/article/details/52355591

最近在写SSM创建的Web项目,写到一个对外接口时需要做测试,接受json格式的数据。在线测试需要放公网地址,无奈localhost无法访问,测试工具需要安装,不想折腾,想到写爬虫的时候用到的HttpClient可以发Post请求,于是进行了尝试。

1.编写请求代码 
由于接口接受json类型的数据,因此构造了对应的实体类,然后使用fastjson转为json,加到请求头中。

    String url = "http://localhost:8080/api/hcp/get";
        Map<String, Object> map = new HashMap<String, Object>();  //构造参数
        map.put("token", "Tq0kzItQdol1pO4T");
        String result = APITest.API(url, JSONObject.toJSONString(map));  //使用FastJson转为json格式
        System.out.println(result);

2.APITest.Java帮助类

public class APITest {
    /**
     *
     * @param 要请求的接口地址
     * @param post参数
     * @return 接口返回的数据
     * @throws IOException
     */
    public static String API(String url,String parameters) throws IOException{
        System.out.println("参数:"+parameters);
        HttpClient httpclient = new DefaultHttpClient();
        //新建Http  post请求
        HttpPost httppost = new HttpPost(url);    //登录链接
        httppost.setEntity(new StringEntity(parameters, Charset.forName("UTF-8")));
        httppost.addHeader("Content-type","application/json; charset=utf-8");
        httppost.setHeader("Accept", "application/json");
        //处理请求,得到响应
        HttpResponse response = httpclient.execute(httppost);   

        //打印返回的结果
        HttpEntity entity = response.getEntity();
       // Header[] map =  response.getAllHeaders();

        StringBuilder result = new StringBuilder();
        if (entity != null) {
            InputStream instream = entity.getContent();
            BufferedReader br = new BufferedReader(new InputStreamReader(instream));
            String temp = "";
            while ((temp = br.readLine()) != null) {
                String str = new String(temp.getBytes(), "utf-8");
                result.append(str).append("\r\n");
            }
        }
        return result.toString();
    }
}

然后就可以运行了。

参数:{"token":"Tq0kzItQdol1pO4T"}
log4j:WARN No appenders could be found for logger (org.apache.http.impl.conn.BasicClientConnectionManager).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
{"reason":"Token已过期","error_code":1,"result":null}
时间: 2024-10-16 08:53:05

使用HttpClient测试SpringMVC的接口的相关文章

HttpClient发送get,post接口请求

HttpClient发送get post接口请求 /** * post * @param url POST地址 * @param data POST数据NameValuePair[] * @return 响应的参数 */ public static String post(String url,NameValuePair[] data){---------------get里面没有data只有url String response = ""; HttpClient httpClient

用Mockito测试SpringMVC+Hibernate

用Mockito测试SpringMVC+Hibernate 译自:Spring 4 MVC+Hibernate 4+MySQL+Maven integration + Testing example using annotations 2017-01-19 目录: 1 目录结构 2 pom.xml3 Testing Controller Layer  3.1 com.websystique.springmvc.controller.AppControllerTest4 Testing Servi

基于Java+HttpClient+TestNG的接口自动化测试框架(五)------ 测试用函数接口类及实现类

在前一篇中,我们着重阐述了参数的处理方法. 但是,这些参数基本都是直接赋值的.而实际的接口测试中,我们会根据需要做成很多的测试数据,这些测试数据会根据不同的情况来使用.例如,我可能需要一个能够随机生成一个中文的字符串,或者需要一个能够迅速求出一个文件或者字符串的MD5的值.在这种情况下,就需要我们动手去写一些函数来进行调用. 不过,如果是在Excel(或者其他文本编辑器)中写测试用例,如何才能让程序能够知道我是在调用一个函数,并且能够把这个函数的返回值赋给变量,正确的传入我想要的地方呢?下面,我

POSTMAN测试SpringMVC RESTFul风格的服务端接口始终得不到值

后台接口中接收参数使用DataObject(包含一个String类型的属性data)     ServletRequestDataBinder binder = new ServletRequestDataBinder(new DataObject());     binder.bind(request); 然后再POSTMAN中使用如图的方式传参: 可以发现得到的返回值是null,而且根据后台调试,确实没有得到传入的参数.切回x-www-form-urlencoded模式下然后将此对象用如下方

jmeter get post 压力测试及ab 的压力测试及单个接口xhprof对比

Jmeter  下载和运行 1.官方网站:http://jmeter.apache.org/ 解压后, 运行  "bin/jmeter.bat" Jmeter 是支持中文的, 启动Jmeter 后, 点击 Options -> Choose Language  来选择语言 2.实际测试的例子 目标: 测试搜索接口的压力 方法一:请求类型:get  http://api.zintao.com/Search/Search/search?keyword=商品&did=12312

使用MockMvc测试SpringMVC Controller

MockMvc 是springTest提供的对SpringMvc提供的测试工具.这样可以让单元测试不仅仅局限于对Dao和Service 层的测试.同时,也可以测试Controller层.丰富的单元测试的功能.测试时不用频繁重启servlet容器,简化了测试操作. MockMvc需要ServletContext来模拟用户的请求和相应. 首选,需要在测试类头部添加一下Annotation @WebAppConfiguration @RunWith(SpringJUnit4ClassRunner.cl

使用jMeter测试Solr服务接口

之前一直用ab做简单的服务接口测试,ab功能强悍,使用简单,但是没有生成专题图和表格等功能,因此,我们决定使用jmeter来作为我们测试工具.接下来,我们将详细介绍jmeter使用的步骤,主要包括:jmeter部署.模拟用户并发访问.http测试请求.监控测试结果这几部分. 1.Jmeter部署安装. 1.1 Jmeter下载 地址:http://mirror.bit.edu.cn/apache//jmeter/binaries/apache-jmeter-2.13.zip 1.2 Jmeter

Postman 测试swagger类接口技巧

测试情景: 公司的项目接口越来越多,由于开发周期短,时间紧,缺乏接口文档,直接使用swagger记录所有接口信息.那么: 1. 我们如何更快的测试动辄300+数量的接口,如何分组管理和维护这些接口? 2. 接口中需要随机函数,传参,为了安全需要token, cookie,Authorization等认证,如何解决? 解决方案: 1.下载Postman 工具,自行百度. 1.在登陆接口访问后设置Postman的环境变量(Environment),例如设置环境变量名:token,值为登陆接口访问成功

jmeter测试SOAP协议接口

jmeter3.2版本之后就没有SOAP/XML-RPC Request插件了,所以没办法直接进行webservice接口的测试. 原理上: Web service一般就是用SOAP协议通过HTTP来调用它,其实他就是一个WSDL文档,客户都可以阅读WSDL文档来用这个Web service. SOAP简单的理解,就是这样的一个开放协议SOAP=RPC+HTTP+XML:采用HTTP作为底层通讯协议:RPC作为一致性的调用途径,XML作为数据传送的格式,允许服务提供者和服务客户经过防火墙在INT