在不同环境中运行黄瓜功能

时间:2018-07-26 00:53:42

标签: selenium automation automated-tests cucumber

我有一堆在Java和JUnit中与Selenium一起执行的Cucumber功能。到目前为止,此代码不受版本控制,仅在我的DEV环境中运行。但是现在我们需要开始进行升级,并对自动化代码进行版本控制,并在不同的环境中运行它。

我在代码中有很多要点专门提到了我的环境。诸如进入我的DEV环境URL并做一些Selenium的事情或连接到我的DEV数据库之类的事情。因此,我意识到我需要整理这些方法,以使特定于环境的内容得以传递。

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

希望这是解决此问题的合适论坛。

2 个答案:

答案 0 :(得分:2)

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

  

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

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

  

确定要在何种环境下运行检查...,然后将特定于环境的内容传递到这些需要了解的方法中,例如URL名称和数据库连接内容

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

答案 1 :(得分:1)

您可以创建一个testconfig.properties

应该有

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

只需在控制台中记录它们,说正在运行ENV,然后是URL

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

因此,这将成为框架中的可配置参数,而无需更改代码。