我试图测试响应头包含X-Duration-MS文本。我非常确定如果X-Duration-MS不在标题上,我检查断言的方式是缺少主要检查。你能帮我测试一下吗?
这是我的代码:
Country
答案 0 :(得分:4)
您正在检查是否有一个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")