昨天使用 Jmeter 对一个单接口进行了简单的测试(Http 请求),测试情况如下:
我分单台机器测试和分布式 2 台机器测试,①单台机器设置 1 秒启动 600 个线程执行 1 次②分布式 2 台机器,每台分 300 个线程也是 1 秒启动执行 1 次,总数也是 600(这两种情况都没设置集合点,接口都一样,其他条件也一样)
遇到的问题:单机测试情况是服务器正常返回没有任何报错;分布式测试的时候大概有 5.8% 的报错(报错信息是:Response code: 500 和 Non HTTP response code: java.net.SocketException),应该是服务器内部报错和请求超时一类的!
我想问的问题是:Jmeter 中有没有线程请求并行,串行的概念(也是一个群友说的)?我 1 秒启动 600 个,可以理解成 1ms 启动 0.6 个,一个挨着一个启动,也就是串行;那么在进行多台分布式测试的时候,2 台机器应该是同时发送请求,也就是说这个时候 1ms 启动的不是 0.6 个,应该是 N 个(感觉这个 N 应该死大于 0.6 的,所以服务器才会报错)。在这里也想问的数是:分布式测试中,多台机器的线程请求是怎么启动的?————————我能不能这样认为:单台机器 1 秒启动 600 个线程执行 1 次并不能理解成并发,而是分布式测试的时候才是真正意义上的并发。
另外,还想问下有经验的前辈们,你们在使用 Jmeter 测试多并发具体是怎么操作的?感谢!(我们老大的需求是:服务器支持 5000 并发,所以这段时间一直在学习)


↙↙↙阅读原文可查看相关链接,并与作者交流