• 9
  • 9
分享
  • Jmeter HTTP Cookie管理器的使用——软件测试圈
  • TIMI 2022-05-18 15:34:10 字数 2685 阅读 4627 收藏 9

我们使用一个电商项目进行演示,在调用登录接口完成登录之后,通过查看购物车接口获取该用户购物车中的信息。也就是说如果需要查看到购物车中的信息,则我们先要是登陆状态,这样的情况下,就需要有Cookie信息的存在了。

提示:要获取购物车接口中的信息,需要使用登录后的Cookie保持登录状态。

1、在HTTP信息头管理器组件中添加Cookie信息

实现步骤:

  1. 前提我们手动登陆电商网站,地址:

    http://www.testingedu.com.cn:8000/index.php/Home/user/login.html。

  2. 然后通过工具获取到登陆后的Cookie数据。

  3. 把Cookie数据存储到HTTP信息头管理器组件中。

  4. 直接查看该用户的购物车数据。

提示:关于该网站登陆授权的Cookie信息就是PHPSESSID,我们只保存这一条Cookie即可。

(1)测试计划内包含的元件

添加元件操作步骤:

  1. 创建测试计划。

  2. 创建线程组:选中“测试计划”右键 —> 添加 —> 线程(用户) —> 线程组。

  3. 在线程组中添加配置元件"HTTP信息头管理器"组件:选中“线程组”右键 —> 添加 —> 配置元件 —> HTTP信息头管理器。

  4. 在线程组里面添加取样器“HTTP请求”组件:选中“线程组”右键 —> 添加 —> 取样器 —> HTTP请求。

  5. 在线程组里面添加监听器“察看结果树”组件:查看结果,选中“线程组”右键 —> 添加 —> 监听器 —> 察看结果树。

最终测试计划中的元件如下:

1副本.png

点击运行按钮,会提示你先保存该脚本,脚本保存完成后会直接自动运行该脚本。

(2)请求取样器内容

如下图所示:

2副本.png

两个HTTP请求取样器的内容是一样的,只不过有Cookie的请求前加了HTTP信息头管理器组件。

(3)HTTP信息头管理器内容

我们在请求头中添加上Cookie信息,如下图所示:

3副本.png

当然我们可以用HTTP Cookie管理器组件来替换HTTP信息头管理器组件。

如下图所示:

4副本.png

两种方式下效果是一样的,我更喜欢使用HTTP信息头管理器组件。

(4)查看结果

我们现在查看没带Cookie信息的请求结果,发现返回数据提示看不到购物车的内容。

如下图所示:

5副本.png

 我们再来看一下带Cookie信息的请求结果,发现可以看到购物车中的信息,如下图所示:

6副本.png

2、使用HTTP Cookie管理器组件来管理Cookie信息

实现步骤:

  1. 我们在JMeter中进行登陆操作。

  2. 通过HTTP Cookie管理器组件来记录下登陆后的Cookie信息。

  3. 再调用查看购物车接口,自动使用HTTP Cookie管理器组件中记录下来的Cookie信息。

  4. 最终实现查看该用户的购物车数据。

提示:关于该网站登陆授权的Cookie信息就是PHPSESSID,我们只保存这一条Cookie即可。

(1)测试计划内包含的元件

添加元件操作步骤:

  1. 创建测试计划。

  2. 创建线程组:选中“测试计划”右键 —> 添加 —> 线程(用户) —> 线程组。

  3. 在线程组中添加配置元件"HTTP Cookie管理器"组件:选中“线程组”右键 —> 添加 —> 配置元件 —> HTTP Cookie管理器。

  4. 在线程组里面添加取样器“HTTP请求”组件:选中“线程组”右键 —> 添加 —> 取样器 —> HTTP请求。(如有多个请求,添加多次)

  5. 在线程组里面添加监听器“察看结果树”组件:查看结果,选中“线程组”右键 —> 添加 —> 监听器 —> 察看结果树。

最终测试计划中的元件如下:

1副本.png

点击运行按钮,会提示你先保存该脚本,脚本保存完成后会直接自动运行该脚本。

2副本.png

(2)HTTP Cookie管理器内容

什么都不用填写,保持原样即可。

简单说明一下:

  • JMeter中自动收集的Cookie,是不会在HTTP Cookie管理器中进行展示的,但是运行后通过查看结果树可以查看到Cookie信息,接受到的Cookie会被自动存储在线程变量中。(使用Debug Sampler组件)

  • HTTP Cookie管理器会自动记录每一个请求所产生的Cookie,在后边对同源站点进行的请求中,都可以使用对应的Cookie进行发送。

(3)HTTP请求组件的内容

1)登陆请求界面内容

填写好请求地址和请求参数,如下图所示:

3副本.png

2)查看购物车请求界面内容

查看购物车接口,没有请求参数,我们使用Get请求就可以。其中的Cookie信息,会自动添加到请求头信息中。

如果没有添加HTTP Cookie管理器组件,则该请求的请求头信息中不会带有Cookie信息,会显示[no cookies]。

4副本.png

我们可以看到,两个请求都请求成功了。登陆请求中是没有Cookie信息的,登陆之后服务端会返回Cookie信息给客户端。而HTTP Cookie管理器组件保存了这些Cookie信息,并应用于之后的接口请求中,所以在查看购物车请求中,我们看到了Cookie数据。

