fengliucaizi 发表于 2012-11-23 20:39:12

JMeter线程执行机制疑问

大家好,本人最近在着手用JMeter做项目的简单测试,问题比较多,还请各位勿嫌麻烦,先谢过!
背景:
建了一个test sampler, 底下建一个thread group,指定该thread group共启动 100 个线程,每 5 秒启动10个,待全部 100 个线程启动后,维持 30 秒,然后开始每 5 秒终止 20 个线程。
每个线程下有 2 个http request。

问:
1、按题意,我 5 秒启 10 个,则JMeter需要 50 秒启完 100 个。那么如果在第 30 秒的时候,我前面有一部分线程已经处理结束了,它们会不会终止掉?还是说不终止,继续维持着,直到上述背景中描述的,到第50+30=80 秒才开始终止?

2、启动线程时,比如第一个与第二个,它们是顺序的还是并行的?是第一个线程起来并执行完它包含的 2 个http request,然后第二个线程才起来,还是说第一个线程起来后,不管有没有执行完,第二个线程马上开启?

3、按上述背景,100 个线程,每个包含两个 http request,而我这两个http request的受理者是同一台服务器,那是否意味着我本次测试对该服务器发送了 100 * 2 = 200 次请求。

4、我在thread group下建了一个loop controller,我设置了loop 20 次,但得到的结果报告与不设置loop controller(也就是只是循环 1 次)没区别,执行时间也一样。就算是设置为loop forever,它也还是不会真的永远在那儿不停地发请求,还是跟loop 1 次一样,为什么?是我设置有问题么?

5、如果我的服务器能承受 500 个线程(没有loop),那么我对其加loop controller,且不断加大loop的次数,到一定程度,服务器会down掉吗?

谢谢!

土土的豆豆 发表于 2012-11-26 11:44:56

1. 事务结束的话 应该会结束线程 这个您在实践时请再确认下
2. 并行
3. 是 应该是200次请求
4. 配置有问题吧 设置次数有效的 若勾上loop forever 会不断跑脚本
5. 这个要看你应用、数据库服务器、系统抗压能力,理论上线程多了 肯定服务器压力大 到一定程度 存在宕机风险

当然具体要看下实际业务功能了 一般简单的还行 否则100 500用户也算较大并发了~

msnshow 发表于 2012-11-29 22:08:56

第5点,我理解应该是不会

oy127 发表于 2013-4-17 16:28:44

第5点,我的理解是:从线程数来看,应该不会导致系统宕机;若考虑数据读写、内存释放等其他问题,可能会导致服务器down了。
不知各位是否有其他看法
页: [1]
查看完整版本: JMeter线程执行机制疑问