Как измерить время загрузки iFrame во время теста с использованием селена и мокко? - PullRequest
0 голосов
/ 29 сентября 2019

Мой проект имеет панель управления KPI со встроенными отчетами PowerBI через iFrames.Чтобы усложнить задачу, каждый визуал / диаграмма во встроенном iFrame фактически является другим iFrame.

Так что это может выглядеть примерно так:

<!-- Parent PowerBI report iFrame -->
<iframe src="app.powerbi.com/reportembed?123">
    <!-- A line chart -->
    <iframe src="app.powerbi.com/visial?123"></iframe>
    <!-- A pie chart -->
    <iframe src="app.powerbi.com/visial?234"></iframe>
</iframe>

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

У меня есть проект с настройкой селена и мокко, чтобы выполнить несколько шагов.Я учусь на ходу, но в настоящее время я выполнил следующие шаги:

  1. Посетите страницу входа
  2. Введите учетные данные пользователя и отправьте форму
  3. Перейдите к URL-адресу панели мониторинга KPI
  4. Определите, что iFrame присутствует в DOM

Неразрешенные шаги: 5. Измерьте время загрузки для родительского iFrame 6. Я бы даже подумалвыборочная проверка нескольких выбранных вложенных iFrames для измерения их времени загрузки

Я подумал, что, возможно, я мог бы использовать API синхронизации навигации, чтобы получить время до domComplete родительского iFrame и дочерних iFrames.Оказывается, свойства производительности недоступны из-за перекрестных политик.Так что это не сработало:

// Test case
it('get iFrame load performance', () => {
    // Locate parent iFrame via xpath
    let parentIframe = By.xpath('//*[@id="embedContainer"]/iframe');
    driver.wait(until.elementLocated(parentIframe, 90000)).then(() => {
        // Execute JS on the current page
        driver.executeScript(
            'var iframe = document.getElementsByTagName("iframe")[0].contentWindow; console.log(iframe.contentWindow.performance.timing);'
        )
    });

});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...