三种线程组配置:
- 取样器错误后要执行的动作:
元素 | 功能 |
---|---|
继续 | 请求失败后继续运行,在对一些类似500错误,可统计出错概率,以及后续请求结果是否正常 |
启动下一进程循环 | 如果出错,则同一线程中的余下请求将不再执行,直接重新开始新一轮迭代 |
停止线程 | 请求失败后,停止当前线程,不再执行 |
停止测试 | 如果某一线程的某一请求失败了,每个线程执行完当前迭代后再停止所有线程测试 |
立即停止测试 | 如果有线程的请求失败了,立即停止所有线程,不再执行 |
- 线程属性:
元素 | 功能 |
---|---|
线程数 | 相当于用户数,当线程数不等于1时,需要使用文件记录大量用户信息配合其它元件(如:CSV Data Set)使用 |
Ramp-Up时间(秒) | 启动完所有线程所需要的时间,如:100个线程设置5s,则每秒需要启动20个线程;100个线程0s,则需要立刻启动这100个线程 |
循环次数 | 每个线程重复执行请求的次数,勾选 永远 则所有线程不停地重复执行该线程下的请求 |
Same user on each iteration | 控制每次迭代是否创建新的线程,勾选则代表一直使用相同线程,即使用相同的cookie值(默认是勾选的,因为创建和销毁本身就占资源,会影响到性能测试)。 HTTP Cookie 管理器也增加了一个选项,控制是否清除旧 Cookie |
延迟创建线程直到需要 | 与创建JVM时机有关,不影响结果 |
持续时间(秒) | 勾选调度器后,可填写此项 |
启动延迟(秒) | 勾选调度器后,可填写此项 |
- 模拟并发计算方式:
假设:
线程数:n
Ramp-Up Period:T
循环次数:a
每个循环运行时间是 t
当时间到 S = (T- T/n)时,最后一个线程启动,若要使所有线程同时运作,则需要在最后一个线程启动的时候第一个线程仍未关闭,为达到这个要求,需满足 a·t > S及a > S/t
每一个线程运行时间是R = a·t(此处的a是大于S/t的某一值),则第一个线程在时间点为R 的时候停止,整个测试理论运行时间则是 :S + R = (1-1/n)·T + a·t