web-dev-qa-db-ja.com

Groovyスクリプトのテストステップから他のテストケースで特定のテストステップを実行することは可能ですか?

Groovyスクリプトのテストステップから他のテストケースで特定のテストステップを実行することは可能ですか?

これを行う方法がわかりません

ありがとうございました

9
Mihail

はい、可能です。グルーヴィーなステップから、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)

これをチェックしてください リンク それはいくつかの助けになるかもしれません...

20

私のように、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)
5
Christian Gibbs

私はパーティーに少し遅れていることに気づきましたが、同様の問題の解決策を投稿することで、このトピックについてさらに詳しく説明しようと思いました。これが将来誰かに役立つことを願っています。ソリューションは、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として必要な場合。

2
Castinho