JMeter Logo

Jmeter 只执行一次的方法

原创 2018年 9月 5日
标签: JMETER
本文发布至今已有6年零76天,可能不再适用,请谨慎对待。

先打个广告:欢迎关注我的公众号,参与 文史大挑战 趣味题目。使用方法见 这篇文章

公众号:晚花行乐

正文开始:

使用 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 ——
未完待续

如果您对本文有疑问或者寻求合作,欢迎 联系邮箱邮箱已到剪贴板

标签: JMETER
给个免费的赞吧~

精彩评论

本站 是个人网站,采用 署名协议 CC-BY-NC 授权。
欢迎转载,请保留原文链接 https://www.lfhacks.com/tech/jmeter-simulate-login-logout/ ,且不得用于商业用途。