我的要求是在我的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并获取每个测试步骤的消息大小值,并将这些数据插入到数据库中。
我在这个要求的第二部分没有问题。 通过这种方式,我可以获得测试步骤的消息大小。
是否有类似的东西可用于获取特定测试步骤的响应计数?
答案 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
希望它有所帮助,