分享

JMeter-Http Cookie Manager--研究资料收集

 十三笑兮兮 2012-08-15

JMeter Http Cookie Manager

一、JMeter Http Cookie Manager的作用: 
1,自动管理 
2象浏览器一样的存储和发送Cookie

如果你请求一个站点,然后他的Response中包含CookieCookie Manager就会自动地保存这些Cookie并在所有后来发送到该站点的请求中使用这些Cookie的值。(在View Results TreeRequest界面可以看到被发送的Cookie Data 同时每个线程的Cookie Manager是相互独立的)接受到的Cookie的值能被存储到JMeter 线程变量中2.3.2版本后的JMeter不自动做这个事情)。要把Cookies保存到线程变量中,要在jmeter.properties文件中增加定义属性"CookieManager.save.cookies=true" 线程变量名为COOKIE_ + Cookie名。在Debug Sampler中就能看到COOKIE_xxx这样的变量(或者也可以使用正则表达式来提取Cookie的值)。属性CookieManager.name.prefix= 可以用来修改默认的COOKIE_的值。 
3手动添加CookieCookie Manager需求注意的是这些Cookie的值被会所有线程共享 

二、JMeter Http Cookie Manager的属性: 
1Clear Cookies each Iteration   

If selected, all server-defined cookies are cleared each time the main Thread Group loop is executed. In JMeter versions after 2.3, any cookies defined in the GUI are not cleared. Yes ,

2Cookie Policy 

The cookie policy that will be used to manage the cookies. "compatibility" is the default, and should work in most cases. See http://hc./httpclient-3.x/cookies.html and http://hc./httpclient-3.x/apidocs/org/apache/commons/httpclient/cookie/CookiePolicy.html [Note: "ignoreCookies" is equivalent to omitting the CookieManager.] Yes 
3User-Defined Cookies 

This gives you the opportunity to use hardcoded cookies that will be used by all threads during the test execution. 
The "domain" is the hostname of the server (without http://); the port is currently ignored. No (discouraged, unless you know what you're doing) 

Html代码  收藏代码

1.  以下Cookies标准,HttpClient3.1可以支持。  

2.  RFC2109  

3.  RFC2109W3C组织第一次推出的官方Cookies标准。理论上,所有使用版本1Cookies的服务端都应该使用此标准。HttpClient已经将此标准设定为默认。  

4.  遗憾的是,许多服务端不正确的实现了标准或者仍然使用Netscape标准。所有有时感到此标准太多于严格。  

5.  RFC2109HttpClient使用的默认Cookies协议。  

6.    

7.  RFC2965  

8.  RFC2965定义了版本2并且尝试去弥补在版本1CookieRFC2109标准的缺点。RFC2965是,并规定RFC2965最终取代RFC2109.  

9.  发送RFC2965标准Cookies的服务端,将会使用Set-Cookie2 header添加到Set-Cookie Header信心中,RFC2965 Cookies是区分端口的。  

10.      

11.    Netscape标准  

12.    Netscape是最原始的Cookies规范,同时也是RFC2109的基础。尽管如此,还是在很多重要的方面与RFC2109不同,可能需要特定服务器才可以兼容。  

13.      

14.    Browser Compatibility  

15.    这种兼容性设计要求是适应尽可能多的不同的服务器,尽管不是完全按照标准来实现的。如果你遇到了解析Cookies的问题,你就可能要用到这一个规范。  

16.    有太多的web站点是用CGI脚本去实现的,而导致只有将所有的Cookies都放入Request header才可以正常的工作。这种情况下最好设置http.protocol.single-cookie-header参数为true  

17.      

18.    Ignore Cookies  

19.    此规格忽略所有Cookie 。被用来防止HttpClient接受和发送的Cookie  

http://jmeter./usermanual/component_reference.html#HTTP_Cookie_Manager 

 

 

三、Jmeter关于session的保持

我们并没有在程序中使用cookie(使用的是session),那么http cookie管理器怎么会起作用呢?这是因为在servlet/jsp规范中对于session的状态跟踪有2种方式:

1 使用cookie,保留和传递sessionid。它不要求程序对于url有什么特殊的处理,但是要求浏览器允许cookie。在这个例子中,就是这种情形。 
2 使用url重写,每次显式的在浏览器和服务器之间传递sessionid。它要求程序对url进行编码,对浏览器没有要求。 

对于第二种情形,可以使用JMeter前置管理器中的http url重写修饰符来完成。对于TomcatSession参数是jsessionid,路径扩展使用""

使用url编码时需要注意,必须将浏览器的cookie功能关闭。因为url编码函数,如encodeURL,会判断是否需要将sessionid编码到url中。当浏览器允许cookie时,就不会进行编码。

http://www./html/57/n-93857-2.html

 

四、对于jmetersession管理- -
                                       
以下是对sesion的配置的总结(因为session对应只是一个session id):
1
、要在tomcat/conf/Catalina/localhost下的对应的xml文件加上"cookies="true",这样就可以用cookies来保存session id
2
、在jmeter加一个HTTP Cookie Manager,这样就可以提交session id了;
3
、每个Http Request中,不要选中redirect automatically,否则以后的seesion id 会不一致;
Question:对于session中的值在jsp中作为参数传回到servlet,在jmeter中如何处理。

 

五、补充JMeter资源基础:

http://www./jmeter/

http://www./a/index.php?name=PNphpBB2&file=viewforum&f=39&sid=dc396bf64d7cf935cf52a52e0970bd11

http://jakarta./jmeter/index.html

 
JMeter
允许你开发测试方案,用以测试可访问的HTTP,FTPJDBC数据库服务.JMeter可使用cookieURL重写来处理Servlet验证,因此,在测试JSP应用程序时表现良好.
 
http://www./htmldata/2005-09-01/1125532774.html
 

1 JMeter作用领域
 JMeter
可以用于测试静态或者动态资源的性能(文件、ServletsPerl脚本、java对象、数据库和查询、ftp服务器或者其他的资源)。JMeter用于模拟在服务器、网络或者其他对象上附加高负载以测试他们提供服务的受压能力,或者分析他们提供的服务在不同负载条件下的总性能情况。你可以用JMeter提供的图形化界面分析性能指标或者在高负载情况下测试服务器/脚本/对象的行为。
 
http://www./a/49136/100000000
 
 
使 JMeter 启动时显示中文页面(JMeter-2.0.3) 
<JMeter_HOME>/bin 目录下的 jmeter.properties 中设置 language=cn 
 
说明: JMeter 可以在 UI 上使用菜单切换语言文字, 但是我一直没法猜到中文是"cn", 猜了很多"zh_CN", "zh-CN", "zh" 都不得要领, 只有去看源代码才发现原来是"cn"
 
http:///w/main/Wiki?%E6%9C%89%E5%85%B3%E4%BA%8E+JMeter+%E7%9A%84%E4%B8%80%E4%BA%9B%E5%B0%8F%E6%8A%80%E5%B7%A7&highlight=JMeter

http://blog.csdn.net/ruluo/archive/2005/10/19/509549.aspx

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多