我正在测试网络应用。基本上我有1个线程组(让我们称之为联盟会员),平均每秒需要执行2.5个请求(每个请求都是对虚构广告的请求)。第二个线程组(最终用户)需要"点击"关联公司要求的这些广告的10%。
我有以下设置:
每个线程组的上升时间为1(s)。 第一个线程组(附属机构)的常量计时器为400毫秒(1秒/ 2.5点击=每0.4秒点击1次=每400毫秒点击1次)。如果我理解正确,这应该确保每个联盟会员每400ms点击一次。
第二个线程组有一个4000ms的常量定时器(因为定时器是一个延迟,然后4000ms使得应该导致第一个线程组的10%请求。)
使用一个用户进行测试时,结果很好,但随着用户增加(例如,每个线程组150个用户(总共300个用户)),结果不再是AdClick 10%的AdRequests。
运行我的测试1分钟我得到以下内容: AdsRequest = 4695个样本 AdsClicked = 1568个样本
AdsClicked应该是大约470个样本
所以我的问题是:如何设置我的测试以不断获得Adclicked的10%AdRequests样本,无论当前有多少用户使用该系统。
答案 0 :(得分:0)
就定时器位置而言,您的设置不是很正确。根据{{3}}:
请注意,定时器在之前处理它们所在范围内的每个采样器;如果在同一范围内有多个计时器,则所有计时器将在每个采样器之前处理。
定时器仅与采样器一起处理。与采样器不在同一范围内的计时器根本不会被处理。 要将计时器应用于单个采样器,将计时器添加为采样器的子元素。计时器将在执行采样器之前应用。要在采样器之后应用计时器,请将其添加到下一个采样器,或将其添加为测试操作采样器的子项。
如果您需要操纵吞吐量(每秒请求数),最好考虑Timers Documentation或Constant Throughput Timer
由于您没有使用此计时器的计时器保证完全匹配10%:
无论当前有多少用户使用该系统
您可以考虑在单个线程组下移动两个采样器,并使用Throughput Shaping Timer或Throughput Controller使AdsClicked
请求恰好是AdRequests
的10%。有关该方法的更多详细信息,请参阅Switch Controller文章。