nGrinder でパフォーマンス テストを実行しています。複数のテスト スクリプトを並行して実行したいユース ケースがあります。
彼らの Web サイトでは、1 人のユーザーが一度に 1 つのテストしか実行できないと記載されています。そのため、2 人のユーザーをセットアップしましたが、同じ動作が見られます。1 つのテスト スクリプトのみが実行され、他のスクリプトは READY 状態で待機しています。
nGrinder で複数のテスト スクリプトを並行して実行する方法はありますか?
nGrinder でパフォーマンス テストを実行しています。複数のテスト スクリプトを並行して実行したいユース ケースがあります。
彼らの Web サイトでは、1 人のユーザーが一度に 1 つのテストしか実行できないと記載されています。そのため、2 人のユーザーをセットアップしましたが、同じ動作が見られます。1 つのテスト スクリプトのみが実行され、他のスクリプトは READY 状態で待機しています。
nGrinder で複数のテスト スクリプトを並行して実行する方法はありますか?
複数のテストを同時に実行できるのは、これらのテストが異なるユーザーによって実行されるように送信された場合のみです。
両方を実行するのに十分なエージェントがないと思われます。
1 つのエージェントのみを使用して、多くのスクリプトを実行できます。スクリプトではなく、トランザクション グループに基づいてエージェントを分割します。
グラインダーの内部には、parallel.py があります。スクリプトを並行して実行するためにこれを使用したことがあります。
このリンクを参照してくださいhttps://github.com/DealerDotCom/grinder/blob/master/grinder/examples/parallel.py
from net.grinder.script.Grinder import grinder
scripts = ["TestScript1", "TestScript2", "TestScript3"]
for script in scripts: exec("import %s" % script)
def createTestRunner(script): exec("x = %s.TestRunner()" % script) return x
クラス TestRunner: def init (self): tid = グラインダー.threadNumber
if tid % 4 == 2:
self.testRunner = createTestRunner(scripts[1])
elif tid % 4 == 3:
self.testRunner = createTestRunner(scripts[2])
else:
self.testRunner = createTestRunner(scripts[0])
# This method is called for every run.
def __call__(self):
self.testRunner()