各リクエストは異なるIDである必要があるAPIエンドポイントがありますが、データベーステーブルの主キーのように、すべてのVUで共有される各反復のIDをグローバルかつ順次インクリメントする方法があります。
例:
request 1 : <id>400</id> VU :1
request 2 : <id>401</id> VU :1
request 1 : <id>402</id> VU :2
request 3 : <id>403</id> VU :1
request 4 : <id>404</id> VU :1
request 2 : <id>405</id> VU :2
request 3 : <id>406</id> VU :2
テスト全体で共有される変数を宣言する方法はありますか?SetupとInitはVUごとのものであり、ドキュメントに従ってデータを共有することはできません。
各VUは別々のJavaScriptVMで実行され、メモリはそれらの間で共有されないため、これは簡単には不可能です。詳細については、テストライフサイクルのドキュメントを参照してください。これは、テスト実行をk6インスタンスに分散できるようにするために行われるため、インスタンス間でデータを同期するには、外部ソリューションが必要になります。
採用できるアプローチの1つは、k6スクリプトがクエリして次のIDを取得できるWebサービスのIDを追跡し、インクリメントすることです。Redisはこの目的を十分に果たすことができます。アイデアについては、この関連する回答を参照してください。ただし、このようなソリューションは、テスト終了時のテストメトリックとテスト自体のパフォーマンスに影響を与えるため、理想的ではありませんが、より良いアプローチは見当たらないことに注意してください。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加