HttpClient接口测试之会话保持
HttpClient接口测试之会话保持
HttpClient4.X自带会话保持功能,使用同一个HttpClient未关闭的连接即可保持登陆会话,如果多个HttpClient想要使用一个登陆会话,则需要保存会话信息,其中一种方法是使用HttpClientContext。
import java.util.ArrayList; import java.util.List; import org.apache.http.HttpEntity; import org.apache.http.NameValuePair; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; import org.apache.http.client.protocol.HttpClientContext; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.message.BasicNameValuePair; import org.apache.http.protocol.BasicHttpContext; import org.apache.http.protocol.HttpContext; import org.apache.http.util.EntityUtils; import org.junit.Test; import com.test.tools.Regular; public class HttpClientTest {
String loginUrl = "http://**.***.com/user/login.do"; private static HttpContext localContext = new BasicHttpContext(); private static HttpClientContext context = HttpClientContext.adapt(localContext); @Test public void Test() throws Exception {
CloseableHttpClient httpClient = HttpClients.createDefault(); try {
// 模拟表单 List<NameValuePair> params = new ArrayList<NameValuePair>(); params.add(new BasicNameValuePair("username", "admin"));
params.add(new BasicNameValuePair("password", "admin"));
UrlEncodedFormEntity entity = new UrlEncodedFormEntity(params, "UTF-8"); HttpPost httpPost = new HttpPost(loginUrl); httpPost.setEntity(entity); // 将HttpClientContext传入execute()中 CloseableHttpResponse response = httpClient.execute(httpPost, context); try {
HttpEntity responseEntity = response.getEntity(); System.out.println(EntityUtils.toString(responseEntity)); } finally {
response.close(); } } finally {
httpClient.close(); } CloseableHttpClient httpClient2 = HttpClients.createDefault(); try {
//进入首页 HttpGet httpGet = new HttpGet("http://**.***.com/front/investmentList.html");
// 设置相同的HttpClientContext CloseableHttpResponse response = httpClient2.execute(httpGet, context); try {
HttpEntity entity = response.getEntity(); System.out.println("**************************");
String aString =EntityUtils.toString(entity); System.out.println(aString); //正则提取响应信息中的用户名 String bsString = "loginName = \"(.+?)\""; Regular regular = new Regular(); System.out.println(regular.getRegular(aString, bsString)); } finally {
response.close(); } } finally {
httpClient2.close(); } } } |
通过这种方式可以进行接口测试,也可以加入断言事务,添加多线程并发进行接口性能测试。
HttpClient接口测试之会话保持的更多相关文章
- SoapUI接口测试之实战运用操作(五)
SoapUI接口测试之实战运用操作(五)
- WebAPI接口测试之matthewcv.WebApiTestClient
WebAPI接口测试之matthewcv.WebApiTestClient matthewcv.WebApiTestClient 1.安装matthewcv.WebApiTestClient包 打开v ...
- 老李分享:接口测试之jmeter
老李分享:接口测试之jmeter poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.移动端自动化测试很多人把他仅仅理解成appu ...
- SoapUI SoapUI接口测试之编码设置
SoapUI接口测试之编码设置 by:授客 QQ:1033553122 问题描述: 实际测试过程中发现,SoapUI提交后的数据,在数据库中查看数据值存储,发现是乱码,如下图: 查找原因,show c ...
- SoapUI 接口测试之post提交本地数据文件
SoapUI接口测试之post提交本地数据文件 by:授客 QQ:1033553122 本文主要是针对用SoapUI POST提交本地数据文件的方法做个简单介绍 举例: 文件同步接口 接口地址:htt ...
- API Test Postman接口测试之高级篇2
API Test Postman接口测试之高级篇2 一.继承父类的设置: 二.导出及导入: 三.分享文档: 四.发布接口文档: 五.常用脚本: 右边框选的是一些常用的脚本,postman提供的,可以 ...
- API Test Postman接口测试之高级篇1
API Test Postman接口测试之高级篇1 一.postman中的请求参数简介: 1.请求参数简介: 点击params下面会出现key,value等信息,这里填写的会自动追加在url地址后面 ...
- python接口测试之mock(二)
上一篇对mock-server已经做了初步的介绍,今天这里继续接着之前的介绍进行,我们先看之前的mock-server部分,之前编写了一个登录的mock,具体json文件见如下的内容: 小王子1110 ...
- 接口测试之HttpClient
HttpClient使用详解 Http协议的重要性相信不用我多说了,HttpClient相比传统JDK自带的URLConnection,增加了易用性和灵活性(具体区别,日后我们再讨论),它不仅是客 ...
随机推荐
- Maven国内下载站点
鉴于一些原因,从maven中央仓库download依赖包时,被各种折磨,下面就简单看下maven setting.xml的一些简单配置 先贴几个国内可用的maven repository连接: htt ...
- sql查询单个银行账号重复
非一单位多银行账号. 今天成都公司熊娇付款时候单位名称在弹出的网银补录变成1,从开户银行看都是正常的,只是在分子公司集团这边点击修改开户银行保存就提示错误“银行账号不能重复” select * fro ...
- Unity UI on the HoloLens
Following the steps under "Required configuration" will allow Unity UI to continue to work ...
- centOS安装网卡驱动
作为一个小白来说,安装驱动之类的真是无心下手的感觉,在学习了http://www.centoscn.com/image-text/config/2013/0816/1269.html这篇帖子的步骤之后 ...
- 【原】mysql慢日志分析
pt-query-digest slowquery.log --since "2016-01-23 10:50:00"
- 开源的运维机器人hubot原理
- php使用file函数、fseek函数读取大文件效率分析
php读取大文件可以使用file函数和fseek函数,但是二者之间效率可能存在差异,本文章向大家介绍php file函数与fseek函数实现大文件读取效率对比分析,需要的朋友可以参考一下. 1. 直接 ...
- beagleBone black 中QT的移植
收到板子后默认是Debian系统.gcc -v 后发现其编译链是:arm-linux-gnueabihf http://pan.baidu.com/s/1pJrAvsn 有相关工具下载,里面有这个 解 ...
- SQL语句的增删查改
一.增:有2种方法 1.使用insert插入单行数据: 语法:insert [into] <表名> [列名] values <列值> 例:insert into Strdent ...
- vi 使用入门
几种模式: Normal Mode 命令模式 Insert Mode 编辑模式 Command-line Mode Visual Mode Select M ...