此问题与问题:2 中给出的数据有关,执行是否以迭代方式进行。与第一次迭代类似,客户端1,2,3,4和5分别执行请求1,2,3,4和5。下一次迭代,客户端1,2,3,4和5分别执行请求6,7,8,9和10。 我们如何在Locust工具中实现这种类型的执行机制。这可能吗?
请帮我澄清上述问题。
答案 0 :(得分:1)
on_start
方法答案 1 :(得分:1)
有没有办法在Task set class中获取当前执行的Client信息?
目前没有。协调器创建客户端时的data sent to the client does not include this。这种行为已被要求几次。
假设我正在用5个客户端执行20个请求。我可以说每个客户端正在执行4个请求(每个请求20/5 = 4个)吗?在这里使用5个客户端执行这20个请求的内部机制是什么?
这个问题有不正确的假设。
每个Locust都有minimum and maximum weight time,用于确定任务之间等待的时间。
每个蝗虫根据任务权重和此间隔随机选择任务。 “用5个客户端执行20个请求”的控件意味着Locust将启动5个客户端,一旦收到20个请求的结果,就会终止。
根据您的通话时间长短,它们可以均匀分布。或者,大多数可以由一个客户完成。
这个问题与问题中给出的数据有关:2,执行是否以迭代方式进行。与第一次迭代类似,客户端1,2,3,4和5分别执行请求1,2,3,4和5。下一次迭代,客户端1,2,3,4和5分别执行请求6,7,8,9和10。我们怎样才能在Locust工具中实现这种类型的执行机制。这可能吗?
您可以将任务集嵌套在一起。但是“迭代”的概念在Locust框架中并没有真正意义。 Locust旨在根据权重随机挑选和创建任务。
如果你的目标是显式迭代,你运行一组任务,然后转到下一个迭代,运行不同的任务,你会发现Locust并不真正支持这个用例。
你可以 write your own client执行此操作并根据需要手动触发事件,但是如果您从根本上想要以某种方式使用Locust,我不确定这些开销是否值得这不是故意的。