0

我正在尝试使用 testcafe 编写一个可能在文档中产生冲突的测试。为此,我需要在 2 个不同的浏览器会话(一个是隐身窗口)中以 2 个不同的用户登录,并为每个用户打开文档编辑器并编辑相同的文本。在编辑内容时,两个用户都在编辑器中以产生冲突,这一点很重要。

有没有办法在 1 个 testcafe 测试中打开多个浏览器会话?或者同时处理具有 2 个不同用户角色的文档的替代解决方案?

测试的样子:

  1. 打开浏览器窗口
  2. 使用 User1 登录
  3. 导航到文档编辑器 (Tinymce)
  4. 打开隐身浏览器(不关闭第一个窗口)
  5. 使用用户 2 登录
  6. 导航到文档编辑器
  7. 使用 User1 将“文本”编辑为“紫色”,然后保存
  8. 使用 User2 将“文本”编辑为“黄金”,然后保存
  9. 断言冲突发生
4

1 回答 1

0

我为您做了一个示例,说明如何运行多个 TestCafe 测试并使用 Promise 同步它们:https ://github.com/DevExpress/testcafe-example-multiuser-scenario

克隆此存储库:git clone https://github.com/DevExpress/testcafe-example-multiuser-scenario.git

安装软件包:npm install并使​​用npm run test.

如果您使用这种方法,您的测试将如下所示:

test('Some test', async t => {
    await stage('First stage');
    //do somthing

    await stage('Second stage');
    //do anything else

    stage('End');
});

以及将推动各个阶段的脚本:

    await user1.runStage('First stage'); //will run the 'First stage' in the test and wait for the next stage request

    await user1.runStage('Second stage'); //will run the 'Second stage'

    user1.runStage('End');
于 2021-04-28T15:37:37.127 回答