Jmeter之处理session、cookie以及如何做关联

session和cookie的概念

关于session和cookie应该有很多文章都进行了一一说明,这里就不再重复赘述,我觉得有一个博客写的挺不错的!可以去参照他写的博客,写的非常的详细,比喻也非常的形象,看了之后秒懂!

http://blog.csdn.net/axin66ok/article/details/6175522

按照我的理解就是:

cookie保持你访问的权限信息。

session限制你访问权限信息的有效时间,一旦过期就不能在访问了,比如说我们经常遇到了,很长一段时间网页没有去操作,就会自动退出登陆。你要进行操作就必须要重新登陆!

 

关联的概念

既然说到了上面的session和cookie,其实这个session和cookie是每次都会变化的!所以在session和cookie失效后,你需要重新获取这些值,如果用到Jmeter来做这些操作的话,你不能每次手动去修改,那么就需要用关联,做好关联后,让Jmeter自动去获取这些变化的值。

所以在这里,就要跟大家说说,什么是关联。

一句话解释:在每次请求中都会变化的值,且每次都是从服务器发送过来的,那么就需要去做些特别的处理来获取这个动态值!这个就叫做关联!举个例子:

1.你往数据库插入数据时,有一个id,这个就是动态值,每次都会变得!

2.你提交bug时,bug id 是动态值,有序递增的!

3.比如上面说到的cookie和session

你如果用Jmeter来代替你手工做这些事情,就需要用到关联,让Jmeter自动跟服务器请求并传给下一步。

 

实例说明

1.用Badboy录制脚本后,导出为jmeter文件,并在Jmeter中打开

2.有时在http请求页面中“路径”会看到网页链接引用:http://www.xxx.com/xxx_app;jsessionid=${jsessionid}。或者网页链接后显示:?jsessionid   或者显示一串数字,如下图所示:

 

 

解决:
1、因为Session默认是需要Cookie支持的,但有些客户浏览器是关闭Cookie的

 

【而jsessionid是存储在Cookie中的,如果禁用Cookie的话,服务器得不到jsessionid,这样也就没法根据jsessionid获得对应的session,获得不了session就得不到session中存储的数据了。】

 

这个时候就需要在URL中指定服务器上的session标识,也就是类似“jsessionid=5F4771183629C9834F8382E23BE13C4C” 这种格式。

 

 

2、此jsessionid是跟随上一网页获取的,是随机的故,我们需要通过上一网页的响应数据,引用该jsessionid

 

步骤:

1)、查找到上一页面中响应数据中的jessionid的value

 

 

2)、在该页面下添加子节点:右键添加正则表达式,我们要获取的是jsessionid,正则如下:

正则表达式一定要正确,不能贪婪匹配,必须精确匹配!

3)这样,正则表达式就获取到了每次请求都会变化的jsessionid

 

然后再请求,就会发现jsessionid会自动变化,由Jmeter来获取!

 

参考文档:http://blog.csdn.net/ydppqh/article/details/46859997

如果你想进一步了解关联方面的知识,我觉得小坦克的博客写的挺不错的,还有实际的练习给你们!

推荐链接:http://www.cnblogs.com/TankXiao/p/4045439.html

关于cookie的保持,还有另外一个链接可以提供给大家:http://blog.csdn.net/ydppqh/article/details/46861455

如果有更多问题想要讨论,可以加入我们的群:333782754

或者直接在贴吧发问:http://tieba.baidu.com/f?kw=%E6%9F%A0%E6%AA%AC%E8%BD%AF%E4%BB%B6%E6%B5%8B%E8%AF%95&ie=utf-8&tp=0

 

 

 


 

posted @ 2016-03-25 17:22  华妹陀  阅读(32570)  评论(0编辑  收藏  举报