【问题标题】:How to implement code for Dev and Staging in cucumber framework如何在黄瓜框架中实现 Dev 和 Staging 的代码
【发布时间】:2021-01-05 15:03:37
【问题描述】:

我正在工作开发和暂存环境中进行测试。 Dev 和 Staging 中的数据是不同的,而且我在测试 Staging 时不必在后端验证 DB。如何在我的框架中应用具有不同条件的代码?我试图使用 if 条件 例如 driver.getCurentURL 如果 URL == Dev --> 这样做,否则 --> 这样做。 但由于某种原因,if 语句在我的情况下不起作用。

【问题讨论】:

  • 一般来说,您不会依赖已经存在的数据。您已将其创建为给定的一部分,并且在您的场景中执行步骤。除此之外,这不是任何人都可以帮助您回答的问题。看看:stackoverflow.com/help/how-to-ask

标签: java selenium cucumber


【解决方案1】:

在测试时使用多个/不同的环境是常见的方面。为了支持不同的环境,您需要在实现测试用例和/或步骤时遵循一些标准做法。

  • 不要对测试数据进行硬编码,而是将其移动到属性中
  • 在执行时提供对加载环境特定资源和测试数据的支持
  • 关于步骤的变化,步骤实现不同,然后可以将它们移动到单独的包中,并且应该在运行时从适当的包中加载步骤。如果有细微差别,您可以在代码中添加条件。

例如:

public void doCheckOut(){
    //fill Credit Card Details
    //credit card details will be provided in properties and that will be loaded for environment by resource manager
    sendKeys(getBundle().getString("cc.number"),"input.ccnumber.loc");
    ...
    if(getBundle().getString("env.name").equalsIgnoreCase("dev"){
        //only run for dev env
         click_checkOutBtn();
    }
}

您可以将qaf-cucumber 用于resource management 功能。

如果您想跳过特定环境的整个步骤,AFAIK 使用黄瓜跑步者时,您不能这样做。但是,当使用 qaf 和 cucumber runner 时,如果您使用 qaf step implementation 创建了步骤(或使用 TestNG 代替 cucumber),您可以使用 step listenerstep meta-data 跳过特定环境的整个步骤。

【讨论】:

  • 谢谢你们。已经想出了如何处理这部分。
猜你喜欢
  • 2022-01-18
  • 2021-12-07
  • 2016-10-14
  • 2021-09-27
  • 1970-01-01
  • 2018-06-27
  • 1970-01-01
  • 2021-12-22
  • 1970-01-01
相关资源
最近更新 更多