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

soapui使用脚本将测试套件属性传输到测试用例

陆安国
2023-03-14

我开发了一些SoapUI案例,通过从文件中读取属性来在每个测试用例的开头设置一个属性。这很好,然后我可以通过每个测试请求步骤中的语法${Property tyA}访问每个属性(让我们说Property tyA)。

现在我意识到每个测试用例的一个属性都是相同的,所以我想为此创建一个testsuite属性,并从测试用例属性文件中删除属性定义。首先,我的测试用例都失败了,因为现在“propertyA”已经不知道了,但我发现了这一点(根据http://www.soapui.org/Scripting-Properties/property-expansion.html)一种解决方案是将每个对propertyA的引用替换为对propertyA的引用。

不过,这有点乏味,所以我考虑在每个测试用例的开头创建一个groovy脚本,该脚本从测试套件属性创建一个测试用例属性。根据http://www.soapui.org/Scripting-Properties/tips-a-tricks.html我以为一个剧本

def testSuiteProperty = testRunner.testCase.testSuite.getPropertyValue("propertyA")
testRunner.testCase.setPropertyValue("propertyA", testSuiteProperty)

如果我log.infotestSuiteProperty的值,这确实给出了所需的值,并且如果我将testCase属性分配给某个变量并且log.info它,它会显示正确的值。

但是,在下一个测试步骤中,不知道属性a。只是为了确保我尝试在那里使用${#testCase#propertyA},但这也是未知的。我在这里做错了什么?

共有1个答案

麻茂材
2023-03-14

我认为您的问题是,${#testCase#propertyA}中的testCase必须是大写:${#testCase#propertyA}。如果我在代码中添加groovy测试步骤:

def testSuiteProperty = testRunner.testCase.testSuite.getPropertyValue("propertyA")
testRunner.testCase.setPropertyValue("propertyA", testSuiteProperty)

然后,我使用以下xml添加了一个SOAP测试步骤:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:open="http://www.openuri.org/">
   <soapenv:Header/>
   <soapenv:Body>
      <open:procesa>
         <open:selector>${#TestCase#propertyA}</open:selector>
      </open:procesa>
   </soapenv:Body>
</soapenv:Envelope>

它可以正常工作,但是如果我使用${#testCase#属性A}则找不到属性值。

此外,您可以检查SOAP测试步骤请求左侧的“原始”选项卡中是否使用了正确的值。在此选项卡中,将显示请求,并用其值替换属性。

希望这有帮助,

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

  • 我有一个API来获取ID、名称、数据等的列表(TestCase name

  • 我正在做一个SoapUI项目,我需要使用测试运行器运行我的测试套件。我正在为环境变量使用外部groovy脚本。我在这里面临的问题是,每当我从测试运行程序运行测试用例时,它的返回工作空间为空,这在Externalgroovy中使用。所以在外部groovy中,我将工作区设置为null,导致错误[getProjectByname()无法在null上调用]。下面是 使用工作空间的全局脚本的构造函数 上面我

  • 我正在为我的代码进行单元测试。即使我有测试套件,它也会用Pol idea test runner显示为“空测试套件”。 客户还没准备好。。开始运行测试运行失败:找不到以下内容的检测信息:ComponentInfo{com.example/pl.polidea.instrumentation.PolideInstrumentationTestRunner}空测试套件。

  • 我正在尝试使用SoapUI(5.0.0 beta)来测试RESTful Web服务,该服务会对提供的回调URL发出异步响应。 到目前为止,我能够调用该服务并确认收到的初始同步响应。我还创建了一个“REST MockService”,它对从服务器收到的回调发出适当的响应,并在初始请求中为此提供endpoint作为回调 URL。 我现在正在努力创建一个测试用例,将两者联系在一起,这样我就可以在继续我的

  • 假设我有一个名为Ben的属性文件,其中包含以下属性: 我通过在测试步骤中键入其相对路径手动将此属性文件导入属性测试步骤。然后我有一个测试用例,它从文件中输入名称并确保它返回的输出是正确的头发和眼睛。现在,我想测试的不仅仅是一个人。假设我有另一个名为Jake的属性文件: 如果我想切换属性文件,我知道的唯一方法是在我想运行新测试时手动输入该属性文件的路径。我有没有办法实现一个Groovy脚本,在属性测