大家早上好
我对黄瓜框架有一个很大的疑问。
这就是我现在的情况:
我有 4 个应用程序使用白标方法(4 个应用程序是相似的)。请记住,在每个应用程序中,我们都必须首先登录。举例来说,我为每个功能创建了一个 .feature 文件。
我可以在特定应用程序中启动所有测试吗?这些测试完成后,在下一个应用程序中重新运行相同的测试套件。我们执行相同的流程,直到测试完所有应用程序为止。
我现在的实际行为是:
我有我的功能文件。
Feature: page 1
@page1.
Scenario: The page 1 contains an element 1
Given the app1 is installed on a mobile device
When the user launch the app1
Then the user login with his account
@page1.
Scenario: The page 1 contains an element 2
Given the app1 is installed on a mobile device
When the user launch the app1
Then the user login with his account
请记住:
该元素将根据他登录的帐户而变化。
我想在 3 个不同的应用程序上测试相同的流程(相同的界面,不同的徽标)
当我运行特定的功能文件时,它执行测试的方式是:
在第一个应用程序上测试第一个场景,然后将其卸载
与其他应用程序测试相同的场景,然后将其卸载
相同的流程,直到我们测试完所有应用程序为止。
然后,对下一个场景执行相同的流程。
我想做的是找到一种我可以说的方式:
好的,我们将安装第一个应用程序,并运行我们必须测试的所有测试, 一旦我们完成第一个应用程序的测试,我们就会对下一个应用程序执行相同的操作。
重要...在功能文件中,我可能需要使用多个帐户测试相同的场景(这就是为什么我必须使用场景大纲)。不过,我可以使用相同的数据来测试其他场景,但我想避免每次执行一些测试时都安装和卸载应用程序。
您是否已经面临过这样的问题?
感谢您的帮助!
Cucumber 和其他 BDD 框架非常擅长帮助人们使用半形式语言 (Gherkin) 讨论应用程序的行为,并就应用程序在不同上下文中的行为方式达成一致。我认为它是一个规范工具,它产生测试作为副产品。
您所说的是在多个不同的应用程序上下文中测试行为。 Cucumber 并不是真正为跨这些倍数工作而设计的,更不用说将应用程序安装到多个环境了。为此,您可能需要查看您的构建工具(例如 Jenkins)。
如果您可以让套件在提供的任何应用程序上下文中运行,则可以使构建部署这些上下文并为每个上下文运行套件。
您的构建工具可以运行任何设置帐户、迁移数据以及安装和配置应用程序的脚本。有很多 DevOps 工具和模拟环境也可以帮助管理这些上下文。
虽然通过覆盖场景运行器在 Cucumber 中可能可以做到这一点,但这并不是 Cucumber 真正设计要做的事情。