2014-02-26 147 views

回答

12

是的,它是可能的。在groovy步驟中,您可以訪問testRunner,您可以使用它來訪問soapUI中的其他所有內容,並且在另一個測試用例中運行測試步驟。

所以,這個代碼是從上我的我的頭......

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) 

看看這個link它可能有一定的幫助......

1

我意識到我對派對有點遲到,但是我想我會通過發佈我的解決方案來解決類似問題來擴展這個話題。希望這有助於未來的人。解決方案可以擴展到覆蓋兩個以上的測試步驟,測試用例和/或項目。這也是我在這裏的第一篇文章,所以請提前原諒我的任何noob錯誤。不是最漂亮的解決方案。它可能有一些冗餘變量。所有代碼塊都包含整個解決方案。

問題:我想從兩個不同的測試步驟中獲取響應,每個測試步驟都在同一個工作區中的兩個差異項目中進行。得到它了?大!

SOLUTION:

變量的第一個項目

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" 

變量第二個項目

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" 

訪問通用測試步驟名稱一

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) 

運行一般測試步驟名一個

def runner = null 
runner = firstTestStep.run(testRunner, context) 

def firstTestStepResp = runner.getResponseContent() 
runner = null 

打印響應登錄

log.info(firstTestStepResp) 

同樣的事情第二測試步驟

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而不是字符串。

3

對於我們這些像我一樣正在尋找當前版本的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) 
相關問題