我有多個Environment和大量的測試用例,但並非所有的測試用例都需要在所有環境中運行。有沒有一種方法可以根據選定的環境從測試套件中只運行特定的測試用例。如何在SoapUI中選定的環境中運行特定的測試用例
對於實例 如果我選擇環境1,它將運行下面的測試案例
TC0001
TC0002
TC0003
TC0004
TC0005
如果我選擇環境2,它只能運行下面的測試案例
TC0001
TC0003
TC0005
我有多個Environment和大量的測試用例,但並非所有的測試用例都需要在所有環境中運行。有沒有一種方法可以根據選定的環境從測試套件中只運行特定的測試用例。如何在SoapUI中選定的環境中運行特定的測試用例
對於實例 如果我選擇環境1,它將運行下面的測試案例
TC0001
TC0002
TC0003
TC0004
TC0005
如果我選擇環境2,它只能運行下面的測試案例
TC0001
TC0003
TC0005
可以有不同解決方案來實現這一點,因爲你有多個環境,即使用專業軟件。
我將實現使用Test Suite
的安裝腳本解決方案:
Test Suite
級定製屬性。使用與您的環境名稱相同的名稱。例如,DEV
是定義的環境,與測試套件屬性名稱相同,並提供用逗號分隔的值列表作爲該屬性的值,如TC1,TC2等,Setup Script
爲測試套件並執行腳本使或根據環境及資產值禁用測試用例測試套件的安裝腳本
/**
* This is soapui's Setup Script
* which enables/disables required
* test cases based on the user list
* for that specific environment
**/
def disableTestCase(testCaze) {
testCaze.disabled = true
}
def enableTestCase(testCaze) {
testCaze.disabled = false
}
def getEnvironmentSpecificList(def testSuite) {
def currentEnv = testSuite.project.activeEnvironment.NAME
def enableList = testSuite.getPropertyValue(currentEnv).split(',').collect { it.trim()}
log.info "List of test for enable: ${enableList}"
enableList
}
def userList = getEnvironmentSpecificList(testSuite)
testSuite.testCaseList.each { kase ->
if (userList.contains(kase.name)) {
enableTestCase(kase)
} else {
disableTestCase(kase)
}
}
其他的方法實現這一點的方法是使用ReadyAPI的Event
功能,您可以使用TestRunListener.beforeRun()
並篩選測試用例是否執行或忽略。
編輯: 如果使用的是ReadyAPI
,那麼你就可以將新的功能,稱爲tag
測試用例。測試用例可以使用多個值進行標記,您可以使用特定的標記執行測試。在這種情況下,您可能不需要擁有與開源版本相同的setup script
。有關更多詳細信息,請參閱documentation。 此解決方案僅針對Pro
軟件,開放源代碼版本具有此tag
功能。
歡迎來到Stack Overflow,請花點時間關注[Stack Overflow tour](http://stackoverflow.com/tour)並閱讀[如何問一個好問題?](http:// stackoverflow .com/help/how-to-ask)同時向我們提供您爲您的問題編寫的相關代碼(您也可以閱讀[如何創建最小,完整和可驗證示例](http://stackoverflow.com/help/mcve)) –