Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Groovy脚本在SoapUI中生成动态JSON请求体并将其传递给POST API请求_Json_Api_Groovy_Automation_Soapui - Fatal编程技术网

使用Groovy脚本在SoapUI中生成动态JSON请求体并将其传递给POST API请求

使用Groovy脚本在SoapUI中生成动态JSON请求体并将其传递给POST API请求,json,api,groovy,automation,soapui,Json,Api,Groovy,Automation,Soapui,我正在尝试使用SOAPUI为API自动化生成动态JSON请求体。我正在使用groovy脚本做同样的事情。 我无法将动态生成的属性值传递给请求中的JSON正文。有人能帮忙吗 我的Groovy脚本 import java.util.Random //generating random values Random rand = new Random() String brandName = "BrandName" + rand.nextInt(100000) String pageTitle = "

我正在尝试使用SOAPUI为API自动化生成动态JSON请求体。我正在使用groovy脚本做同样的事情。 我无法将动态生成的属性值传递给请求中的JSON正文。有人能帮忙吗

我的Groovy脚本

import java.util.Random

//generating random values
Random rand = new Random()
String brandName = "BrandName" + rand.nextInt(100000)
String pageTitle = "BrandPageTitle" + rand.nextInt(100000)

//setting test case properties
testRunner.testCase.setPropertyValue("name", brandName);
testRunner.testCase.setPropertyValue("page_title", pageTitle);
这是我的POST请求的JSON正文。我不确定我访问下面JSON中变量的方式是否正确

{
  "name": "${brandName}",
  "page_title": "${pageTitle}"
}
我也试过这个POSTCreateNewBrand'是我的测试用例名称,“name”是属性名称

{
  "name": "${#POSTCreateNewBrand#name}",
  "page_title": "${#POSTCreateNewBrand#page_title}"
}
当我运行测试时,我看到name字段没有作为请求主体的一部分提供,并看到下面的错误

<errors>
   <error>
      <status>400</status>
      <message>The required field 'name' was not supplied.</message>
   </error>
</errors>

400
未提供必需的字段“name”。

要在
TestCase
级别中使用属性,不必使用
TestCase
名称,而是直接使用
#TestCase
常量,后跟属性名称,如下所示:

{
  "name": "${#TestCase#name}",
  "page_title": "${#TestCase#page_title}"
}
此外,这同样适用于
项目
测试套件
等;用于
TestStep
level的名称,来自:

#项目#-引用项目属性(引用特定SoapUI项目中的属性)

#TestSuite#-引用包含TestSuite中的TestSuite属性

#TestCase#-引用包含TestCase的

#MockService#-引用包含MockService的中的MockService属性

#全局#-引用全局属性。在文件>首选项>全局属性选项卡中找到。在所有项目中引用属性

#系统#-引用系统属性。可在帮助>系统属性中找到

#Env#-引用环境变量

[TestStep名称]#-引用TestStep属性


希望这能有所帮助,

这很简单:)谢谢,它成功了@Sandeep很高兴能帮助你
:)
@albciff但是这个身体将如何连接到payload@ArpitAgrawal如果您有其他问题,请发布新问题,解释您的具体问题并添加所有必要的详细信息:)。