zoukankan      html  css  js  c++  java
  • Jmeter登录中cookie的JSESSIONID不一致的问题

    Jmeter中发送多个http请求,由于后面的请求需要登录后才能获取到数据,所以前面先要发送登录请求。

    登录时会写cookie到本地,后面的请求中会读取cookie中的JSESSIONID,若后面的请求中的JSESSIONID与登录的不一致,则服务器认为是没有登录,所以发起后面的请求后会返回登录

    苦苦查询最后终于发现问题所在,cookie管理器中的策略没有设置对,我配置成了RFC2109 ,后来改成Compatibility 兼容模式后,所有请求的cookie一致了,后续就可以成功了

    解决方法:cookie管理器中的策略改成Compatibility 兼容模式

    以下Cookies标准,HttpClient3.1可以支持。

    Compatibility
    这种兼容性设计要求是适应尽可能多的不同的服务器,尽管不是完全按照标准来实现的。如果你遇到了解析Cookies的问题,你就可能要用到这一个规范。
    有太多的web站点是用CGI脚本去实现的,而导致只有将所有的Cookies都放入Request header才可以正常的工作。这种情况下最好设置http.protocol.single-cookie-header参数为true。

    RFC2965
    RFC2965定义了版本2并且尝试去弥补在版本1中Cookie的RFC2109标准的缺点。RFC2965是,并规定RFC2965最终取代RFC2109.
    发送RFC2965标准Cookies的服务端,将会使用Set-Cookie2 header添加到Set-Cookie Header信息中,RFC2965 Cookies是区分端口的。

    Ignore Cookies
    此规格忽略所有Cookie 。被用来防止HttpClient接受和发送的Cookie。

    Netscape标准
    Netscape是最原始的Cookies规范,同时也是RFC2109的基础。尽管如此,还是在很多重要的方面与RFC2109不同,可能需要特定服务器才可以兼容。

    RFC2109
    RFC2109是W3C组织第一次推出的官方Cookies标准。理论上,所有使用版本1Cookies的服务端都应该使用此标准。HttpClient已经将此标准设定为默认。
    遗憾的是,许多服务端不正确的实现了标准或者仍然使用Netscape标准。所以有时感到此标准太多于严格。
    RFC2109是HttpClient使用的默认Cookies协议。

  • 相关阅读:
    树莓派添加桌面快捷方式
    计算机网络
    django-auth2
    令牌桶算法-python
    linux centos-7 添加开机自启动脚本
    pymongodb-explain
    哈希表
    tcp/udp
    jemeter之jmeter+ant+jenkins搭建接口自动化测试环境
    jmeter之jmeter + ant + jenkins(二)Jenkins安装
  • 原文地址:https://www.cnblogs.com/fengsiyi/p/6873595.html
Copyright © 2011-2022 走看看