从SoapUI groovy脚本中的请求获取标头

从SoapUI groovy脚本中的请求获取标头,groovy,http-headers,soapui,Groovy,Http Headers,Soapui,我想从SoapUI请求中获取“Accept”头的值。然后我想将其存储在TestCase属性中 这就是我在Groovy脚本测试步骤中尝试做的: //Get Accept Header from request (if Accept Header does not exist default to empty string) def acceptHeader = context.testCase.getTestStepAt(0).testRequest.requestHeaders.get("Acc

我想从SoapUI请求中获取“Accept”头的值。然后我想将其存储在TestCase属性中

这就是我在Groovy脚本测试步骤中尝试做的:

//Get Accept Header from request (if Accept Header does not exist default to empty string)
def acceptHeader = context.testCase.getTestStepAt(0).testRequest.requestHeaders.get("Accept", "")

//Set Accept Header Value to current TestCase properties
testRunner.testCase.setPropertyValue("acceptHeaderSet", acceptHeader)
TestCase的第一个TestStep是REST请求,第二个TestStep是前面提到的脚本

每次运行TestCase时,都会设置默认值(似乎找不到任何头)

知道发生了什么吗?这是SoapUI工具中的错误吗


提前谢谢。

我会尝试使用属性解决这种情况。只需定义属性(例如,在项目级别),然后更改其值。就像这里描述的那样

这对我来说很有用: testRunner.getResults()[0].getRequestHeaders()[“接受”]


只有在运行整个测试用例时,这才会起作用,否则就没有结果了。可能您的方法遇到了类似的问题。

谢谢您的评论,但这对我来说不是一个合适的解决方案,因为:-我使用一个动态属性,自动为标题随机生成一个值。-在下一步中,我需要知道为标头设置了哪个值,以发出另一个具有相同值的请求。可能我不理解问题的复杂性,但您可以在请求之前设置属性值,将其转移到下一步,更改(或读取值)。不管怎么说,这是一个非常有趣的问题。回答得非常聪明。我更改了我的测试以遵循您建议的方法。谢谢