zoukankan      html  css  js  c++  java
  • jmeter跨线程组session保持

    @@@@@@@@@@@@@@@

    是金子早晚会被挖光的   

      http请求由于无状态的特性,所以在请求时需要带上身份信息,关于session和cookie的验证机制会在其他笔记中再记录,这里不讨论。

    心路历程

      在实际过程中,我往往把一个业务模块放在一个线程组,登录就独立在一个线程组了,那其他线程组如果想拥有cookie,就需要每个线程组都写一个登录请求。单个接口不会有太大影响,但是当线程组多了以后,这么做首先不方便脚本管理,其次如果有性能需求,也没办法测试。我如果可以让其他线程组共享登录线程组的cookie,那就方便多了,于是就学习了以下方法

     思路

      在登录线程组中提取出登录后的cookie值,声明一个全局变量,将取到的cookie值放入全局变量中,这样在其他线程组需要用到的cookie的时候调用这个变量的值,如此就实现了cookie值在多个线程组之间的传递

    步骤

    两个易错:1 正则表达式一定要写正确,注意空格之类的。2记得勾选测试计划的独立运行每个线程组。

      1 在登录请求中添加后置处理器:正则表达式提取器 

      

      2 正则表达式提取cookie值。ps(如果此步有疑问请阅读随笔 jmeter之正则表达式提取器使用)

      

      3 声明一个全局变量,变量的值为提取到的cookie值(此步骤有疑问的请阅读 jmeter之变量的使用)

      

     

      4 在其他要用到cookie的线程组中添加“HTTP信息头管理器”

      5设置cookie的值为步骤3设置的变量值

    最后执行线程组,就发现其他模块线程组的请求也可以用到登录接口返回的cookie值了。

     注意如果小伙伴运行后发现不对,需要去测试计划中勾选独立运行每个线程组就可以了

    总结

      用多线程共享cookie(session保持)的方式是一门测试必备技能,如果只是随便测一下就算了,如果要系统性的展开自动化和性能测试,那么session保持会是一个很重要的概念,不管是从代码管理角度,还是从性能分析角度。其核心技术点就是正则表达式的提取以及全局变量的传递。仔细分析流程,理解cookie的值在执行过程中的详细调用过程,才可以更轻松更透彻理解自动化测试。

    --  以上内容均为笔者原创,转载请注明出处,如有不当欢迎指正

  • 相关阅读:
    C#’s ~ vs Java’s finalize
    做Java开发这一年
    assertThat, assertEquals, assertTrue
    给Cuke4Duke添加一个AfterAll标签(一):使用Cuke4Duke
    心理问题的根源
    何谓数学
    人生谁看透
    人本主义与自由意志
    哲学的基本问题
    贫穷与教育
  • 原文地址:https://www.cnblogs.com/baxiaobin/p/12103106.html
Copyright © 2011-2022 走看看