jmeter之跨线程组session保持

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

是金子早晚会被挖光的

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

心路历程

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

 思路

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

步骤

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

  

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

  

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

  

 

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

 

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

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

总结

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

猜你喜欢

转载自www.cnblogs.com/baxiaobin/p/12103106.html