【问题标题】:How to ignore certain test step errors in SoapUI test case?如何忽略 SoapUI 测试用例中的某些测试步骤错误?
【发布时间】:2018-06-06 01:43:11
【问题描述】:

目标

我希望“常规”测试步骤来破坏 SoapUI 测试用例,而不同的测试步骤子集应该允许失败

基本原理

我有一个 SoapUI 测试用例,它执行一个相当复杂的功能测试,其中一些可选的细节由额外的 JDBC 测试步骤检查。由于这些细节是“可选的”,因此即使其中一个或多个 JDBC 测试失败,测试用例也不应该失败(即它应该变成绿色)。

差不多了

如果要求允许测试用例中的所有测试步骤失败,我可以简单地切换测试用例行为:

打开 TestCase Options 对话框(从 TestCase 工具栏)并取消选中 Abort on Error 选项。当您运行 TestCase 时,该步骤仍然失败,但 SoapUI 将继续运行其他 TestSteps Functional Tests | Data-Driven Tests (SoapUI.org)

问题

  • 能否通过测试步骤级别的设置或属性来实现此目标(尤其是:没有 Pro 版本)?
  • WsdlTestCase 上是否有类似于setFailOnError/setFailTestCaseOnErrors 方法但在测试step 级别的Groovy 解决方案?

【问题讨论】:

    标签: groovy integration-testing soapui


    【解决方案1】:

    我通过插入两个 Groovy 测试步骤解决了这个问题

    1. 将当前测试用例设置存储在(临时)测试用例自定义属性字段中;
    2. 在可选步骤之前转向错误行为;
    3. 在(临时)属性的可选步骤之后恢复之前的错误行为。

    之前:disableFailOnErrorBehavior.groovy

    testRunner.testCase.with {
        // Store current TestCase options in (temporary) TestCase properties.
        setPropertyValue('_failOnError', failOnError.toString())
        setPropertyValue('_failTestCaseOnErrors', failTestCaseOnErrors.toString())
        log.debug "Saved FailOnError behavior: ${failOnError}, ${failTestCaseOnErrors}."
    
        // Allow following TestSteps to fail without aborting the TestCase immediately.
        setFailOnError(false)
        setFailTestCaseOnErrors(true)
        log.info "Set FailOnError behavior: ${failOnError}, ${failTestCaseOnErrors}."
    }
    

    之后:restoreFailOnErrorBehavior.groovy

    testRunner.testCase.with{
        // Use (temporary) TestCase properties to restore initial TestCase options.
        setFailOnError(getPropertyValue('_failOnError').toBoolean())
        setFailTestCaseOnErrors(getPropertyValue('_failTestCaseOnErrors').toBoolean())
        log.info "Restored FailOnError behavior: ${failOnError}, ${failTestCaseOnErrors}."
    
        // Remove (temporary) TestCase properties.
        removeProperty('_failOnError')
        removeProperty('_failTestCaseOnErrors')
        log.debug "Clean up temporary properties: done."
    }
    

    这些脚本依赖于两种方法来改变测试用例的行为:

    【讨论】:

    • 我试过这个,但它对我不起作用。我在 groovy 脚本中添加了第一个代码。我可以看到在测试用例级别设置了 2 个属性。当我运行测试用例时,由于某些功能问题,此步骤失败,即使设置了两个属性,执行也会停止。下一步应该已经运行,因为已经在测试用例级别设置了属性
    • @Gauravkhurana 属性_failOnError_failTestCaseOnErrors 仅用于存储测试用例的当前状态,以便我们之后可以恢复初始行为。这些脚本的核心功能在于在 TestCase 对象上调用 setFailOnError()setFailTestCaseOnErrors()。即不要依赖属性,因为它们没有更新,例如如果您手动更改 TestCase 行为(选项对话框)。
    【解决方案2】:
    • 右键单击测试用例;
      选择选项;在基本选项卡下—— 取消选择 Abort on Error [如果选中]

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多