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

时间:2019-02-06 15:51:00

标签: rest web-services soapui ready-api

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

  • 登录请求
  • getAllParameters请求

我当前正在使用ReadyAPI 2.6.0。

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

否则它将不起作用。

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

1 个答案:

答案 0 :(得分:0)

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

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

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

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

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

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

    ${Extract Context Variable#result}
    

上下文值在任何地方都不可用。通过在此处提取它并返回值,在其余的REST Request测试步骤中将更容易使用它。

  • 打开您的第二个REST请求测试步骤(如果还有更多,则打开第三,第四等等) 打开底部的“标题”窗格 创建一个新密钥,其名称与您在第一个REST请求中收到的标头相同 在值中,输入

    sql = """\
    SET NOCOUNT ON;
    DECLARE @rv int;
    EXEC @rv = dbo.TESTVALUE;
    SELECT @rv;
    """
    crsr.execute(sql)
    return_value = crsr.fetchone()[0]
    print(return_value)  # -631
    

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