在groovy中检查Response头

时间:2016-11-03 15:54:11

标签: groovy soapui

我试图测试响应头包含X-Duration-MS文本。我非常确定如果X-Duration-MS不在标题上,我检查断言的方式是缺少主要检查。你能帮我测试一下吗?

这是我的代码:

Country

1 个答案:

答案 0 :(得分:4)

使用groovy脚本

您正在检查是否有一个X-Duration-MS响应标头,尽管它的值。然后,您可以使用keySet()上的httpResponseHeaders函数获取所有http标头名称,然后使用contains()检查所需的标头是否在列表中。所以你可以试试:

def httpResponseHeaders = context.testCase.testSteps["Testname"].testRequest.response.responseHeaders
assert httpResponseHeaders.keySet().contains("X-Duration-MS")

使用脚本断言

您还可以在请求中使用Script assertion而不是Groovy testStep来实现目标。在左下角的请求用户界面中,有一个Assertion(0)文字,点击它,然后使用“断言”面板中的+按钮添加Script Assertion。然后在这个脚本中,您可以在 Groovy testStep中执行相同操作,而无需找到testStep来获取响应,因为在Script Assertion中有messageExchange上下文中的对象,您可以使用它来获取当前请求,响应,http标头的详细信息......所以您可以使用:

def httpResponseHeaders = messageExchange.getResponseHeaders() 
assert httpResponseHeaders.keySet().contains("X-Duration-MS")

enter image description here