2016-11-14 114 views
0

我在Soap UI中运行一个测试套件,我试图从groovy脚本调用一个ruby脚本。该步骤已成功执行,但脚本仍然无法移动到下一步,因为它在运行后会出现此错误。 已经在谷歌搜索了这个错误,但没有找到合适的解决方案。而且这个错误本身并不是很有说服力。运行ruby脚本时出现以下错误

将不胜感激任何形式的帮助。 下面是正在调用“ap-v4-batch_DEV_QA.rb”ruby脚本的groovy脚本。 这个ruby脚本打开浏览器并成功执行任务并关闭浏览器。我们预计该步骤将被标记为“通过”,以便它可以继续进行下一步,但它会在底部提到错误。

Groovy脚本:

String script = "webdriver/v4/ap-v4-batch_DEV_QA.rb"; 
String argv0 = com.eviware.soapui.SoapUI.globalProperties.getPropertyValue("GLOB_DefaultIP"); 
String argv1 = "com.wupay.batch.process.tasks.PaymentFileParsingTask_RunOnce"; 
String argv2 = ""; 
String argv3 = ""; 
String argv4 = ""; 

/* Nothing needs to be modified below */ 
String commandLine = "ruby " + com.eviware.soapui.SoapUI.globalProperties.getPropertyValue("GLOB_ScriptLocation") + "/" + script + " " + argv0 + " " + argv1 + " " + argv2 + " " + argv3 + " " + argv4; 
log.info("Running command line: " + commandLine); 

java.lang.Runtime runtime = java.lang.Runtime.getRuntime(); 
java.lang.Process p = runtime.exec(commandLine); 

def propertyStep = testRunner.testCase.getTestStepByName("Properties"); 
java.io.BufferedReader stdInput = 
    new java.io.BufferedReader(new java.io.InputStreamReader(p.getInputStream())); 
java.io.BufferedReader stdError = 
    new java.io.BufferedReader(new java.io.InputStreamReader(p.getErrorStream())); 
String s = null; 
String e = null; 
StringBuffer eb = new StringBuffer(); 
while ((e = stdError.readLine()) != null) { 
    eb.append(e); 
    log.error("Ruby: " + e); 
} 
while ((s = stdInput.readLine()) != null) { 
    log.info("Ruby: " + s); 
    if(s.startsWith("@prop")) { 
     String[] propSplit = s.split(":", 3); 
     testRunner.testCase.setPropertyValue(propSplit[1], propSplit[2]); 
    } 
} 
p.waitFor(); 

log.info("Ruby: exit value " + p.exitValue()); 
if(eb.length() > 0) { 
    throw new Exception(eb.toString()); 
} 

错误:

java.lang.Exception: C:/Ruby23/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:133:in require': require "watir-webdriver" is deprecated. Please, use require "watir" . java.lang.Exception: C:/Ruby23/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:133:in require': require "watir-webdriver" is deprecated. Please, use require "watir" . error at line: 57

+5

'需要 “的Watir-webdriver的” 已经过时。请用userequire“watir”.' –

+0

对不起,我应该使用require“watir”。这会有帮助吗? 我曾尝试过,但得到了同样的错误。 不介意,请您详细说明答案。 – hfaraz

+0

您现在可能需要同时显示groovy脚本和ruby脚本以获得任何帮助。 – Rao

回答

0

我终于解决了这个问题。 问题在于ruby脚本不接受要求“watir-webdriver”。

我安装了watir并更换了要求“watir-webdriver”并要求“watir”。 现在我没有得到上面提到的错误。

谢谢反正!

问候, 法拉兹