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

SoapUI:为什么当我使用 Testrunner 运行所有测试时项目属性没有更新

邬弘化
2023-03-14

当我使用“Launch TestRunner”在我的项目中运行所有测试时,我在SoapUI中更新项目属性时遇到了一些问题。

我有两个带有测试的测试套件。所有测试用例都有第一步-Groovy脚本。这个脚本在所有测试用例中都是一样的:

Integer curIdAndKey = new Integer (testRunner.testCase.testSuite.project.getPropertyValue( "IdAndKey" ))
Boolean curBool = new Boolean (testRunner.testCase.testSuite.project.getPropertyValue( "bool" ))
Integer curTestsCount =new Integer( testRunner.testCase.testSuite.project.getPropertyValue( "countOfTests" ))
if(curBool==false){
    curBool=true
    curIdAndKey= curIdAndKey*curTestsCount
}
else {
    curIdAndKey += 1
}

testRunner.testCase.setPropertyValue("aIdCase", curIdAndKey.toString())
testRunner.testCase.testSuite.project.setPropertyValue("bool", curBool.toString())
testRunner.testCase.testSuite.project.setPropertyValue("IdAndKey", curIdAndKey.toString())
log.info "Current Id : [$curIdAndKey]"
log.info "Current bool : [$curBool]"

我有一个项目属性:“IdAndKey”和“bool”。当我运行单个测试用例时 - 这个项目属性正在更新,但是当我运行所有测试时,它们没有更新(我只在日志中看到更新,而不是在属性中看到更新)。求求你,帮帮我。

共有2个答案

羊新翰
2023-03-14

尝试使用以下方法:

def globalProps = context.testRunner.testCase.testSuite.project;
globalProps.setPropertyValue("aIdCase", curIdAndKey.toString());

如果有用,请告诉我。

庄智
2023-03-14

在启动TestRunner窗口的基本选项卡下,其中一个选项是:“保存后”。选择此选项并按启动。您会注意到-S开关(在链接的重复帖子中讨论过)已添加到命令行,该命令行显示在下一个窗口中。

附加的讨论,虽然已经过时,但仍在官方文档中。

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

  • 它在Jenkins slave上工作得很好,但我想为SOAPUI测试用例添加另一个Jenkins slave。但是相同的windows批处理命令在新机器上不起作用。 我在机器上的Jenkins控制台输出中得到以下消息: 我需要在那台机器上设置什么才能使它工作吗? 最后一次编辑:在我们公司,我们有有限的用户帐户。所以我不得不把这个任务交给管理员。他在奴隶身上设置了一些东西,现在对两个奴隶都起同样的作

  • 我试图为我的类“Sinus”(用于计算浮点的Sinus)运行一个测试,但当我试图运行这个测试来生成我的Cobertura覆盖率报告时,它不起作用,我真的不知道为什么!你有什么建议或解释吗?(我使用cmd:mvn cobertura:cobertura) -这是我的测试: 结果是: 那有什么问题?有什么想法吗?这是我的pom。xml如下:

  • 问题内容: 我已经设置了成绩脚本。当我执行Gradle构建时,一切正常,并运行jUnit测试。 之后,当我运行Gradle测试时,我得到以下信息: 当我执行时,Gradle的构建当然会起作用……我希望仅重置测试,而不是重新构建整个项目:我该怎么做? 问题答案: 一种选择是在命令行中使用该标志。这将重新运行所有测试任务及其依赖的所有任务。 如果您只对重新运行测试感兴趣,那么另一种选择是在执行测试之前

  • 我使用surefire和failsafe分别执行单元测试和集成测试。所有测试都位于文件夹中。到目前为止,我有一个集成测试类,其测试方法(用@test注释)在所有单元测试运行时从不执行。这是我的pom的摘录。xml: 我使用maven目标来运行测试。

  • 我正在尝试将一个梅文Spring靴(2.3.12)应用程序从JUnit4转换为JUnit5。我已经阅读了很多关于如何做到这一点的不同帖子。 我能够在Eclipse中执行我的JUnit5测试。 我的问题是我无法让Maven Surefire执行我的JUnit5测试。我尝试了各种配置变体。当它到达Surefire步骤时,它只执行我以前的JUnit4测试,并且简单地忽略任何JUnit5测试。我已经验证了