8

Jmeter 只执行一次的方法

 3 years ago
source link: https://www.lfhacks.com/tech/jmeter-simulate-login-logout
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Jmeter 只执行一次的方法

1488.jpg

使用 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 ——

(未完待续。。。)


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK