【发布时间】:2021-01-22 08:10:14
【问题描述】:
我是空手道 UI 自动化的新手,遇到了一个问题,需要有关如何继续的建议。
我有一个测试场景,它是一个 3 步过程
- 用户 A 登录并填写表格
- 用户 B 使用其他浏览器登录并批准申请
- 用户A(已经登录)在第1步可以看到他的申请被接受了
e2e测试sn-p如下:
Scenario: E2E - User agreement acceptance
#1 USER A logs in and fills agreement form
When def userA_create_agreement = call read('./../Features/CreateAgreement.feature') { shared_agrname: '#(SharedAgreementName)' }
#2 USER B retrieve above agmt and approves it
When def userB_read_agreement = call read('./../Features/ReadAndApprove.feature') { shared_agrname: '#(SharedAgreementName)' }
#3 USER A confirms acceptance
When def userA_confirm_acceptance = call read('./../Features/ConfirmAcceptance.feature') { shared_agrname: '#(SharedAgreementName)' }
每个“调用”功能文件 - CreateAgreement.feature、ReadAndApprove.feature、ConfirmAcceptance.feature 都有以下背景部分
Background:
* configure driver = { type: '#(drivertype)', executable: '#(driverpath)'}
Scenario:
Given driver agreementmanager_url
.....
.....
对于第 1 步和第 3 步,驱动程序类型和驱动程序路径是 chrome 对于第 2 步,它的 Firefox。用户 A 和 B 不能同时使用同一个浏览器登录。这是设计使然。
目前使用上述方式,每个步骤都会调用一个新的浏览器实例并正确运行测试,因为我每次都在每个调用的功能文件中调用驱动程序。我正在寻找的是能够在浏览器之间切换并继续运行,而无需在不需要时在每个功能文件中调用新实例。
所以
Step 1 - User A logs in and registers using Chrome
Step 2 - User B logs in and approves using Firefox
Step 3 - Switches back to browser instance of step 1 with User A(who is already logged), views the update of acceptance.
我想知道这是否可以使用空手道?我阅读了文档,我们有 switchPage() 可以在同一浏览器的选项卡之间切换,但是有没有一种方法可以切换浏览器而无需重新启动新实例并再次登录?
任何关于如何实现这一目标的建议或帮助都会非常有帮助。
【问题讨论】:
标签: karate