我目前有一个断言脚本,它将响应中的值与设定值相匹配。见下文:
^(?=(.*\d){8})[a-zA-Z\d]{8,20}$
我希望它能够匹配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
值在27.06和27.16之间,我需要断言为真。
目前,断言代码将字段total-premium
中的数值与total-premium
中的三个值匹配。
但是,即使字段matches("(0|27.11|0)\\d*")
中的值为0.05加上或减去该值,我也不希望输入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
。
为了简要概述,我有大约1000个测试用例,我使用Excel为每个测试用例创建代码和断言,然后导入到SoapUI中。所以我根据Excel算法输入的值自动匹配脚本。
答案 0 :(得分:1)
您可以使用JUnit public 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)