HttpClient接口测试之会话保持
2016-12-07 15:19
253 查看
HttpClient接口测试之会话保持
HttpClient4.X自带会话保持功能,使用同一个HttpClient未关闭的连接即可保持登陆会话,如果多个HttpClient想要使用一个登陆会话,则需要保存会话信息,其中一种方法是使用HttpClientContext。
importjava.util.ArrayList; importjava.util.List; importorg.apache.http.HttpEntity; importorg.apache.http.NameValuePair; importorg.apache.http.client.entity.UrlEncodedFormEntity; importorg.apache.http.client.methods.CloseableHttpResponse; importorg.apache.http.client.methods.HttpGet; importorg.apache.http.client.methods.HttpPost; importorg.apache.http.client.protocol.HttpClientContext; importorg.apache.http.impl.client.CloseableHttpClient; importorg.apache.http.impl.client.HttpClients; importorg.apache.http.message.BasicNameValuePair; importorg.apache.http.protocol.BasicHttpContext; importorg.apache.http.protocol.HttpContext; importorg.apache.http.util.EntityUtils; importorg.junit.Test; importcom.test.tools.Regular; publicclassHttpClientTest{ StringloginUrl="http://**.***.com/user/login.do"; privatestaticHttpContextlocalContext=newBasicHttpContext(); privatestaticHttpClientContextcontext=HttpClientContext.adapt(localContext); @Test publicvoidTest()throwsException{ CloseableHttpClienthttpClient=HttpClients.createDefault(); try{ //模拟表单 List<NameValuePair>params=newArrayList<NameValuePair>(); params.add(newBasicNameValuePair("username","admin")); params.add(newBasicNameValuePair("password","admin")); UrlEncodedFormEntityentity=newUrlEncodedFormEntity(params,"UTF-8"); HttpPosthttpPost=newHttpPost(loginUrl); httpPost.setEntity(entity); //将HttpClientContext传入execute()中 CloseableHttpResponseresponse=httpClient.execute(httpPost,context); try{ HttpEntityresponseEntity=response.getEntity(); System.out.println(EntityUtils.toString(responseEntity)); }finally{ response.close(); } }finally{ httpClient.close(); } CloseableHttpClienthttpClient2=HttpClients.createDefault(); try{ //进入首页 HttpGethttpGet=newHttpGet("http://**.***.com/front/investmentList.html"); //设置相同的HttpClientContext CloseableHttpResponseresponse=httpClient2.execute(httpGet,context); try{ HttpEntityentity=response.getEntity(); System.out.println("**************************"); StringaString=EntityUtils.toString(entity); System.out.println(aString); //正则提取响应信息中的用户名 StringbsString="loginName=\"(.+?)\""; Regularregular=newRegular(); System.out.println(regular.getRegular(aString,bsString)); }finally{ response.close(); } }finally{ httpClient2.close(); } } } |
通过这种方式可以进行接口测试,也可以加入断言事务,添加多线程并发进行接口性能测试。
相关文章推荐
- httpclient 如何保持会话
- 分享个测试接口好工具 Dev Http Client
- 接口测试之HttpClient
- 【自动化测试】HttpClient 模拟用户登录与请求接口完成自动化测试
- 火狐两款接口测试工具RESTClient和HttpRequester发送post请求
- httpclient 保持会话的交互
- Java:HttpClient篇,HttpClient4.2在Java中的几则应用:Get、Post参数、Session(会话)保持、Proxy(代理服务器)设置,多线程设置...
- Excel+Httpclient,数据驱动接口自动化测试
- Httpclient的会话保持引起的线程安全问题
- HttpClient4.5.2 使用cookie保持会话——获取cookie之后如何传递它
- HttpClient4.x 使用cookie保持会话
- HttpClient4.5.2 使用cookie保持会话——获取cookie之后如何传递它(2)
- HttpClient4.x 使用cookie保持会话
- HttpClient +Testng(1)进行接口测试入门
- Java:HttpClient篇,HttpClient4.2在Java中的几则应用:Get、Post参数、Session(会话)保持、Proxy(代理服务器)设置,多线程设置...
- HttpClient 模拟登陆,保持会话并进行后续操作
- HttpClient4.x 使用cookie保持会话
- HttpClient4.5.2 使用cookie保持会话——获取cookie(1)
- HttpClient测试接口的封装(get和post)
- Chrome浏览器开发者扩展工具:Postman - REST Client 在线测试rest api 或者普通http web m模拟接口的最佳工具。