SoapUI管理Cookie
来源:互联网 发布:制作透明头像软件 编辑:程序博客网 时间:2024/06/05 04:32
SoapUI管理Cookie,有好种方式
1,用脚本发送http+cookie
2,HTTP步骤加hearder
3,soapUI插件
4,改造soapUI源码,支持保持cookie
一,跟踪
找原因真的好麻烦,打不了断点嘛.
1, jvisualvm 安装btrace插件,
2,监控http执行zhan,
@OnMethod ( clazz = "org.apache.http.impl.client.CloseableHttpClient", method = "execute" ) public static void Trace_exit ( ) { println( "jstack() is :" ); println( "[" ); jstack(); println( "]" ); }
org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java)org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:57)com.eviware.soapui.impl.wsdl.support.http.HttpClientSupport$Helper.execute(HttpClientSupport.java:233)com.eviware.soapui.impl.wsdl.support.http.HttpClientSupport.execute(HttpClientSupport.java:323)com.eviware.soapui.impl.wsdl.submit.transports.http.HttpClientRequestTransport.submitRequest(HttpClientRequestTransport.java:295)com.eviware.soapui.impl.wsdl.submit.transports.http.HttpClientRequestTransport.sendRequest(HttpClientRequestTransport.java:225)com.eviware.soapui.impl.wsdl.WsdlSubmit.run(WsdlSubmit.java:119)java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
说起来简单,这可搞了几个小时
看来关键的还是以下这个类:
com.eviware.soapui.impl.wsdl.support.http.HttpClientSupport
反编译以后找到一段神奇的代码:
public static BasicHttpContext createEmptyContext() { BasicHttpContext httpContext = new BasicHttpContext(); // BasicCookieStore cookieStore = new BasicCookieStore(); //httpContext.setAttribute("http.cookie-store", cookieStore); return httpContext;}
果然这个方法被它调用了:
com.eviware.soapui.impl.wsdl.submit.transports.http.BaseHttpRequestTransport.sendRequest()
SoapUI原来是设计是对REST和SOAP优化的,不需要cookie,而且理论上每个http请求是独立的,所以清理cookie
现在用反编译出的class替换它就以了.
以下groovy脚本,可以用来验证cookie还存在,也可以用来清理cookie
import com.eviware.soapui.impl.wsdl.support.http.*;import org.apache.http.client.methods.HttpGet;import org.apache.http.client.CookieStore; // ht.execute(); HttpGet get=new HttpGet("http://www.baidu.com"); HttpGet get2=new HttpGet("http://www.baidu.com"); // CookieStore ck; HttpClientSupport ht=new HttpClientSupport(); HttpClientSupport.getHttpClient().execute(get); CookieStore ck= HttpClientSupport.getHttpClient().getCookieStore(); // HttpClientSupport.getHttpClient().execute(get2); CookieStore ck2= HttpClientSupport.getHttpClient().getCookieStore();
清理脚本(没验证):
HttpClientSupport.getHttpClient().setCookieStore(<span style="color: rgb(128, 128, 128); font-family: Menlo; font-size: 12pt; background-color: rgb(43, 43, 43);">new BasicCookieStore());</span>
提供下下载
http://download.csdn.net/detail/gogcc/9149011(需要手工操作)
0 0
- SoapUI管理Cookie
- Soapui
- SoapUI
- soapUi
- SoapUI
- SoaPUI
- soapui
- SOAPUI
- cookie管理
- Cookie管理
- codeigniter 管理cookie创建cookie修改cookie删除cookie
- 插件69:管理cookie
- 会话 (cookie)管理
- 会话管理 Cookie
- Cookie会话管理
- Cookie会话管理
- 会话管理COOKIE
- Phalcon Cookie管理
- DirectX11 HLSL常量缓存
- 【傻傻分不清楚】C#const与readonly
- [原生js] 简单一招实现json数据可视化
- OFBIZ 网站或店铺视觉主题(visual Theme)设计
- super与this用法
- SoapUI管理Cookie
- xcode开发工具 官方各种版本下载
- SEO基础优化必学的8大html标签
- 《php和mysql web开发》笔记——第5章 代码重用与函数编写
- POJ 2481:Cows 树状数组
- 通用模型之-party model 学习笔记
- mac homebrew 安装
- eclipse在Ubuntu 12.04下的安装
- 启动Eclipse 弹出Failed to load the JNI shared library jvm.dll解决方案