2016-12-28 1 views
0

В настоящее время у меня есть сценарий утверждения, который соответствует значению от ответа к установленному значению. см. ниже:SoapUI Assertion для сопоставления значения поля в пределах 0,05 с обеих сторон

// get the xml response            
def response = messageExchange.getResponseContent()             
// parse it            
def xml = new XmlSlurper().parseText(response)            
// find your node by name            
def node = xml.'**'.find { it.name() == 'total-premium' }            
// assert            
assert node.toString().matches("(0|27.11|0)\\d*"), 'Expected Result: 0 or 27.11 or 0 Actual Result: ' + node  

То, что я хотел бы сделать, это совместить между значениями 0.05 ниже и выше. Поэтому для этого конкретного сценария мне нужно, чтобы утверждение было истинным, если значение total-premium находится где угодно от 27.06 и 27.16.

В настоящее время код утверждения соответствует цифровому значению, которое находится в поле total-premium, до трех значений в matches("(0|27.11|0)\\d*").

Однако вместо меня ввод 11 значений total-premium может быть, я хочу линию assert node.toString().matches("(0|27.11|0)\\d*"), 'Expected Result: 0 or 27.11 or 0 Actual Result: ' + node пройти, даже если значение в поле total-premium составляет 0,05 плюс или минус значение, которое я вручную ввести в этот сценарий. который для этого примера равен 27.11.

Для краткого обзора у меня есть ~ 1000 тестовых примеров, и я использую Excel для создания кода и утверждений для каждого тестового примера, который затем импортирую в SoapUI. Таким образом, я автоматически сопоставляю скрипт в зависимости от того, какое значение ввел алгоритм Excel.

+0

Можете ли вы показать, что представляет собой вход и что происходит с вашим утверждением? На данный момент это не совсем понятно. – Rao

ответ

1

Вы можете использовать JUnitpublic static void assertEquals(double expected, double actual, double delta).

import org.junit.Assert 
// ... your code goes here ... 
// new assert 
if(node.toDouble() != 0.0) 
    Assert.assertEquals(27.11, node.toDouble(), 0.05) 
+0

Добавил код и получил эту ошибку 'Нет сигнатуры метода: static java.lang.Double.parseDouble() применим для типов аргументов: (groovy.util.slurpersupport.NodeChild) значения: [35.7] Возможные решения: parseDouble (java .lang.String) ' – Ross

+0

@Ross выглядит так, как вы можете использовать только' .toDouble() '- см. мою коррекцию. – SiKing

+0

Большое спасибо – Ross

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