如何将值从 groovy 传递到另一个测试用例 URL 作为 SoapUI 中的参数

How to pass a value from groovy to another testcase URL as parameter in SoapUI

我必须编写一个 Groovy 脚本,从响应中为我获取一些动态值

我需要将这个值传递给我的请求 URL 作为另一个 testcase/step

中的参数

我的第一个 URL 如下,我收到的回复是:-

https://mywebsite/api/Products

我可以通过下面的 groovy 脚本获得这个动态 ID:-

import groovy.json.JsonSlurper

    responseContent = testRunner.testCase.getTestStepByName("3_Level_product").getPropertyValue("response")
    slurperresponse = new JsonSlurper().parseText(responseContent)
    log.info (slurperresponse.products.request_id)

我需要在下方传递该值,如 URL:-

 https://mywebsite/api/get_response?request_id=0d8fe4d9

在同一个测试用例中

打开您现有的 Groovy 脚本 并向其中添加以下行。按照代码段中的注释进行操作。

//As you mentioned you have the value(extracted from _1st step_) in groovy script, 
//so assign value in place of "<replace your value here>" below variable
def valueFromPreviousResponse = <replace your value here>
context.testCase.setPropertyValue('REQUEST_ID_FROM_PREVIOUS_RESPONSE', valueFromPreviousResponse)

现在进入下一个测试步骤,编辑您的端点

来自 https://mywebsite/get_response?request_id=0d8fe4d9-ed28-421f-8b90-b9b2afac4196

https://mywebsite/get_response?request_id=${#TestCase#REQUEST_ID_FROM_PREVIOUS_RESPONSE}

然后每次运行测试时,动态值将在第二步中发送。 如前所述,它将仅在 测试用例 内帮助您。

在测试套件中

如果您希望该值可用于相同或不同测试用例中的测试步骤,请执行以下操作:

//As you mentioned you have the value(extracted from _1st step_) in groovy script, 
//so assign value in place of "<replace your value here>" below variable
def valueFromPreviousResponse = <replace your value here>
context.testCase.testSuite.setPropertyValue('REQUEST_ID', valueFromPreviousResponse)

现在转到下一个测试步骤或任何测试用例测试套件中的任何测试步骤,编辑您的端点

来自 https://mywebsite/get_response?request_id=0d8fe4d9-ed28-421f-8b90-b9b2afac4196

https://mywebsite/get_response?request_id=${#TestSuite#REQUEST_ID}