我在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
答案 0 :(得分:0)
我终于解决了这个问题。 问题是ruby脚本不接受要求“watir-webdriver”。
我安装了watir并用require“watir”替换了需要“watir-webdriver”。 现在我没有得到上面提到的错误。
非常感谢!
此致 法拉兹