在groovy中检查响应头
我正在尝试测试响应标题是否包含X-Duration-MS文本。我很确定,如果X-Duration-MS不在头上,那么我检查assert的方式缺少主检查。你能帮我测试一下吗 这是我的代码:在groovy中检查响应头,groovy,soapui,Groovy,Soapui,我正在尝试测试响应标题是否包含X-Duration-MS文本。我很确定,如果X-Duration-MS不在头上,那么我检查assert的方式缺少主检查。你能帮我测试一下吗 这是我的代码: def httpResponseHeaders = context.testCase.testSteps["Testname"].testRequest.response.responseHeaders //log.info (httpResponseHeaders) httpRespo
def httpResponseHeaders = context.testCase.testSteps["Testname"].testRequest.response.responseHeaders
//log.info (httpResponseHeaders)
httpResponseHeaders.each
{
k,v ->
if(k=~"X-Duration-MS"){
assert k == "X-Duration-MS"
}
}
使用groovy脚本
您正在检查是否有一个X-Duration-MS
响应头,不管其值如何。然后可以使用httpResponseHeaders
上的keySet()
函数获取所有http头名称,然后使用contains()
检查所需头是否在列表中。因此,您可以尝试:
def httpResponseHeaders = context.testCase.testSteps["Testname"].testRequest.response.responseHeaders
assert httpResponseHeaders.keySet().contains("X-Duration-MS")
使用脚本断言
您还可以在请求中使用脚本断言
而不是Groovy
testStep来实现您的目标。在左下角的请求UI中有一个断言(0)
文本,单击它,然后使用断言面板中的+
按钮添加一个脚本断言
。然后,在这个脚本中,您可以执行与在Groovy testStep中相同的操作,而无需找到testStep来获取响应,因为在脚本断言中有messageExchange
对象,您可以使用它来获取当前请求、响应、http头的详细信息。。。因此,您可以简单地使用:
def httpResponseHeaders = messageExchange.getResponseHeaders()
assert httpResponseHeaders.keySet().contains("X-Duration-MS")
使用groovy脚本
您正在检查是否有一个X-Duration-MS
响应头,不管其值如何。然后可以使用httpResponseHeaders
上的keySet()
函数获取所有http头名称,然后使用contains()
检查所需头是否在列表中。因此,您可以尝试:
def httpResponseHeaders = context.testCase.testSteps["Testname"].testRequest.response.responseHeaders
assert httpResponseHeaders.keySet().contains("X-Duration-MS")
使用脚本断言
您还可以在请求中使用脚本断言
而不是Groovy
testStep来实现您的目标。在左下角的请求UI中有一个断言(0)
文本,单击它,然后使用断言面板中的+
按钮添加一个脚本断言
。然后,在这个脚本中,您可以执行与在Groovy testStep中相同的操作,而无需找到testStep来获取响应,因为在脚本断言中有messageExchange
对象,您可以使用它来获取当前请求、响应、http头的详细信息。。。因此,您可以简单地使用:
def httpResponseHeaders = messageExchange.getResponseHeaders()
assert httpResponseHeaders.keySet().contains("X-Duration-MS")