如何在ReadyAPI中保持两个REST请求之间的相同会话



我在同一个TestCase中有两个REST请求。

  • 登录请求
  • getAllParameters请求

我目前正在使用ReadyAPI 2.6.0。

我需要登录第一个请求才能访问第二个请求。

否则,它将不起作用。

你知道如何在这两个请求之间保持相同的会话吗?

我猜您需要使用的密钥是在HTTP标头中设置的。

如果这是真的,并且您还需要在以下请求的HTTP标头中设置这个特定值,您可以这样解决它:

  • 在您的第一个REST请求中,您添加了一个脚本断言,代码如下:

    def value = messageExchange.responseHeaders["session-id"];
    assert value != null
    assert value.size() == 1
    context.setProperty("sessionID", value)
    

您需要将第一行中的"session id"替换为正确HTTP标头的任何名称。您不应该更改最后一行中的"sessionID"。这是我们自己使用的一个单独的变量名。这将断言已经设置了一个值,然后将其保存为上下文变量,我们可以在以后的步骤中重用它。

  • 在第一个REST请求测试步骤之后添加一个Groovy脚本测试步骤。将其重命名为"提取上下文变量"(该名称将在下一步中重复使用)然后在其中添加以下代码:

    def value = context.getProperty("request-id")
    return value
    

上下文值在任何地方都不可用。通过在这里提取它并返回值,将更容易在rest请求测试步骤的其余部分中使用它。

  • 打开您的第二个REST请求测试步骤(以及第三个和第四个步骤,如果您有更多)打开底部的"页眉"窗格创建一个新密钥,名称与您在第一个REST请求中收到的头相同在值中,输入

    ${Extract Context Variable#result}
    

在运行整个测试用例时,您现在应该自动检索第一个响应中返回的头,然后在以下请求中传输和重用它。

最新更新