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

如何在SoapUI测试步骤中更改属性文件?

房项禹
2023-03-14

假设我有一个名为Ben的属性文件,其中包含以下属性:

name: Ben
hair: blond
eyes: red

我通过在测试步骤中键入其相对路径手动将此属性文件导入属性测试步骤。然后我有一个测试用例,它从文件中输入名称并确保它返回的输出是正确的头发和眼睛。现在,我想测试的不仅仅是一个人。假设我有另一个名为Jake的属性文件:

name: Jake
hair: black
eyes: blue

如果我想切换属性文件,我知道的唯一方法是在我想运行新测试时手动输入该属性文件的路径。我有没有办法实现一个Groovy脚本,在属性测试步骤中自动遍历不同的属性文件?这样我可以点击run,它将能够测试所有属性,而不必单独运行每个属性文件。

共有1个答案

袁鸿畴
2023-03-14

以下应该是您正在寻找的内容:

首先创建一个名为“fileName”之类的新全局属性。

(File -> Preferences -> Global Properties)

创建Groovy脚本测试步骤:

import com.eviware.soapui.SoapUI

def fileNames = ["Ben","Jack","Joe"]

for (i in fileNames){
     SoapUI.getGlobalProperties().getProperty('fileName').setValue(i)
    testRunner.runTestStepByName("testStepNameHere")
}

然后在属性文件路径中放置动态属性值。

例子:

C:/trunk/directory/Ben.txt 

将成为。。。

C:/trunk/directory/${fileName}.txt

您将需要考虑测试步骤的顺序,并且可能想要禁用您调用的要在脚本中运行的测试步骤。这是SOAPUI方法。如果您有SOAPUI Pro,由于数据源/循环测试步骤,这可以做得更干净。

我希望这有帮助。

 类似资料:
  • 我是脚本新手,需要一些帮助。我有一个关于SoapUI Groovy脚本的问题,我可以使用帮助。 我需要一个脚本,让我在基于testSuite属性值的测试用例中运行特定的测试步骤(“CC1”是属性的名称),有5种可能性。我猜switch/case可以用,但是不知道怎么写才合适。 当时我试着用这个: 但没有达到预期的步骤。 有人可以帮我解决这个问题吗?

  • 我想要“常规”测试步骤来破坏SoapUI测试用例,同时应该允许测试步骤的一个不同子集失败。 我有一个SoapUI测试用例,它执行一个相当复杂的功能测试,其中一些可选的细节由额外的JDBC测试步骤检查。由于这些细节是“可选的”,所以即使一个或多个JDBC测试失败,测试用例也不应该失败(即它应该变成绿色)。 如果要求允许测试用例中的所有测试步骤失败,我可以简单地切换测试用例行为: 打开TestCase

  • 我设置了以下测试用例: 我想使用Groovy脚本测试步骤获得SoapRequest测试步骤的状态。 它可以如下所示完成: 但是我不想通过脚本运行TestStep,而只是使用soapui testrunner。在datasink测试步骤中,我可以使用这个: 不幸的是,上述方法在GroovyScript TestStep中不起作用 有什么想法吗?

  • 我正在使用SoapUI Pro。SoapUI网站表示,我应该能够在测试执行期间的任何时候设置上下文变量并获取这些值。在帮助中,它说: 常见的使用方案是通过将相应的计数器和集合保存到上下文并使用它们根据需要控制流来循环或跟踪进度。 如果我使用现成的“运行测试用例”测试步骤,我无法让它工作。被调用的测试似乎没有传递上下文信息。 这是一个非常基本的例子。在我最初的测试中,我放了一些Groovy脚本,上面

  • 我有一个带有子组件的组件。 在时间轴组件中,我有这些属性: 如何检查何时从时间轴组件对属性进行更改?每当编辑值发生更改时,我都需要发出该值。 我应该为编辑属性使用一个setter,然后从那里发出吗? 或者有其他方法吗?