如何解决Cucumber 在多个站点上运行测试
我可以在每个测试中使用站点示例做场景大纲,但是如果站点列表发生变化,我需要在每个场景中更改一个列表。背景没有大纲功能。
@test
Scenario Outline: Test for several sites
When I navigate to <site>
Then something
Examples:
|site|
|https://www.test.com|
|https://www.test2.com|
|…|
也许有人知道如何更正确地做到这一点?
解决方法
很大程度上取决于有多少测试是通用的,以及有多少测试是针对每个站点的。
如果所有测试都是通用的,最好的方法是从测试中提取站点并使用环境变量来设置站点。然后你会用环境变量运行黄瓜,例如类似的东西
cucumber site_tests SITE=http/your.site.com
cucumber site_tests SITE=http/my.site.com
对于用户帐户等内容。您可以聪明一点,在功能的支持代码中包含站点特定的内容,或者使用更多环境变量。
这将使您的功能更加简单,并且无需使用场景大纲。
如果您只有几个测试必须在许多站点上运行,那么我会为每个站点编写一个功能或可能只是场景,例如
mysite.feature
Background:
Given site is my site
Scenario: Login
Given I am registered
When I login
Then I should see mystic
和
yoursite.feature
Background:
Given site is your site
Scenario: Login
Given I am registered
When I login
Then I should see your site
如果您很聪明并且编写具有高级抽象的场景,您仍然可以共享大部分步骤定义和代码。
当然还有很多其他解决方案,但总的来说,我强烈建议不要使用基于场景大纲的解决方案。
希望有用:)
,一种方法是您可以为所有这些站点分配变量并在功能文件中使用这些变量。您可以在执行期间从常量文件读取步骤定义中这些变量的值。这样你就可以在一个地方简单地更新它们。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。