【问题标题】:How to skip teststep in QAF using TestStepListener?如何使用 TestStepListener 在 QAF 中跳过测试步骤?
【发布时间】:2018-05-02 10:25:58
【问题描述】:

我使用 QAF 作为我的测试自动化框架。

我想跳过生产环境中的特定测试步骤。如何使用 TestStepListener 跳过 BDD 测试步骤的执行?

这是一个示例用例: 对于购物车应用程序,我开发了 200 多个场景。我在测试环境中执行所有场景。现在我想在生产环境中执行所有场景。现在我想跳过生产环境中付款和订单审核的最后一步。我该怎么做?

【问题讨论】:

    标签: selenium bdd qaf


    【解决方案1】:

    请您提供用例的详细信息吗?如果我的理解是正确的,您不想在生产环境中执行特定步骤。您可以使用步骤侦听器跳转到特定的步骤索引,但不能跳过当前步骤。其中一种方法是将步骤分组到高级步骤。比如不用在bdd里写详细的步骤

    Given some situation
    When performing some action
    Then step-1
    And step-2 not for production
    and step-3
    

    你可以有高级别的步骤

    Given some situation
    When performing some action
    Then generic step for all environments
    

    在这里,您的generic step for all environments 步骤可以在不同包中针对不同环境进行实现。在运行时配置步骤提供程序包。

    另一个技巧是在步进监听器中设置和重置空运行模式。例如,在您的步骤定义中,您可以提供额外的元数据。在 step 监听器中,如果需要在 before 方法中设置空运行模式并在方法中重置它,则依赖元数据。

    步骤定义:

    @MetaData("{'skip_prod':true}")
    @QAFTestStep(description = "do payment")
    public static void doPayment() {
      //TODO: write your code here 
    }
    

    步骤侦听器代码可能如下所示:

    public void beforExecute(StepExecutionTracker stepExecutionTracker) {
        Map<String, Object> metadata = stepExecutionTracker.getStep().getMetaData();
        if (null != metadata && metadata.containsKey("skip_prod") && "prod".equalsIgnoreCase(getBundle().getString("env"))) {
           //do not run this step
            getBundle().setProperty(ApplicationProperties.DRY_RUN_MODE.key,true);
        }
    }
    
    public void afterExecute(StepExecutionTracker stepExecutionTracker) {
        Map<String, Object> metadata = stepExecutionTracker.getStep().getMetaData();
        if (null != metadata && metadata.containsKey("skip_prod") && "prod".equalsIgnoreCase(getBundle().getString("env"))) {
           // this is not dry run so reset
           getBundle().setProperty(ApplicationProperties.DRY_RUN_MODE.key,false);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-08
      • 1970-01-01
      • 2015-04-02
      • 2022-08-15
      • 2014-12-09
      相关资源
      最近更新 更多