Groovyスクリプトのテストステップから他のテストケースで特定のテストステップを実行することは可能ですか?
これを行う方法がわかりません
ありがとうございました
はい、可能です。グルーヴィーなステップから、soapUIの他のすべてにアクセスするために使用できるtestRunnerにアクセスでき、別のテストケースでテストステップを実行できます。
だから、このコードは私の頭の上からです...
def tCase = testRunner.testCase.testSuite.project.testSuites["Name of the other test suite"].testCases["name of test case you want to access"]
または
def tCase = testRunner.testCase.testSuite.testCases["Name of test cases"]
def tStep = tCase.testSteps["test step you want to run"]
tStep.run(testRunner, context)
これをチェックしてください リンク それはいくつかの助けになるかもしれません...
私のように、Ready!APIの現在のバージョンのコードを探していた私たちのために
def testStep = testRunner.testCase.testSuite.project.getTestSuiteByName("[OTHER_TEST_SUITE_NAME]").getTestCaseByName("[OTHER_TEST_CASE_NAME]").getTestStepByName("[OTHER_TEST_STEP_NAME]")
testStep.run(testRunner, context)
私はパーティーに少し遅れていることに気づきましたが、同様の問題の解決策を投稿することで、このトピックについてさらに詳しく説明しようと思いました。これが将来誰かに役立つことを願っています。ソリューションは、3つ以上のテストステップ、テストケース、および/またはプロジェクトをカバーするように拡張できます。これはここでの私の最初の投稿でもありますので、noobエラーがあれば事前に失礼します。最もきれいな解決策でもありません。いくつかの冗長な変数がある場合があります。すべてのコードブロックがソリューション全体を構成します。
問題:同じワークスペース内の2つのdiffプロジェクトで、それぞれ異なるテストケースの2つの異なるテストステップから応答を取得したいのですが、わかりましたか?素晴らしいです!
解決策:
最初のプロジェクトの変数
String firstProjName = "Generic Project One"
String firstProjTestSuiteName= "Generic Test Suite Name One"
String firstProjTestCaseName = "Generic Test Case Name One"
String firstProjTestStepName= "Generic Test Step Name One"
2番目のプロジェクトの変数
String secondProjName= "Generic Project Two"
String secondProjTestSuiteName = "Generic Test Suite Name Two"
String secondProjTestCaseName= "Generic Test Case Name Two"
String secondProjTestStepName= "Generic Test Step Name Two"
汎用テストステップ名1にアクセス
def firstProj= null
def workspace = testRunner.testCase.testSuite.project.getWorkspace();
firstProj= workspace.getProjectByName(firstProjName)
def firstTestCase = firstProj.testSuites[firstProjTestSuiteName].testCases[firstProjTestCaseName ]
def firstTestStep = firstTestCase.getTestStepByName(firstProjTestStepName)
一般的なテストステップ名1を実行します
def runner = null
runner = firstTestStep.run(testRunner, context)
def firstTestStepResp = runner.getResponseContent()
runner = null
ログへの応答を出力します
log.info(firstTestStepResp)
2番目のテストステップでも同じです
def secondProj= null
secondProj= workspace.getProjectByName(secondProjName)
def secondTestCase = secondProj.testSuites[secondProjTestSuiteName ].testCases[secondProjTestCaseName]
def secondTestStep = secondTestCase.getTestStepByName(secondProjTestStepName)
runner = secondTestStep.run(testRunner, context)
def secondTestStepResp = runner.getResponseContent()
log.info(secondTestStepResp)
これで、両方の応答に文字列としてアクセスできるようになり、好きなように試すことができます。比較、トークン化など。
getResponseContentAsXml()
応答が文字列ではなくxmlとして必要な場合。