2 回答

TA貢獻(xiàn)1826條經(jīng)驗(yàn) 獲得超6個(gè)贊
對(duì)于任何尋找生成序列號(hào)的方法的人。從 v0.0.34 版本開(kāi)始,k6/execution被引入,它有iterationInTest一個(gè)整數(shù)屬性,描述為:
場(chǎng)景中當(dāng)前迭代的唯一且從零開(kāi)始的序號(hào)。它在所有 k6 執(zhí)行模式中都是獨(dú)一無(wú)二的——在本地、云和分布式/分段測(cè)試運(yùn)行中。然而,雖然每個(gè)實(shí)例在云/分布式測(cè)試中都會(huì)獲得非重疊的索引值,但它們可能會(huì)以不同的速度迭代它們,因此這些值不會(huì)在它們之間是連續(xù)的。
這可以在您的測(cè)試代碼中用于生成序列號(hào),例如:
import exec from 'k6/execution':
export default function () {
const url = `https://foo.bar/${exec.scenario.iterationInTest}`;
http.get(url)
}
我能夠?yàn)闇y(cè)試的每次迭代增加一個(gè)數(shù)字。

TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超10個(gè)贊
這并不容易實(shí)現(xiàn),因?yàn)槊總€(gè) VU 都在單獨(dú)的 JavaScript VM 中運(yùn)行,并且它們之間不共享內(nèi)存。有關(guān)詳細(xì)信息,請(qǐng)參閱測(cè)試生命周期文檔。這樣做是為了允許測(cè)試運(yùn)行分布在 k6 實(shí)例之間,因此在它們之間同步數(shù)據(jù)將需要外部解決方案。
您可以采用的一種方法是跟蹤并增加 Web 服務(wù)中的 ID,您的 k6 腳本可以查詢?cè)?ID 以從中獲取下一個(gè) ID。Redis 可以很好地滿足這個(gè)目的,請(qǐng)參閱此相關(guān)答案以獲取想法。但請(qǐng)注意,任何此類解決方案都會(huì)影響您的測(cè)試結(jié)束測(cè)試指標(biāo)和測(cè)試本身的性能,因此它并不理想,但我沒(méi)有看到更好的方法。
添加回答
舉報(bào)