2015-02-06 2 views
0

Я написал отличный скрипт для запуска параллельных проектов в SoapUI и разместил его на тестовом этапе в проекте под названием «Project1». Я могу запускать проекты параллельно, но когда я использую пакетный файл для планирования выполнения, он терпит неудачу. Это говоритВыполнение параллельных проектов в SoapUI

"Cannot get property 'projects' on null object"

для линии, определяющей 'project1'. Тем не менее он выполняет первый проект, поскольку строчный скрипт находится в «Project1».

Отлич- скрипт для параллельного выполнения проектов:

import com.eviware.soapui.model.propertyexpansion.DefaultPropertyExpansionContext 

def project1=testRunner.testCase.testSuite.project.workspace.projects["Project1"] 
def project2=testRunner.testCase.testSuite.project.workspace.projects["Project2"] 

DefaultPropertyExpansionContext con1=new DefaultPropertyExpansionContext(project1) 
DefaultPropertyExpansionContext con2=new DefaultPropertyExpansionContext(project2) 
project1.run(con1,true) 
project2.run(con2,true)  
+0

При запуске проекта, как '' batch' с помощью loadtestrunner.bat' указывается только один проект ... так что 'workspace' он не доступен запуском скрипта в пакетном режиме. \t Можете ли вы поделиться своей командой? – albciff

+0

«C: \ SmartBear \ SoapUI-Pro-5.1.2 \ bin \ testrunner.bat -sServiceAPIs -j -f" D: \ SoapUI Reports \ S2S_APIs "-o -g -R" TestSuite Report "-EDefault -ID: \ NAMI \ OnlineBankTransfer.xml "- это команда в пакетном файле. –

+0

Нет ли способа сделать это через пакетный файл? –

ответ

0

При запуске SOAPUI проектов с использованием testrunner.bat вы отметить, что запускать проекты по отдельности, так что вы не можете получить доступ к testRunner.testCase.testSuite.project.workspace собственности.

Глядя на testrunner.bat properties on documentation, похоже, что нет параметров, соответствующих вашим требованиям.

Может быть, я ошибаюсь, и есть что-то для этого случая (я не эксперт, используя testrunner.bat), однако возможно обходной путь для запуска обоих проектов параллельно, чтобы избежать называть ваш groovy testStep вместо вызова testrunner.bat дважды, указав правильный проект xml файл для каждого вызова.

Другим возможным обходным решением (которое в основном является тем же самым) является изменение вашего сценария groovy для выполнения обеих команд (вместо того, чтобы вы вызываете его из командной строки). Таким образом, вы выполняете проект testrunner.bat с последующим сценарием groovy testStep, который выполняет другие проекты. Попробуйте изменить свой заводной скрипт что-то вроде:

def project1 = ["$SOAPUI_HOME/testrunner.bat","-sServiceAPIs","-j","-f",..].execute() 
def project2 = ["$SOAPUI_HOME/testrunner.bat","-sServiceAPIs","-j","-f",..].execute() 

Обратите внимание, что строка необходима для каждых паров в вашей команде и execute() не ждать команд конца, так что ваши проекты работают параллельно.

Если вы хотите получить дополнительную информацию о выполнении groovy, ознакомьтесь с documentation.

Надеется, что это помогает,

+0

Но я намерен параллельно выполнять проекты. Итак, если я не использую мой groovy-скрипт, то можно ли каким-либо образом параллельно выполнять пакетные файлы для проектов? –

+0

Выполнение обоих проектов с помощью командной строки напрямую, может быть обходным путем ... они работают в parelel, возможно, существует минимальная задержка между каждым вызовом, но ничего важного. В любом случае, я даю вам еще одну возможность, которая в принципе одинакова (запуск обеих команд), но с использованием «groovy testStep», если вам это комфортно.: – albciff

+0

Я сделал то, что вы сказали, и это сработало, но это будет каким-либо образом повлиять на лицензию SoapUI Pro? –

Смежные вопросы