如何获取SOAP UI测试步骤的响应计数

时间:2015-07-03 05:29:30

标签: soap groovy soapui

我的要求是在我的SOAPUI测试用例中获取每个测试步骤的消息大小和响应计数,并将其存储在oracle数据库库中。

第一部分: 我在测试步骤之后使用groovy脚本来获取SOAP UI测试步骤的消息大小。 然后我将值存储在名为reponseData的对象中 该对象存储在一个数组中。

def resArray = context.getProperty("RES_DATA_ARRAY")
def resData = context.getProperty("RESPONSE_DATA")
long messageSize = testRunner.results[testRunner.results.size()-1].getMessageExchanges().size.get(0)
responseData.set.xxxxxxx //Some more values set in responseData object
responseData.setMessageSize(messageSize)
resArray.add(responseData)

第二部分: 稍后在测试用例的拆解脚本中,我将遍历resArray并获取每个测试步骤的消息大小值,并将这些数据插入到数据库中。

我在这个要求的第二部分没有问题。 通过这种方式,我可以获得测试步骤的消息大小。

是否有类似的东西可用于获取特定测试步骤的响应计数?

1 个答案:

答案 0 :(得分:0)

我认为您使用此脚本作为heroku config:set DATABASE_URL=postgres://myusername:mypassword@111.111.111.11:5542/myproject_production 的{​​{1}},tearDown script结束时会执行此脚本。

此脚本不计算您的SOAPUI TestCase上的所有请求和响应的大小,它只计算您的TestCase之一的大小,而不仅仅计算您{000}中的最后一个TestCase,因为您正在访问上一个结果:

TestSteps

无论如何,如果您想将方法应用于特定testCase的响应,您可以在testRunner.results[testRunner.results.size()-1]内定义一个闭包,并使用它来获取特定的响应大小:

TestStep

我认为没有其他方法不会迭代所有结果列表,因为没有方法可以获取tearDown script的特定结果,例如通过名称或其他引用。

<强>更新

在您更改问题后,实际上我并不完全了解您对#34;响应次数的要求&#34;因为如果您想要访问您的回复以使用它做任何事情,// define the closure def getResponseSizeByTestStepName = { testStepName -> // for each result def resp = testRunner.results.find { // compare the testStep name an return the object // for the desired one if(it.testStep.name.equalsIgnoreCase(testStepName)){ return it } } return resp.size } log.info getResponseSizeByTestStepName('Test Request') 会有一个回复,您可以按如下方式更改脚本:

testStep

希望它有所帮助,