JMeter学习-011-JMeter 配置元件之-HTTP Cookie管理器-实现 Cookie 登录

news/2024/5/18 15:46:00 标签: jmeter, Cookie

下面以购物App常用的收藏功能为例,讲述如何在 JMeter 中使用 cookie 进行登录态操作。具体的操作步骤如下所示:

第一步、录制查看收藏列表的 HTTP请求:

录制查看收藏列表的HTTP请求,只需启动 Fiddler、配置代理、执行查看收藏操作即可,在此不再赘述,谢谢!录制好查看收藏列表的HTTP请求后,脚本页面视图如下所示:

因此时我们没有登录,在脚本中也无对应的 Cookie 存在,假如我们此时运行脚本,那么请求响应将会提示我们未登录,如下所示:

第二步、读取 Cookie 配置文件

配置路径:【添加 / 配置元件 / CSV Data Set Config】,读取第一步获取的 Cookie 参数文件中的数据。若不知如何配置,敬请参阅博文:JMeter学习-010-JMeter 配置元件实例之 - CSV Data Set Config 参数化配置,配置完成的读取配置如下所示:

第三步、添加 HTTP Cookie管理器:

操作路径:【添加 / 配置元件 / HTTP Cookie管理器】,打开 HTTP Cookie管理器的配置页面,如下图所示:

  1. 名称:对该 Cookie管理器的自定义概述
  2. 注释:对该 Cookie管理器的详细描述
  3. 每次反复清除Cookies?:选择后,则每次线程组运行时,都会清除 cookie。PS:若是手动添加的cookie,则不会被清除。
  4. Implementation:履行的协议。
  5. Cookie Policy:Cookie的管理策略。有如下几种可选项:
  • compatibility:推荐选择此种策略。这种兼容性设计要求是适应尽可能多的不同的服务器,尽管不是完全按照标准来实现的。如果你遇到了解析 Cookies 的问题,你就可能要用到这一个规范。有太多的web站点是用CGI脚本去实现的,而导致只有将所有的 Cookies 都放入 Request header 才可以正常的工作。这种情况下最好设置 http.protocol.single-cookie-header 参数为 true。
  • rfc2109:是HttpClient使用的默认Cookies协议。
  • rfc2965:定义了版本2并且尝试去弥补在版本1中 Cookie 的 RFC2109 标准的缺点。规定 RFC2965 最终取代 RFC2109 发送 RFC2965 标准 Cookies 的服务端,将会使用 Set-Cookie2 header 添加到 Set-Cookie Header 信心中,RFC2965 Cookies 是区分端口的。
  • ignorecookies:此规格忽略所有 Cookie。被用来防止 HttpClient 接受和发送的 Cookie
  • netscape:是最原始的 Cookies 规范,同时也是 RFC2109 的基础。尽管如此,还是在很多重要的方面与 RFC2109 不同,可能需要特定服务器才可以兼容。
  • default:默认。

第四步、参数化 HTTP Cookie管理器:

利用第二步配置读取的数据,引用其名称,对上步中的 HTTP Cookie管理器,实行参数化,配置完成的 HTTP Cookie管理器如下所示:

第五步、添加 Cookie 至 HTTP请求:

将上述配置的 HTTP Cookie管理器,放到相应的 HTTP请求下即可,如下图所示:

第六步、执行脚本,查看结果:

我们通过 HTTP 请求的信息可以看出 HTTP Cookie 是否正确添加至 HTTP请求,如下图所示:

脚本执行结果如下所示:

方法二

我们也可通过在【HTTP信息头管理器】添加 Cookie 信息,从而实现登录态操作。

操作步骤如下:

1、获取 Cookie(通过浏览器等,如下 Firefox 浏览器所示),例如通过浏览器获取 Cookie 信息,保存到文本 cookie.txt 中

  

2、通过 【CSV Data Set Config】读取 cookie.txt 中的 cookie 信息(可参阅 JMeter学习-012-JMeter 配置元件之-HTTP Cookie管理器-实现 Cookie 登录),保存为变量 xn_cookie50

3、在对应请求的 HTTP信息头管理器中添加如下图红框所示的 cookie 头信息配置(若无信息头管理器,可右键 HTTP请求,依次选择【添加 / 配置元件 / HTTP信息头管理器】添加)

  

4、运行脚本查看脚本执行结果,如下所示,成功进行了登录态的操作

  

此种方法在查看结果树的请求标签页的 cookie 信息显示的是空(如下图所示)

  

同时对应的 Cookie 信息也不会在结果数文件中出现。若想在查看结果树输出 xml 中隐藏 cookie 的亲们,可采用此种设置方法。


http://www.niftyadmin.cn/n/1495673.html

相关文章

基于IAR6或者IAR7建立STM32开发工程(通过实际测试,使用IAR6.30.4)

IAR和keil两个开发平台都是arm开发当中比较流行的平台,keil4的版本之间,可以兼容,但是版本4和版本5还是不兼容的,但是IAR的兼容性更加差,好像6.30.x之间是能够兼容的吧,没有实测过,以下是网上摘…

3.15:C++11继承构造函数 多重继承

继承的构造函数 https://blog.csdn.net/qq_40794602/article/details/98437671 https://blog.csdn.net/craftsman1970/article/details/82971774 https://blog.csdn.net/qq_32285693/article/details/89197799 详情转载:https://blog.csdn.net/K346K346/article…

JMeter 逻辑控制器之-如果(If)控制器

前文简述了 JMeter 如何通过 HTTP Cookie管理器,实现了在不执行登录操作的情况下,通过 Cookie 实现登录态的操作,具体请参阅:JMeter学习-011-JMeter 配置元件之-HTTP Cookie管理器-实现 Cookie 登录。 我们在日常的自动化测试脚本…

scp和Rsync远程拷贝的技巧

cp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。可能会稍微影响一下速度。当你服务器硬盘变为只读 read only system时,…

3-15 继承的构造函数、多重继承、虚继承(虚派生)

继承的构造函数 一个类只继承其直接基类(父类)的构造函数。默认、拷贝、移动构造函数是不能被继承的。 class A{ public:A(); };class B : public A{ public:using A::A; //遇到这条语句,编译器会把积累的每个构造函数,都会生成…

Java8给出一个时间段,计算该时间范围由哪些日期(天)和月份组成

1. 判断时间段是否合法; 2. 循环判断记录数是否大于0 3. 根据起始时间算出该月的第一天、最后一天和这个月有多少天; 4. 判断起始时间是否是该月第一天,如果是,再判断结束时间与该月最后一天的大小:小于,等…

JMeter学习-JMeter 定时器(Synchronizing Timer)之集合点应用

性能测试中我们经常提到一个概念就是“并发”,其实在实际真实的性能测试中是不存在真正的并发的。为了更真实的模拟对一个请求的并发测试场景,我们通常设置一个集合点,JMeter中提供了这样的一个功能设置。 那么集合点的大致概念是什么呢&…

3-16 类型转换构造函数、explicit、运算符,类成员指针

类型转换构造函数 我们通过 类型转换构造函数 和 类型转换运算符 来做到 类型转换。 构造函数:移动构造函数,拷贝构造函数,默认构造函数、普通构造函数 特点: 1、以类名作为函数名 2、没有返回值; 类型转换构造函…