我有一个 api 端点,每个请求都需要一个不同的 id ,但是如何为所有 VU 共享的每个迭代创建一个 id 全局和顺序增量,就像数据库表上的主键一样。前任:request 1 : <id>400</id> VU :1request 2 : <id>401</id> VU :1request 1 : <id>402</id> VU :2request 3 : <id>403</id> VU :1request 4 : <id>404</id> VU :1request 2 : <id>405</id> VU :2request 3 : <id>406</id> VU :2有没有办法声明一个由整个测试共享的变量?Setup 和 Init 是针对每个 VU 的,根据文档不能共享数据。
2 回答
跃然一笑
TA贡献1826条经验 获得超6个赞
对于任何寻找生成序列号的方法的人。从 v0.0.34 版本开始,k6/execution被引入,它有iterationInTest一个整数属性,描述为:
场景中当前迭代的唯一且从零开始的序号。它在所有 k6 执行模式中都是独一无二的——在本地、云和分布式/分段测试运行中。然而,虽然每个实例在云/分布式测试中都会获得非重叠的索引值,但它们可能会以不同的速度迭代它们,因此这些值不会在它们之间是连续的。
这可以在您的测试代码中用于生成序列号,例如:
import exec from 'k6/execution':
export default function () {
const url = `https://foo.bar/${exec.scenario.iterationInTest}`;
http.get(url)
}
我能够为测试的每次迭代增加一个数字。
添加回答
举报
0/150
提交
取消
