使用量角器在同一测试用例中测试跨浏览器

Test cross browser in the same test case using protractor

我需要测试一个聊天应用程序,我想测试的方法是打开一个 chrome 实例和另一个 firefox 实例,并在两者之间发送消息。根据我的发现,我可以打开两个浏览器会话,但它们用于同一个应用程序,并使用多种功能来跨平台测试所有测试用例。有没有人尝试过这个? 提前致谢。

编辑: 所以我将它添加到我尝试在多个浏览器上测试相同测试用例的量角器配置中

  multicapabilities:[
    {
       browserName: 'chrome'
    },
    {
       browserName: 'firefox'
    }
  ]

我添加了这个,我能够在多个浏览器上独立地 运行 相同的测试用例。

因为我需要一个在多个浏览器上的测试用例 运行。我发现我们可以使用 browser.forkNewDriverInstance()。这让我可以启动多个 windows 相同的浏览器。这使我能够测试更多场景。现在我需要能够在同一个测试用例中测试多个浏览器(firefox,chrome)。

如果需要提供更多信息,请告诉我。

搜索更多 Whosebug 页面和 github 问题后。我找到这篇文章 https://github.com/angular/protractor/issues/4962。这告诉我如何在同一个测试用例中同时启动 chrome 和 firefox。我使用的代码如下:

describe('Video Tests', () => {
    let ffBrowser: ProtractorBrowser;

    beforeAll(async () => {
        ffBrowser = await protractor.browser.forkNewDriverInstance().ready;
        (await ffBrowser.getProcessedConfig()).capabilities = {
          'browserName': 'firefox',
          'marionette': true,
          'moz:firefoxOptions': {
            'prefs': {
              'media.navigator.streams.fake': true,
              'media.navigator.permission.disabled': true
            }
          }
        } // new caps goes here;
        ffBrowser = await ffBrowser.restart();
    });

    it('testing cross browser', async () => {
      await browser.get(browser.baseUrl);
      await ffBrowser.get(browser.baseUrl);
      await browser.sleep(5000);
    });

    afterEach(async () => {
      // Assert that there are no errors emitted from the browser
      const logs = await browser.manage().logs().get(logging.Type.BROWSER);
      expect(logs).not.toContain(jasmine.objectContaining({
        level: logging.Level.SEVERE
      } as logging.Entry));
    });
  });