如何在SoapUI中将值作为参数从groovy传递到另一个TestCaseURL

如何在SoapUI中将值作为参数从groovy传递到另一个TestCaseURL,groovy,soapui,Groovy,Soapui,我必须编写一个Groovy脚本,从响应中获取一些动态值 我需要将这个值作为另一个测试用例/步骤中的参数传递给我的请求URL 我的第一个URL如下所示,我从中得到响应:- https://mywebsite/api/Products 我可以通过下面的groovy脚本获得此动态id:- import groovy.json.JsonSlurper responseContent = testRunner.testCase.getTestStepByName("3_Level_produc

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

我需要将这个值作为另一个测试用例/步骤中的参数传递给我的请求URL

我的第一个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脚本,并添加以下行。按照代码段中的注释进行操作

//正如您提到的,您在groovy脚本中有值(从_1ststep_中提取),
//因此,将变量下面的“”替换为赋值
def valueFromPreviousResponse=
context.testCase.setPropertyValue('REQUEST\u ID\u FROM\u PREVIOUS\u RESPONSE',valuefrom previousresponse)
现在转到下一个测试步骤,编辑端点

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

https://mywebsite/get_response?request_id=${#TestCase#请求#ID(来自(上一次)响应)

然后,每次运行测试时,都会在第2步中发送动态值。 只在前面提到的测试用例中提供帮助

在测试套件中

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

//正如您提到的,您在groovy脚本中有值(从_1ststep_中提取),
//因此,将变量下面的“”替换为赋值
def valueFromPreviousResponse=
context.testCase.testSuite.setPropertyValue('REQUEST\u ID',valueFromPreviousResponse)
现在转到下一个测试步骤或测试套件中任何测试用例中的任何测试步骤,编辑端点

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


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

能否确认1。您是否已经在groovy脚本中提供了(来自先前响应的动态)值?如果没有,您可以发布示例原始响应以及您需要的值吗?2.第一个测试步骤的类型是什么(soap、rest、jdbc等)?3.您是否需要将其传递到相同测试用例或不同测试用例的测试步骤?请更新/编辑问题并包括上述详细信息。这将有助于更好地回答。谢谢Rao的回复。。是的,我能够使用groovy脚本获得响应。。我是SOAPUI新手,所以也许你可以建议一个更好的方法2)这是一个RESTAPI 3)是的,我想先将它添加到同一步骤中,但我面临一个问题。我的响应API有不同的URL,如上所述,当我更改步骤的资源时,然后汤ui更改每个步骤的资源时,我现在有点困惑ri8。。我是不是遗漏了一些关于Rao的简短描述。。但问题是我的URL不一样。。你能告诉我一些步骤吗。。我还为Same创建了一个新问题,但我无法继续执行上面的步骤。我的第一个URL包含/products和其他包含/get\u响应可能是每个步骤可能有不同的URL或
资源
,您只需要变量1来使用属性扩展,就像我在响应
中提到的那样${#TestCase#从"上一次"响应"请求"ID"
或${#TestSuite#请求"ID"。