如何将URL从命令行传入我的Gherkin测试?

时间:2017-05-04 18:25:10

标签: selenium selenium-webdriver gherkin webdriver-io

我目前正在使用硬编码的网址browser.url("http://www.x.com");

运行我的小黄瓜测试

我通过gherkin start [url]

运行我的测试

有没有办法让我可以在命令行中输入任何URL来开始我的测试并在browser.url调用中取代硬编码的网址?我正在使用Selenium-webdriver和docker来执行用Gherkin编写的测试。

1 个答案:

答案 0 :(得分:0)

遗憾的是,简短的回答是。正如您所指出的,您的网址中包含硬编码值。

但是,应该有一些简单的解决方法可以解决您的问题,并通过微小的更改来实现您想要的结果。

1。由于您正在使用 WebdriverIO ,它基本上是 NodeJS 的Selenium绑定实现,我们实际上可以使用节点内置对象,在我们的例子中是global object process.env

首先,在测试中,继续使用变量替换browser.url("http://www.x.com");中的网址,如下所示:browser.url(myUrl);

然后,在程序头中声明变量:var myUrl = process.env.URL ? process.env.URL : "http://www.x.com"。这将告诉Node:"看,如果你有这个流程环境变量设置,那么返回它,否则,只需给我你之前的(你的硬编码值)"。

最后,当从命令行运行测试时,只需添加具有所需值的变量,如下所示:

$ URL="yourUrlHere" gherkin start

2。由于您使用的是 WebdriverIO ,我强烈建议您使用其完整的工具套件来利用更好的测试体验。 *对未使用的wdio.config.js文件感到悲伤 *

因此,我建议您查看一下 Testrunner 并浏览培训部分。如果您热衷于使用小黄瓜,请不要担心! WebdriverIO与使用Gherkin的 Cucumber (以及 Mocha Jasmine )精美地集成在一起。

然后,您的问题将通过wdio.config.js文件转换为简单的配置更改。

如果这有帮助,请告诉我。我可能会集合其他一些解决方案。干杯!