运行ruby脚本时出现以下错误

时间:2016-11-14 14:04:19

标签: ruby groovy rubygems soapui watir-webdriver

我在Soap UI中运行测试套件,我试图从groovy脚本中调用一个ruby脚本。该步骤已成功执行,但脚本仍然无法继续执行下一步,因为它在运行后出现此错误。 已在谷歌搜索此错误,但未找到适当的解决方案。此外,错误本身并不十分解释。

会感激任何帮助。 下面是groovy脚本,它正在调用" ap-v4-batch_DEV_QA.rb"红宝石脚本。 此ruby脚本打开浏览器并成功执行任务并关闭浏览器。我们希望将步骤标记为Passed,以便它可以继续进行下一步,但它会给出底部提到的错误。

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&#34 ; is deprecated. Please, use要求" watir" . java.lang.Exception: C:/Ruby23/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:133:in要求':require "watir-webdriver"已被弃用。请使用require "watir"。行错误:57

1 个答案:

答案 0 :(得分:0)

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

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

非常感谢!

此致 法拉兹