【发布时间】:2020-05-28 03:05:55
【问题描述】:
在我的 locustfile 中,我定义了 test_on_start 和 test_on_stop 事件来读取测试所需的文件,并在测试结束时在 CSV 中写入详细的统计数据。在分布式模式下运行时,这些事件发生在主节点上,而不是工作节点上。我正在为任务序列中的每个任务组装详细统计信息列表,并在测试结束时在测试停止时编写一个 CSV 文件。我发现这个stackoverflow question 引用了设置和拆卸。我将这些添加到我的class User(HttpUser):,但它们似乎没有被执行。
当测试以分布式模式在工作人员上运行时,我如何模拟这些事件?
有没有更好的办法?
我已经在使用用户 on_start 和 on_stop - 我的 on_start 调用一个函数来从一个列表中选择一个随机用户,该列表是在@events.test_start.add_listener 被触发时创建的,这只发生在主服务器上而不是工作人员上,所以worker 没有任何用户登录数据。
每次调用 User on_start 方法时,打开文件、读取文件、随机选择一个用户并关闭它似乎会适得其反。用户 on_start 还设置了迭代列表 [],这是我存储每个任务的时间的地方。
当任务序列完成时,意味着执行了最后一个任务,我执行self.interrupt(),它运行on_stop,这是我获取迭代时间的地方,并将它们放入第二个列表中,稍后编写使用 CSV 模块。也许在on_stop期间将数据写入CSV会更好
【问题讨论】:
标签: locust