Как запустить TestCase в отдельном TestSuite С одним и тем же контекстом - PullRequest
0 голосов
/ 08 мая 2019

В моем проекте SoapUI у меня есть два набора тестов - CommonUtils и TestProper. Я хочу вызвать тестовый пример CommonUtils-> UtilA из TestProper-> TestA, но мне нужен общий контекст между этими двумя тестовыми примерами. https://imgur.com/a/LdzWIQ0

Сначала я попытался добавить тестовый шаг «Run TestCase» в TestA. Но хотя я мог передавать свойства тестового примера в UtilA, «Запуск TestCase» не позволил мне перенести мой контекст в UtilA.

Затем я попытался сделать это, добавив следующий скрипт Groovy в TestA:

def project = context.testCase.testSuite.project
def testCase = project.getTestSuiteByName('CommonUtils').getTestCaseByName('UtilA')
def contextMap = new StringToObjectMap(context)
testCase.run(contextMap, false)

Хотя этот сценарий позволил мне передать копию моего контекста в UtilA, UtilA все еще не удалось записать в мой контекст.

Теперь я не знаю, как этого добиться. Как мне выполнить UtilA из TestA, разделяя переменные между ними?

1 Ответ

0 голосов
/ 09 мая 2019

Если вы установите переменные, которые вы хотите передать в качестве переменных контекста, это должно работать.

Я сделал это в ReadyAPI, но я ожидаю, что он будет работать так же в SoapUI.

Я создал два TestSuites.Оба содержат один TestCase.

Целевой TestCase содержит только тестовый шаг свойств, в котором я пытаюсь установить переменную, а затем один тестовый шаг Groovy Script со следующим кодом:

testRunner.testCase.getTestStepByName("Properties").setPropertyValue("varname",context.variable)

Вдругой TestSuite / TestCase У меня есть один тестовый шаг Groovy Script, содержащий только две строки кода:

context.variable = "String set in testsuite StartTestCaseInAnotherTestSuite 2"
testRunner.testCase.testSuite.project.getTestSuiteByName("TestSuite Name").getTestCaseByName("TestCase Name").run(new com.eviware.soapui.support.types.StringToObjectMap(context),false)
// Remember to adjust the names of TestSuite and TestCase to suit your needs.

Теперь, когда я запускаю последний, я устанавливаю значение context.variable ипри запуске второго тестового сценария эта переменная контекста задается в шаге тестов свойств.

...