使用 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/ ,且不得用于商业用途。