jmeter 如何 提取 cookie 中的值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jmeter 如何 提取 cookie 中的值相关的知识,希望对你有一定的参考价值。

需要 获取 图一中 标记部分的值图二为 获取方法 但是不行 获取不到 试过很多办法 都获取不到
请不要复制粘贴 ,网上能找的方法 我也能找到,如果有用 就不会在这提问了

不需要这么麻烦,jmeter配置文件中可以设置自动保存cookie变量,具体如下:

    在bin目录下的jmeter.properties,搜CookieManager.save.cookies,把后面的值改为true,去掉行首的#号,然后保存后重启jmeter。

    在需要取Cookie的线程里添加一个Http Cookie管理器(管理器可以默认为空,但是一定要添加,否则是不会存储cookie变量的)

    经过上述操作,执行线程之后,获取到的cookie就会被保存在线程变量里,具体的格式为COOKIE_xxxx,其中xxxx为具体的实际cookie名;这样在同一个线程内其它操作组件都是可以直接通过$COOKIE_xxxx来获取的。你可以尝试用Debug Sample来测试$COOKIE值是不是有取到等候后cookie 中保存的jsession值。

参考技术A 刚刚解决了这个问题。
首先(这一步不做是否能成功,没有进行验证),在bin目录下的jmeter.properties,搜CookieManager.save.cookies,把后面的值改为true,去掉行首的#号,然后保存后重启jmeter。
其次,http请求 设置成 跟随重定向——保证后面所有请求的jsessionid都是同一个。
第三步(最重要的),http请求参数设置,参数值:$COOKIE_JSESSIONID
参考技术B 是从上一页的响应数据中获取,
但是我的上一页响应数据是空的,找不到地方获取了……
参考技术C 在线程组-配置元件-HTTP Cookie 管理器里面添加cookies
但是有些tomcat的session实现不是通过cookie的,而是通过session id的,就是说,用户登录有了session之后,tomcat就会维护一个sessonid,然后每次request的时候,要求每个http request的URL都要带上这个session id。
在tomcat中,使用URL Re-writing mode,URL是这样的:http://192.168.0.2:8080/easy/login.ec;jsessionid=410C3D3946535635683D662DF74A00AC,所以,这里你需要设置会话参数名称为: jsessionid,Jmeter就会到URL里面按照这个参数去把上面那个sessionid抓下来,然后每次request都带上这个东西
参考技术D 你知道怎么取了么,我也想知道怎么取

Jmeter如何保持cookie,让所有请求都能用同一个cookie,免去提取JSESSIONID

近期有柠檬班的学生找到华华,问了一个问题,就是利用Jmeter做接口测试的时候,如何提取头部的JSESSIONID然后传递到下一个请求,继续完成当前用户的请求。

其实,关于这个问题有三种种解决方法:

1)从响应数据里面提取JSESSIONID,点击链接可以查看https://www.cnblogs.com/liulinghua90/p/5320290.html

2)如果响应数据里面没有返回JSESSIONID,那么就可以保持cookie,今天这篇博客,我们重点讲解第这种方法。

3)如果响应头里面有这个JSESSIONID,我们可以通过添加cookie来解决这个问题,点击链接可以查看:https://www.cnblogs.com/liulinghua90/p/9257548.html

 

一、测试前准备

1.测试地址:

登录:http://XXXX:8080/futureloan/mvc/api/member/login
充值:http://XXXX:8080/futureloan/mvc/api/member/recharge

2.参数提取:

登录的参数:mobilephone、pwd
充值的参数:mobilephone、amount

3.测试前场景:

1:登录之后会随着登录的响应结果产生一个JESSIONID再响应头。
2:充值请求必须带着JESSSIONID一起发给服务器,才会请求成功。

4:选用工具:Jmeter

 

二、开始测试

1:打开Jmeter--->添加线程组--->添加HTTP请求--->填入登录请求数据,如下所示:

技术分享图片

2:打开Jmeter--->添加线程组--->再添加HTTP请求--->填入充值请求数据,如下所示:

技术分享图片

3.运行线程组,检查登录的结果以及充值的结果,发现登录成功了如下所示:

技术分享图片

 

充值未成功,提示如下:

技术分享图片

4.再去检查Jmeter里面登录的响应数据的请求头,如下所示:

技术分享图片

 

三、添加COOKIE并保持cookie

1:在线程组下面添加一个cookie管理器,如下所示:

技术分享图片

2:保存好,再次发起请求,得到如下结果:

技术分享图片

3:同时看到充值请求里面带上了原本没有的cookie

技术分享图片

 

四:总结

 解决这个问题的关键是:1)要知道cookie session jessionid的作用是什么

                                         2)怎么提取这些关键信息并保持

                                          3)学会利用正则表达式

 

以上是关于jmeter 如何 提取 cookie 中的值的主要内容,如果未能解决你的问题,请参考以下文章

Jmeter如何保持cookie,让所有请求都能用同一个cookie,免去提取JSESSIONID

Jmeter—Jmeter脚本录制提取cookie

jmeter如何采用json提取器提取多个值

jmeter接口测试之json提取器的使用方法二

JMeter提取登录的Cookie

如何使用JMeter发送仅限http的cookie?