Тестируйте кроссбраузерность в том же тестовом примере с помощью транспортира - PullRequest
0 голосов
/ 28 мая 2020

Мне нужно протестировать приложение чата, и я хочу протестировать один экземпляр chrome и другой экземпляр firefox и отправлять сообщения между ними. Из того, что я обнаружил, я могу открыть два сеанса браузера, но они предназначены для одного и того же приложения и используют различные возможности для тестирования всех кросс-платформенных тестовых примеров. Кто-нибудь пытался это сделать? Заранее спасибо.

Редактировать: Итак, я добавил это в конфигурацию транспортира, с которым я пытался протестировать один и тот же тестовый пример в нескольких браузерах

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

Я добавил это, и я смог запускать один и тот же тестовый пример в нескольких браузерах независимо.

Так как мне нужно было запустить тестовый пример в нескольких браузерах. Я обнаружил, что мы можем использовать browser.forkNewDriverInstance (). Это позволило мне запустить несколько windows одних и тех же браузеров. Это позволило мне протестировать больше сценариев ios. И теперь мне нужно иметь возможность протестировать несколько браузеров (firefox, chrome) в одном тестовом примере.

Пожалуйста, дайте мне знать, если потребуется дополнительная информация.

1 Ответ

0 голосов
/ 29 мая 2020

После поиска дополнительных страниц stackoverflow и проблем с 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));
    });
  });
...