2014-10-16 28 views
0

我有一个简单的测试套件皂UI项目:为什么Linux上的java在“延迟”测试步骤中杀死Soap-UI的testrunner.sh?

  • 第1步:等待1分钟
  • 第2步:循环第1步

screenshot test case

我想从命令行运行testrunner.s h:

testrunner.sh -s"TestSuite" -f. test-soapui-project.xml 

在第一个测试步骤始终与下面的消息崩溃几秒钟后:

SoapUI 5.0.0 TestCase Runner 
21:31:19,441 INFO [DefaultSoapUICore] Creating new settings at [/usr/home/me/soapui-settings.xml] 
21:31:20,076 INFO [WsdlProject] Loaded project from [file:/usr/home/me/soapui-workdir/test-soapui-project.xml] 
21:31:20,219 INFO [SoapUITestCaseRunner] Running SoapUI tests in project [Test] 
21:31:20,219 INFO [SoapUITestCaseRunner] Running TestSuite [TestSuite], runType = SEQUENTIAL 
21:31:20,226 INFO [SoapUITestCaseRunner] Running SoapUI testcase [Test] 
21:31:20,227 INFO [SoapUITestCaseRunner] running step [Wait 1 Minute] 
/usr/home/me/SoapUI-5.0.0/bin/testrunner.sh: line 57: 18171 Killed     java $JAVA_OPTS -cp $SOAPUI_CLASSPATH com.eviware.soapui.tools.SoapUITestCaseRunner "[email protected]" 

我的问题:

有人可以复制吗? Delay不打算长时间使用?我还有什么可以等待,直到我在测试中完成我的下一个要求?

项目XML导入到皂UI:

<?xml version="1.0" encoding="UTF-8"?> 
<con:soapui-project activeEnvironment="Default" name="Test" resourceRoot="" soapui-version="5.0.0" xmlns:con="http://eviware.com/soapui/config"><con:settings/><con:testSuite name="TestSuite"><con:settings/><con:runType>SEQUENTIAL</con:runType><con:testCase failOnError="true" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="Test" searchProperties="true"><con:settings/><con:testStep type="delay" name="Wait 1 Minute"><con:settings/><con:config><delay>60000</delay></con:config></con:testStep><con:testStep type="goto" name="loop"><con:settings/><con:config xsi:type="con:GotoStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:condition><con:name>loop allways</con:name><con:type>XPATH</con:type><con:expression>0=0</con:expression><con:targetStep>Wait 1 Minute</con:targetStep></con:condition></con:config></con:testStep><con:setupScript/><con:tearDownScript/><con:properties/></con:testCase><con:properties/><con:setupScript/><con:tearDownScript/></con:testSuite><con:properties/><con:wssContainer/><con:oAuth2ProfileContainer/></con:soapui-project> 

+ + UPDATE:+ +

当我删除了 “循环” 的步骤,行为是完全一样的。 testrunner.sh在1分钟延迟结束之前崩溃。

+0

其实这不是一个完整的小例子。第二步不需要证明行为。 – Simon 2014-10-16 19:47:17

+0

相同的测试项目在soupUI前端的预期工作。 – Simon 2014-10-16 21:30:26

回答

0

注意,在条件转到步骤中,您提供了“条件XPath表达式”。 XPath是针对上一步的上下文执行的。在你的情况下,延迟步骤没有任何可以表示为XPath的上下文,因此testrunner失败。严格来说,这可能是SoapUI中的一个错误。

如果您希望(dis)证明这一点,您可以在Delay和Conditional Goto之间插入一些请求步骤,这将会有任何响应。

这确实是在SoapUI中引起延迟的首选方式(除Groovy脚本外)。

+0

好的,我会尽快测试。关于你的问题:我需要在两个测试步骤之间延迟;我还有什么其他可能性? – Simon 2014-10-16 21:27:51

+0

请注意,这只是一个简单的例子。在我的实际项目中,我总是在循环之前有一个soap请求。行为是一样的...... – Simon 2014-10-16 21:33:54

+0

确保生成响应的步骤在条件转到之前立即*。 – SiKing 2014-10-16 21:52:13