我在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, userequire "watir"
. error at line: 57
'需要 “的Watir-webdriver的” 已经过时。请用userequire“watir”.' –
对不起,我应该使用require“watir”。这会有帮助吗? 我曾尝试过,但得到了同样的错误。 不介意,请您详细说明答案。 – hfaraz
您现在可能需要同时显示groovy脚本和ruby脚本以获得任何帮助。 – Rao