• 9
  • 9
分享
  • Jmeter HTTP Cookie管理器的使用——软件测试圈
  • TIMI 2022-05-18 15:34:10 字数 2685 阅读 4359 收藏 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

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 在软件测试领域,QA管理者和高阶的测试人员必须实施不同的测试管理方法,例如测试监控和控制,以确保测试活动按照计划顺利执行。管理人员需要这些基本的管理策略来跟踪和调整测试进度,以获得最佳的工程效能。什么是测试监控测试监控是一个测试执行过程,其中所有测试活动和工作都被评估为:跟踪当前进度,查找和跟踪可观测测试指标根据测试数据评估下一步计划向相关团队和利益相关者提供有关测试过程进度的反馈可以手动或自动收集测试监控信息,它可用于评估覆盖率等退出标准。测试人员应用各种技术来保证在每个级别实现目标以满足预定义的基准和目标。换句话说,测试监控将测试活动的实际状态与预期目标进行比较,并提供有关该过程是否正在产...
            0 0 707
            分享
          •   开篇  不知道大家有没有一个感觉,就是在做测试的过程中,某些方法、术语、理论总感觉并不陌生,并且有些理论我们好像早就知道了,只是没有系统化而已。  那么,有这种感觉其实是正常的。因为很多知识其实古人早就总结出来了,并且通过典故形成了成语,然后现如今被现代人应用到各个领域。  本文就结合我们熟知的成语来说一说测试过程过程中的一些知识点,我相信你一定会为感觉特别亲切。  测试目的  测试的目的之一,就是使自己确信产品是能够正常工作的。测试人员的基本素质之一就是具备怀疑一切的态度。  那么,大家在日常生活中,对某个事物表示怀疑的时候,经常会说:耳听为虚,眼见为实。在汉·刘向《说苑·政理》中,也有...
            0 0 1030
            分享
          • 开发语言知识背景对被测试对象使用的语言有一定的了解,这样有助于测试工作的开展,同时,与开发人员之间的沟通协作也将更顺畅计算机语言都具有一定的共通性,只要你深刻了解了一门语言,其他语言也不是难事。所以,即使被测试对象使用的语言与你之前学过的了解的不相符亦无太多关系数据库的熟悉使用能够自行编写大部分的SQL语句来辅助测试(SELECT,DELETE,UPDATE),对于存储过程可也多了解,在无程序辅助的情况下,它是制作数据的最好帮手主要在日常测试工作中,提取数据库中的数据验以证测试结果的有效性、制作测试数据、批量修改测试数据等被测试对象业务的熟悉度所谓知已知彼,百战不殆对于被测试对象业务流程的了解...
            1 1 1112
            分享
          •   特斯拉降价之后,小鹏汽车成为首家开启降价的头部造车新势力。  1月17日,小鹏汽车发布公告称,自2023年1月17日14时起,小鹏汽车将启动G3i、P5、P7的新年新价格体系,小鹏G3i售价调整为14.89万-17.69万元,降价2万-2.5万元;小鹏P5售价调整为15.69万-20.29万元,降价2.3万元;小鹏P7售价调整为20.99万-24.99万元,降价3万-3.6万元。  就在11天之前,特斯拉中国宣布降价,最高降幅达到了4.8万元。AITO问界紧随其后,将问界M5 EV、问界M7舒适版与豪华版售价下调3万元左右。  江西新能源科技职业学院新能源汽车技术研究院院长张翔在接受澎湃新...
            0 0 567
            分享
          •   前言  对于初学Python的小伙伴来说,想用Python代码,来向自己喜欢的女孩表白,我们可以简单的运用Python中的turtle库绘制一个爱心。  一、turtle库  turtle库是python的标准库之一;属于入门级的图形绘制函数库。  二、使用步骤  1.引入库  import turtle  2.自定义函数并构建一个循环  ef gxy():       for i in range (200):         &...
            0 0 675
            分享
      • 51testing软件测试圈微信