0

在 serenity.properties 文件中提及您想使用哪个浏览器运行测试就足够了吗?喜欢...

Chrome 浏览器测试 webdriver.driver=chrome headless.mode = true

drivers.windows.webdriver.chrome.driver = src/test/resources/webdriver/windows/chromedriver.exe
drivers.mac.webdriver.chrome.driver = src/test/resources/webdriver/mac/chromedriver
drivers.linux.webdriver.chrome.driver = src/test/resources/webdriver/linux/chromedriver

Firefox Browser Testing
webdriver.driver=firefox
gecko.firefox.options = {"args": ["-headless"]}
drivers.mac.webdriver.gecko.driver = src/test/resources/webdriver/mac/geckodriver
drivers.linux.webdriver.firefox.driver = src/test/resources/webdriver/linux/geckodriver

并使用命令行调用测试... mvn clean verify -DuserId='xxx' -Dpasscode='xxx'

或者我还应该提到..

``mvn clean verify -Dwebdriver.driver=browser -DuserId='xxx' -Dpasscode='xxx'

Serenity 会仅从属性文件中推断出它吗?因为当我在命令提示符中没有提供任何浏览器,并且在属性文件中只提到 firefox 时,它正在寻找 ChromeDriver 并且失败,其路径已经在属性文件中正确给出。哪个选项优先或哪个覆盖哪个?我同意这些都是愚蠢的小问题!

4

1 回答 1

0

命令行将覆盖属性文件。

因此,如果您想webdriver.driver从命令行中删除 并将其移动到可以正常工作的属性中,它将从属性文件中获取。然后您可以稍后使用命令行覆盖它webdriver.driver

另外我应该注意,几乎所有命令都可以移动到 serenity 属性文件中。您还可以为需要运行的不同设置、设备和测试设置多个属性文件。

我为不同设备上的不同设置运行了超过 15 个不同的属性文件。然后我所要做的就是通过以下方式引用命令中的属性文件:-Dproperties=properties/desktop.properties

还有一点需要注意的是,我的偏好是将 保留webdriver.driver在命令行中,这样可以更轻松地在具有不同浏览器设置的同一设备上运行相同的测试。然后我创建简单的 bash 脚本来运行我的验收测试、冒烟测试、回归测试,并在从台式机到移动设备的几种不同设备上进行测试,然后在不同节点上的不同浏览器上进行测试。而是各有各的。

于 2019-05-31T14:39:27.037 回答