1

我在soapUI 中有一个登录请求,它在响应标头中返回一个令牌。

使用 groovy 脚本:

       def value = testRunner.testCase.testSteps["Login"].testRequest.response.responseHeaders     ["Set-Cookie"]
   re = /(token=[A-Za-z0-9]+)/
          matcher = ( value =~ re )
        def loginToken = matcher[0][0]

           testRunner.testCase.setPropertyValue("Token", "$loginToken")

我已经隔离了令牌,但现在我需要将其转移到新请求中。

在我有这个请求的原始请求行中,我有:

Cookie: ASP.NET_SessionId=c4or1i45pfafgn55mwt0im45; ASPSESSIONIDQATCRRQQ=LCHPHGHDGCFKNABDBCHCBEBG; ASPSESSIONIDSAQCSRQQ=OICNPHKCGIMLOANJEIIDPIBG; FleetCommon=ReadOnly=0; FleetCustomerLogin=AutoRefresh=3&VehicleFilter=0&VehicleFilterName=&CanImport=True&IsSupervisor=True&UserName=Leaselink+Dev+1&HasOpMaint=2&FranchiseFilter=&CustomerID=161&CustomerName=ALD&EMail=leaselink%2Ddev%40ebbon%2Ddacs%2Ecom&UseLookupCodes=False&OperatorInitials=LD&ReadOnly=0&OperatorID=%7B952E5028%2D38A5%2D454B%2DB65B%2D686507C00B19%7D; FleetLogin=CSOptions=0&Operator=Leaselink+Dev+1&SystemSide=Lease&IsNominated=&ServiceView=False; LLMembership=B279E049D39450F12456020DAA66A06E8104ACC73DBBCCF9F15AC684462B0FC93E45E68B3D28F4CC2CACA9C1D58C0C7990793681C173958C316F4043DC5C1B315DDDE8CB158AEF90C674992E17A5586390D4606FC59EBE19E662682A3D7CBA7D32BA56F1A1DECAEA63F31A36DC452AD3DB7AEF9FC0F83A9929BD001C57ED9984A1D5EAA6A9243877D6A6279F1BE661B01F5B2A00B1B018EDE36AB1E8D4C7E8C2EC47C24D5656473C22BB11446309E8FB00000000; token=0FnAwkKNLyvQMVyAn2eljO0yyuzxWXNWlqaDcIeXgC8kdZng7vGw

最后一点:

 token=0FnAwkKNLyvQMVyAn2eljO0yyuzxWXNWlqaDcIeXgC8kdZng7vGw

我需要从第一个响应中替换为我自己的值。该响应当前作为测试用例的属性。

任何帮助,将不胜感激。

提前致谢。

亚当

4

2 回答 2

1

以防万一其他人想知道我通过引用属性在测试套件中的位置解决了这个问题。

我添加了 Cookie 的自定义标头并将值设置为:

{#Testcase#$Token}

我想多了,当我之前读到这个时,我认为“测试用例”是我的测试用例的名称,而不是字面意思。

无论如何感谢您的帮助!

亚当

于 2013-10-09T10:32:34.910 回答
0

您可以尝试以下方法

for (header in messageExchange.getResponseHeaders())
log.info header //<- prints all headers

我在soapUI的论坛上找到了这个信息

于 2013-10-07T13:49:11.297 回答