Jmeter 只执行一次的方法

发表时间

使用 Jmeter 进行负载测试时,如果希望多个线程利用同一个登录 session,发起多个并发请求的场景,要求使登录和注销在整个测试过中只执行一次。应该怎么实现?

只跑一次控制器

只跑一次控制器( Once Only Controller )不能实现这个要求。

根据 官方说明文档 描述,只跑一次控制器的作用是在 每个线程(用户)内 , 保证受控的元件只运行一次。所以,如果通过增加线程组内的线程数量,发起多个请求时,在每个线程内仍然会有一次登录过程。

运行起来应该是这样的:

  • Thread 1: —— Login —— Request —— Request —— Logoff ——
  • Thread 2: —— Login —— Request —— Request —— Logoff ——
  • Thread 3: —— Login —— Request —— Request —— Logoff ——
  • Thread 4: —— Login —— Request —— Request —— Logoff ——

很多时候,这种反复登录是没必要的,如果让登录和注销都只执行一次,那么不能用“只跑一次控制器”,而应该使用 Setup 线程组 和 TearDown 线程组。

Setup 线程组 和 TearDown 线程组

如果要在整个测试过程只跑一次登录和注销过程,就需要用到 Setup 线程组 和 TearDown 线程组,测试计划如下图:

Test Plan
  ├─HTTP Cookie Manager
  ├─User Defined Variables
  ├─HTTP Request Defaults
  ├─HTTP Header Manager
  ├─setUp Thread Group 
  │    └─ Setting UP
  ├─Load Thread Group 
  │    └─ Request
  └─tearDown Thread Group 
      └─ Tearing Down

运行起来应该是这样的:

  • Setup Thread: —— Login ——
  • Load Thread 1: —— Request —— Request —— Request ——
  • Load Thread 2: —— Request —— Request —— Request ——
  • Load Thread 3: —— Request —— Request —— Request ——
  • Load Thread 4: —— Request —— Request —— Request ——
  • Teardown Thread: —— Logoff ——

(未完待续。。。)


  欢迎到 留言板 写下你的看法。
  本页面内容采用 署名协议 CC-BY 授权。欢迎转载,请保留原文链接