3、查看HTTP Cookie管理器组件中自动存储的Cookie信息

前面我们说过,JMeter中自动收集的Cookie信息,是不会在HTTP Cookie管理器中进行展示,接受到的Cookie信息会被自动存储在线程变量中。

如果我们需要查看或引用这些Cookie信息怎么办?

(1)修改JMeter.property文件

修改jmeter/bin/jmeter.properties文件,把CookieManager.save.cookies属性打开,意思是保存Cookie数据到线程变量中。

操作如下:

CookieManager.save.cookies=true   # 取消注释,false修改成true

(2)添加Debug Sampler取样器

添加Debug Sampler组件:选中“线程组”右键 —> 添加 —> 取样器 —> Debug Sampler。

我们以上面练习为例,添加完Debug Sampler组件后,测试计划中的元件如下:

5副本.png

(3)查看Debug Sampler组件中的结果

运行测试计划,然后在察看结果树中,查看Debug Sampler组件中的值。

如下图所示:

6副本.png

红框中的内容,就是登陆请求后,服务端返回给客户端的Cookie信息。

之后我们可以使用${COOKIE_名称}的方式,在其他的地方引用该Cookie信息。

JMeter.property文件中的CookieManager.name.prefix= 属性,能够用来修改默认的变量名COOKIE_的开头。

 

作者:传说三哥

原文链接:https://blog.csdn.net/m0_37449634/article/details/121426501

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 首先,崩溃有几种情况:闪退提示停止运行无响应1、接口返回值[直接原因]:app无法解析接口返回值/获取不到要获取的参数/参数类型不对导致客户端代码报错 [引起原因]:脏数据/网络问题导致接口超时或漏了数组元素/前后台没有统一参数类型标准/参数名错误/实体消失 [解决办法]:在网络顺畅/不顺畅情况下抓包,对着api文档一个一个的参数对比,返回值有数组可以横向对比 可能是其中某个元素内的某个参数和其他元素内的这个参数有内容不同/类型不同/为空/不存在/规范不同。 [测试方法]:首先要从2个角度考虑。 1:后台不要返回这种脏数据,或者有脏数据要进行处理再返回给app。 2:app要有一定的容错性,不...
            0 0 1222
            分享
          • 前提条件:Jmeter已安装且已配置好;运行Jmeter,打开界面。第一步,添加线程组在Jemeter界面上有一个默认的测试计划根路径。一个测试计划包含一系列Jmeter运行时要执行的步骤,包含一个或者多个线程组,逻辑控制器,取样发生控制,监听器,定时器,断言和配置元件等。我们想要创建一个完整的测试计划,那么就先创建一个线程组:选中测试计划,点击鼠标右键-> 添加->线程(用户)->线程组,如下图所示:线程组元件是任何测试计划的起点。一个测试计划的所有元件必须在一个线程组下。线程组元件控制JMeter运行测试时使用的线程数。线程组管理可以:设置线程数设置ramp-up per...
            0 0 5115
            分享
          •   项目背景  系统有个Excel导入功能,需要通过Excel来构造测试数据,生成测试数据之后,上传Excel并导入验证。  如果数据验证出错,需要给出错误提示;如果数据校验通过,则执行导入操作。  我们主要通过Alibaba的Easy Excel框架来做。  期望的生成Excel数据模板如下:  生成了人员的工号、姓名、证件类型、身份证、民族等等字段。  这里我们使用java语言,用到的工具类如下:  java-faker  构造测试数据时,需要绞尽脑汁浪费时间,JavaFaker可以释放你的生产力。  easy-excel  easy-excel重写了poi对07版Excel的解析,能够原...
            15 15 1355
            分享
          • 软件测试其实就是对程序进行一些操作,来发现程序所存在的缺陷,衡量软件的质量,并对其是否能满足设计要求进行评估的过程。软件测试方法分类基于直觉和经验的方法Ad-hoc测试方法:强调测试人员根据自己的经验,不受测试用例的约束,放开思想,灵活地进行测试。ALAC测试方法:Act like a customer,像客户那样做,对常用的功能进行测试;错误推测法:有经验的测试人员根据自己的工作经验和直觉测出程序可能存在的错误,从而有针对性地进行测试。基于输入域的测试方法等价类划分法边界值分析法基于组合及其优化的方法判定表法因果图法pair-wise方法正交试验法基于逻辑覆盖的方法语句覆盖判定覆盖条件覆盖判...
            0 0 1146
            分享
          • 51Testing软件测试圈7月更文计划已经落下帷幕!感谢大家参与!本次更文活动时间从2022年7月6日——2022年8月6日!合计参加更文活动的作者11名,其中更文的作者共计9名,合计更文137篇。经过评审老师的加急审核,其中筛选出优质文章37篇,详细更文情况如下:序列作者名称更文篇数符合要求文章优质文章1Carl_奕然2626262 王鑫252103Lee232304程序员阿常232105豆秸161496Charles101007yvanna157708米果橙柠4409爱测角332获奖名单恭喜:姓名更文篇数活动规则获得奖品Carl_奕然26发布文章篇数≥21小米电吹风机一个王鑫2...
            9 10 7052
            分享
      • 51testing软件测试圈微信