当前位置: 首页 > 知识库问答 >
问题:

SoapUI传递Groovy属性

袁山
2023-03-14

我是SoapUI的新手,遇到了一个我不明白的问题。目标:我想在不同的测试步骤中将结果从一个Groovy脚本传递到另一个Groovy脚本。

第1步:我有一个生成GUID的Groovy脚本:

// generate a new GUID
def guidVal = "${java.util.UUID.randomUUID()}"

步骤2:我有一个属性转移步骤,它接受上述脚本的结果,并将其传递到HTTP请求步骤(正在工作)

步骤3:我有第二个Groovy脚本,它运行curl命令,其中需要包含相同的GUID。

def deviceGuid = testRunner.testCase.testSteps['Property Transfer'].getPropertyValue("result")

// run the following curl command to generate certs
def command = 'C:\\Program Files (x86)\\Git\\usr\\bin\\curl -v -H "Content-type: application/json" -X POST -d "{\"deviceId\": \"<NEED GUID HERE>\" }" http://localhost:49742/register > out.zip'.execute().text

第3步是问题开始的地方。如何从第一个脚本中获得GUID并将其放入第二个Groovy脚本中?在运行时,上面返回

Wed Mar 16 13:46:37 EDT 2016:INFO:null

共有1个答案

易京
2023-03-14

这是你可以做的简单的事情。

由于uuid值在同一测试用例中使用,因此可以通过在第一步中添加以下命令(在末尾添加)将第一步中生成的值保存在测试用例级属性(例如uuid)中:

context.testCase.set属性值(UUID)

现在,第二个步骤,即属性传输变得过时,因为使用上述步骤,测试用例级属性中的值可用。

在下一个groovy步骤中,只需使用以下语句之一从测试用例属性中获取uuid值。

  • 定义设备GUID=上下文。测试用例。getPropertyValue(“UUID”)或
  • 定义设备GUID=上下文。展开(“${#TestCase#UUID}”)

关于命令中的设备id替换,这里是需要正确转义字母的已更改命令。

def command=“C:\\Program Files(x86)\\Git\\usr\\bin\\curl-v-H \”内容类型:application/json \“-X POST-d \“{”deviceId \“:\“${deviceGuid}\”}”http://localhost:49742/register

它可以像下面这样执行:

def process=命令。execute()

如果您需要像这里提到的那样捕获输出:

def outputStream=new StringBuffer()

<代码>过程。waitForProcessOutput(输出流,System.err)

 类似资料:
  • 我使用数据库作为数据源,将属性和值传输到SoapUI中的测试脚本。 在这种情况下,我有 3 个占位符,我将其用作Rest测试的标题类型和值。我面临的问题是,如果数据库中的标头类型/值为 NULL,如何让 soapUI 忽略它的属性转移? 我发现 Soap UI 会自动尝试发送 $header_type_2 的 NULL 标头属性和值 在原始头请求中,它看起来像这样: 注意到第四行的“:”了吗?这导

  • 我想使用SoapUI 5.0将groovy脚本连接到testlink服务器,然后将测试结果传递给测试链接 在尝试这样做之前,我安装了从GitHub(https://github.com/kinow/testlink-java-api)下载的TestLinkJavaAPI库作为jar文件。 我复制了testlink-java-api-1.9.17-1归档文件。jar到具有SoapUI的目录的路径如下

  • 当我尝试在soapUI测试步骤中解析响应时,收到了以下异常。也尝试了getXMLHolder方法。还是没运气。 答复如下

  • 我使用的是免费(非专业)SoapUI 5.0,我在测试套件中有一个属性列表。然后,我有许多测试步骤,每个步骤与测试套件属性具有相同的名称。 我试图在测试步骤属性中编写Groovy脚本,以检索同名的测试套件属性的值。 例如: 测试套件的属性颜色为\u红色,值为12345 到目前为止,我在“info”属性值中拥有什么: 我不确定我是否需要新的GroovyShell()。评估位,但没有它仍然不起作用。我

  • 我正在使用SoapUI的开源版本进行一些SOAP Web服务负载测试。 我希望每个请求与以前的请求尽可能不同,我不希望使用相同的属性进行负载测试。 我有一个属性文件,它有几个属性,每个属性值都调用groovy脚本从文件中读取一个随机值,并将其分配给测试用例属性,即在值字段中: <代码>${=(DynamicPropertyScript)} 脚本: 如果我在测试用例开始时调用这个脚本,那么这个脚本工

  • 我已经在TestCase下创建了一些属性列表。例如,看下面的截图。 我试图通过以下groovy脚本teststep删除Testcase_Property属性: 当我重新加载项目时,当我单击测试用例名称时,Testcase_Property属性仍然存在于Custom Properties选项卡中。 谢谢 卡鲁纳加拉·潘迪