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来获取!


JMeter中,如果您需要测试多个关联接口,可以使用以下步骤进行配置: 1. 创建个Thread Group,设置线程数和循环次数。 2. 在Thread Group下创建个HTTP Request,并设置好请求的URL、方法、参数等信息。 3. 在HTTP Request的“HTTP Header Manager”选项卡中添加Cookie Manager,用于管理Session ID等信息。 4. 在HTTP Request的“HTTP Header Manager”选项卡中添加Regular Expression Extractor,用于提取需要关联的参数,并将提取结果保存到变量中。 5. 在JMeter的左侧菜单栏中,选择“Add > Logic Controller > While Controller”,将HTTP Request置于While Controller下。 6. 在While Controller中设置循环条件,比如当变量为空时退出循环。 7. 在While Controller中添加个新的HTTP Request,用于发送关联请求。 8. 在新的HTTP Request的“HTTP Header Manager”选项卡中添加Cookie Manager,用于管理Session ID等信息。 9. 在新的HTTP Request的参数中,使用JMeter的变量引用语法,引用之前提取的参数,并设置其他请求参数。 10. 在新的HTTP Request的“HTTP Header Manager”选项卡中添加Regular Expression Extractor,用于提取需要关联的参数,并将提取结果保存到变量中。 11. 在新的HTTP Request的响应结果中,根据需要判断关联是否成功,可以使用Response Assertion等断言。 12. 如果需要压测多个关联接口,可以在While Controller中添加多个新的HTTP Request,重复以上步骤。 注意事项: 1. 需要注意循环条件的设置,以避免死循环或漏测的情况。 2. 需要注意Cookie Manager的使用,保证Session ID等信息的正确性。 3. 需要注意参数的引用,使用JMeter的变量引用语法,避免参数硬编码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

熊猫_water

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值