美文网首页软件测试学习之路
JMeter - 配置元件HTTP Cookie 管理器

JMeter - 配置元件HTTP Cookie 管理器

作者: 乘风破浪的姐姐 | 来源:发表于2018-12-10 17:12 被阅读18次

    在Jmeter做性能测试或接口测试时,当多个请求关联时需要处理Cookie。
    Jmeter对Cookie进行存取的管理可以使用HTTP Cookie管理器组件。以下对HTTP Cookie管理器的使用进行说明。

    场景:
    用户登录后,查询打开某一个任务
    jmeter 添加线程组并创键http请求,没有添加HTTP Cookie 管理器,执行后查看结果树,有报错如下。


    image.png

    选中线程组,添加HTTP Cookie 管理器,添加完成后显示如下


    image.png
    image.png

    上述图中,添加了一个HTTP Cookie 管理器,对Cookie进操作,新增了一个JSESSIONID的cookie,具体的值是从变量中取出;另外域、路径必须要输入,尤其是域;因为Jmeter现版本默认不支持跨域的请求,不填的话设置的Cookie不会被带上。

    接下来就是取Cookie的操作,通常取的Cookie都是从Response Header里取的,取的目的一般都是给另一个不同的线程来用,因为如果是同一个线程的不同次迭代的情况那么Jmeter会自动带上,无需我们设置。那么HTTP Cookie管理器是如何工作,如何取出cookie呢?

    如果一个 HTTP 请求,返回结果中包含cookie信息,那么HTTP Cookie管理器会自动将该 cookie 保存起来,后续所有的对该网站的请求都使用同一个 cookie。所以 JMeter 的每个线程都有自己独立的"cookie 保存区域"。这些 cookie 不会显示在 HTTP Cookie管理器里,可以通过察看结果树来对其进行查看。

    具体步骤如下:
    1、进入jmeter的安装目录bin目录下,修改jmeter.properties文件
    搜索找到CookieManager.save.cookies=true并设置为true,并保存
    2、重启jmeter,再次打开jmeter
    3、在需要取Cookie的线程组里添加一个HTTP Cookie 管理器,设置如上图
    当执行脚本后,HTTP Cookie 管理器获取到的cookie就会被自动保存在变量里(具体的变量名格式为"COOKIE_xxxx","COOKIE_"为前缀),其中xxxx为具体的实际cookie名;这样在同一个线程内其它操作组件都是可以直接通过${COOKIE_xxxx}来获取 cookie值。如果不希望这个前缀可以对属性 "CookieManager.name.prefix=" 进行定义。

    image.png

    相关文章

      网友评论

        本文标题:JMeter - 配置元件HTTP Cookie 管理器

        本文链接:https://www.haomeiwen.com/subject/axbrhqtx.html