【发布时间】:2017-03-28 04:45:05
【问题描述】:
我正在 Soap UI 中运行一个测试套件,我试图从 groovy 脚本中调用一个 ruby 脚本。该步骤已成功执行,但脚本仍然无法继续执行下一步,因为它在运行后会出现此错误。 已在 google 中搜索过此错误,但没有找到合适的解决方案。此外,错误本身也不是很容易解释。
将不胜感激任何形式的帮助。 下面是调用“ap-v4-batch_DEV_QA.rb”红宝石脚本的 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, userequire "watir ". java.lang.Exception: C:/Ruby23/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:133:inrequire':require "watir-webdriver"已弃用。请使用require "watir"。第 57 行错误
【问题讨论】:
-
require "watir-webdriver"is deprecated. Please, userequire "watir". -
对不起,我应该使用 require "watir"。那会有帮助吗?我以前什至尝试过,但得到了同样的错误。不介意,请您详细说明答案。
-
您现在可能需要同时显示 groovy 脚本和 ruby 脚本以获得任何帮助。
-
已添加 groovy 脚本供您参考
标签: ruby groovy rubygems soapui watir-webdriver