2016-11-14 2 views
0

Я запускаю тестовый набор в пользовательском интерфейсе Soap, где я пытаюсь вызвать один скрипт ruby ​​из groovy-скрипта. Шаг выполняется успешно, но сценарий не может перейти к следующему шагу, поскольку он дает эту ошибку после запуска. Искали в google об этой ошибке, но не нашли правильного разрешения. Более того, сама ошибка не очень объяснима.Ошибка ниже при запуске ruby ​​script

Поблагодарите любую помощь. Ниже приведен скрипт groovy, который вызывает рубиновый скрипт ap-v4-batch_DEV_QA.rb. Этот рубиновый скрипт открывает браузер и успешно выполняет задачу и закрывает браузер. Мы ожидаем, что шаг будет отмечен как «Пройден», чтобы он мог перейти к следующему шагу, но он дает ошибку, указанную внизу.

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

Теперь вам может понадобиться показать как строгий скрипт, так и рубиновый скрипт, чтобы получить любую помощь. – Rao

ответ

0

я, наконец, решить эту проблему. Проблема заключалась в том, что Ruby-скрипт не принимал запрос «watir-webdriver».

Установленный watir и замена требуют «watir-webdriver» с требованием «watir». сейчас я не получаю вышеупомянутую ошибку.

Спасибо в любом случае!

С уважением, Faraz

Смежные вопросы