【问题标题】:Running cucumber features over different environments在不同的环境中运行黄瓜功能
【发布时间】:2019-01-02 21:35:24
【问题描述】:

我有一堆 Cucumber 特性,它们在 Java 和 JUnit 中使用 Selenium 执行。到目前为止,此代码不受版本控制,仅在我的 DEV 环境中运行。但现在我们需要开始提升水平,对自动化代码进行版本控制,并在不同的环境中运行它。

我的代码中有很多地方特别提到了我的环境。这将是诸如转到我的 DEV 环境 URL 并做一些 Selenium 的事情或连接到我的 DEV 数据库之类的事情。所以我意识到我需要整理这些方法,以便传递环境特定的东西。

我的问题是什么决定了我要在什么环境中运行检查,以便我可以将该环境特定的内容传递给这些需要知道的方法,例如 URL 名称和数据库连接内容?我看到有人提到为此使用 Maven 属性,还看到有人提到使用 CucumberOptions 编写一个单独的运行器类。我想知道是否存在人们使用的通用方法,因为这无疑是一项常见任务。

希望这是这个问题的正确论坛。

【问题讨论】:

    标签: selenium automation automated-tests cucumber


    【解决方案1】:

    根据我的经验,环境变量与配置脚本一起使用,因此您可以通过 CLI 参数传递和使用它们。

    我们需要开始提高水平,对自动化代码进行版本控制,并在不同的环境中运行它。

    这在使用 CI 服务器(如 Jenkins)时非常有用,这些服务器通常用于编排和执行此类作业,

    决定在什么环境...运行检查...然后将该环境特定的内容传递给这些需要知道的方法,例如 URL 名称和数据库连接内容

    我发现通过在运行时传入系统属性来切换行为相对容易,例如mvn clean test -Denv=uat。实施良好的管道将为您处理所有这些。

    【讨论】:

    • 我现在在 config.properties 中有我的环境变量,所以我现在正在研究下一步,即在运行时使用 Maven 传递一个属性。努力寻找关于我如何完成这项任务的好指南。有什么想法吗?
    • @Matt,试图回忆起确切的设置,这是基本的 tutorialspoint.com/cucumber/cucumber_command_line_options.htm 和 Maven,我认为这是我能找到的最接近的 toolsqa.com/selenium-cucumber-framework/…
    • 谢谢伙计。我想我正在一点一点地到达那里。我现在将继续访问您的链接,因为我又有点卡住了。为帮助干杯。
    【解决方案2】:

    你可以创建一个 testconfig.properties

    应该有

    ENV=https://www............
    DBURL=hostname and port
    TESTDATA_FILE=\\file location
    

    只需将它们登录到控制台,说运行 ENV 后跟 URL

    您可以在 ENV 的属性文件中列出所有 url。您可以使用 ** 注释不需要的。

    所以,这将成为您框架中的可配置参数,无需更改代码。

    【讨论】:

    • 谢谢你。所以我敢肯定,你的意思是通过 Maven 创建 testconfig.properties,是吗?
    • 是的,伙计,你可以。
    猜你喜欢
    • 2015-09-08
    • 2011-03-04
    • 1970-01-01
    • 2022-12-04
    • 2019-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多