config:
    name: "request methods testcase: validate with variables"
    variables:
        foo1: session_bar1
    base_url: "https://postman-echo.com"
    verify: False

teststeps:
-
    name: get with params
    variables:
        foo1: bar1
        foo2: session_bar2
    request:
        method: GET
        url: /get
        params:
            foo1: $foo1
            foo2: $foo2
        headers:
            User-Agent: HttpRunner/3.0
    extract:
        session_foo2: "body.args.foo2"
    validate:
        - eq: ["status_code", 200]
        - eq: ["body.args.foo1", "$foo1"]
        - eq: ["body.args.foo2", "$foo2"]
-
    name: post raw text
    variables:
        foo1: "hello world"
        foo3: "$session_foo2"
    request:
        method: POST
        url: /post
        headers:
            User-Agent: HttpRunner/3.0
            Content-Type: "text/plain"
        data: "This is expected to be sent back as part of response body: $foo1-$foo3."
    validate:
        - eq: ["status_code", 200]
        - eq: ["body.data", "This is expected to be sent back as part of response body: hello world-$foo3."]
-
    name: post form data
    variables:
        foo1: bar1
        foo2: bar2
    request:
        method: POST
        url: /post
        headers:
            User-Agent: HttpRunner/3.0
            Content-Type: "application/x-www-form-urlencoded"
        data: "foo1=$foo1&foo2=$foo2"
    validate:
        - eq: ["status_code", 200]
        - eq: ["body.form.foo1", "$foo1"]
        - eq: ["body.form.foo2", "$foo2"]
