如何验证负载测试的每个调用在流程链的末尾都产生了成功的结果?

时间:2019-05-31 20:37:12

标签: artillery

我有一个这样的应用程序:

ingestion --> queue --> validation --> persistance --> database

我要对摄取进行负载测试,最后确认每个提交的条目都存储在数据库中。

我有一个炮兵脚本,可以提取并从数据库中恢复相同的项目,但是它是同一场景的一部分,并且由于这两个组件是分别实现的,因此我实际上是在衡量综合性能,而不是每个组件的内容。

我想对提取组件进行负载测试,并保留一些搜索键,使我能够从数据库中恢复所有已发送的项目。我尝试过通过创建一个Javascript来尝试此操作,该Javascript在提取场景的开头调用以生成随机搜索键,并将其存储在Artillery的context中,然后在场景结束时调用另一个函数以恢复所有条目从数据库中。

我发现的问题是,炮兵在每个虚拟客户端中都运行该方案的一个副本,因此每次启动该方案时都调用该函数,最后只恢复一个条目。而且对数据库的调用发生在与发布后相同的场景中,所以我再次混合了性能。

我想要做的是在一个场景中生成搜索关键字,在另一个场景中运行帖子,然后在第三个场景中检索结果。我该怎么办?

此外,当我从数据库中检索结果时,我想将数量与要摄取的帖子数量进行比较。我找不到expect是否与函数调用中context返回的变量一起使用。这可能吗?

1 个答案:

答案 0 :(得分:0)

我认为这是不可能的。我一直在阅读有关炮兵脚本的文档和任何示例,但我看不到有任何方法可以将流“串接”在一起。