我是两台压力机,分布式启动jmeter压测180秒,结果throughput显示3075,我用总请求数/总耗时,64万左右/180秒,得到的TPS是3500左右。误差17%
网上说jmeter的throughput的误差,是本地方法耗时导致的。JMeter聚合报告吞吐量误差分析;
但是,本地耗时长导致的误差,一定会显示在场景运行时间上!
我设置场景运行180秒,场景也在180秒准时结束了。如果本地有误差,我的耗时应该显示208秒,而不是我设置的180秒。所以我的误差不是因为本地方法耗时导致的。
那么,这28秒哪来的?
jmeter计算TPS,也是用总请求数/总持续时间。我观察了两台压力机,确实同时启动的场景,但是,两台压力机的系统时间不一样!!!差了30秒。
原来,jmeter的总持续时间,是把分布式的所有压力机的时间都统计了,用最早开始的,减去最晚结束的。它统计的一直是180+30秒。
这种问题一台机器是不会出现的。
分布式测试,记得查看各个压力机的系统时间是否一致!