none
Экспорт времени полной загрузки страницы. RRS feed

  • Question

  • Господа!

    Как можно штатными методами (Bat, PowerShell) без использования стороннего софта измерять время открытия страницы и экспортировать его в файл TXT единой цифрой в мс? На скриншоте указал какие цифры мне интересны. Как результат хочу иметь файл на жестком диске с одной единственной цифрой в миллисекундах. Спасибо!

    Tuesday, January 22, 2019 5:12 PM

Answers

  • вам что в итоге надо получить\сравнить?

    фактически та циферка на скриншоте в записи мало чо значит(просто сумма времени по всем позициям).

    время загрузки всех элементов на страничке?

    время обработки странички с учетом рендера(причем это зависит от текущей производительности компа)?

    а если там еще и элементы с задержкой подгружаются?

    мы оцениваем работу конкретно ишака\едж?

    просто можно например не парится и взять меже-комманд{инвоук-вебреквест гугль.ком} это одно, а например запустить браузер, открыть страничку и подождать это уже другое:

    вот на коленке набросал:

    $url = "http://contoso.com" 
    $ie = New-Object -com internetexplorer.application; 
    $ie.visible = $true; 
    Measure-Command{
    $ie.navigate($url);
    while ($ie.ReadyState -ne 4) 
    { 
        Start-Sleep -Milliseconds 1
    } 
    }
    


    • Marked as answer by Аero Wednesday, January 23, 2019 3:35 PM
    Wednesday, January 23, 2019 10:40 AM

All replies

  • вам что в итоге надо получить\сравнить?

    фактически та циферка на скриншоте в записи мало чо значит(просто сумма времени по всем позициям).

    время загрузки всех элементов на страничке?

    время обработки странички с учетом рендера(причем это зависит от текущей производительности компа)?

    а если там еще и элементы с задержкой подгружаются?

    мы оцениваем работу конкретно ишака\едж?

    просто можно например не парится и взять меже-комманд{инвоук-вебреквест гугль.ком} это одно, а например запустить браузер, открыть страничку и подождать это уже другое:

    вот на коленке набросал:

    $url = "http://contoso.com" 
    $ie = New-Object -com internetexplorer.application; 
    $ie.visible = $true; 
    Measure-Command{
    $ie.navigate($url);
    while ($ie.ReadyState -ne 4) 
    { 
        Start-Sleep -Milliseconds 1
    } 
    }
    


    • Marked as answer by Аero Wednesday, January 23, 2019 3:35 PM
    Wednesday, January 23, 2019 10:40 AM
  • Мне нужно общее время, как раз та цифра, которая включает в себя итоговые показатели загрузки всех элементов. А как заставить ваш скрипт не использовать кэш и выкладывать данные в файл, постоянно перезаписывая результат одной единственной цифрой в миллисекундах?
    Wednesday, January 23, 2019 3:34 PM
  • Мне нужно общее время, как раз та цифра, которая включает в себя итоговые показатели загрузки всех элементов. А как заставить ваш скрипт не использовать кэш и выкладывать данные в файл, постоянно перезаписывая результат одной единственной цифрой в миллисекундах? И окошко браузера не открывать каждый раз, а просто делать это в фоне без интерфейса?

    Wednesday, January 23, 2019 3:35 PM
  • на будущее, не помечайте тему ответом если остались доп. вопросы.

    ответов можно поставить несколько, если что, но лучше потом, т.к. в помеченный ответом вопрос меньше народу смотрит.

    как то так(про кеш еще не смотрел, и скрипт не запускал, до работы доползу там гляну)

    $url = "http://contoso.com" 
    $ie = New-Object -com internetexplorer.application 
    $ie.visible = $false
    
    while ($true){ 
    $time=Measure-Command{
    $ie.navigate($url);
    while ($ie.ReadyState -ne 4) 
    { 
        Start-Sleep -Milliseconds 1
    } 
    }
    echo ($time.TotalMilliseconds) > "C:\temp\123.txt"
    #timeout till refresh
    Start-Sleep -seconds 600
    }



    • Edited by Svolotch Thursday, January 24, 2019 7:10 AM
    Thursday, January 24, 2019 5:00 AM
  • и вообще такие вопросы в скриптинг бы надо кидать
    Thursday, January 24, 2019 5:03 AM
  • ну и как бы неплохо бы узнать, зойчем вам это все? что в итоге хотите?

    UPD, с условием повтора накосячил

    ща поменяю.


    • Edited by Svolotch Thursday, January 24, 2019 7:10 AM
    Thursday, January 24, 2019 7:10 AM
  • Мы используем безагентскую систему мониторинга, которая должна собирать статистику качества работы интернет для конечного пользователя, по сути этот скрипт одна из его составляющих, по факту если у пользователя есть трудности с замедлением открытия страниц (и совершенно не важно по какой причине), нам необходимо реагировать быстрее чем начнутся массовые жалобы, как минимум потому что вал заявок может прийти в 17:59:59. Задача системы будет просто раз в 10-15 минут забирать цифры с текстовика, а его работу зашедулить например раз в минуту. Исключить кеш реально? Или он не будет играть роли из-за TTL странички?

    Еще раз огромное спасибо!
    • Marked as answer by Аero Friday, January 25, 2019 10:37 AM
    • Edited by Аero Friday, January 25, 2019 10:37 AM
    • Unmarked as answer by Аero Friday, January 25, 2019 10:37 AM
    Friday, January 25, 2019 10:35 AM
  • $url = "http://contoso.com" 
    $ie = New-Object -com internetexplorer.application 
    $ie.visible = $false
    #$ie.visible = $true
    
    while ($true){ 
    $time=Measure-Command{
    $ie.navigate($url,4) #flag 4 navNoReadFromCache.
    
    while ($ie.ReadyState -ne 4) 
    { 
        Start-Sleep -Milliseconds 1
    } 
    }
    echo ($time.TotalMilliseconds) >> "C:\temp\123.txt"
    echo ($time.TotalMilliseconds) 
    #timeout till refresh
    Start-Sleep -seconds 60
    }

    ну как то так... потестируйте

    учтите что сам скрипт уже в бесконечном цикле, ну и не забудьте что $ie.quit() в этом варианте как бы не предусмотрен и если вы сто раз вызовете скрипт и ручками стопните у вас сотня невидимых тырнет эксплореров будет висеть (ужас-ужас,ААААА! :-) )



    • Edited by Svolotch Friday, January 25, 2019 1:10 PM
    Friday, January 25, 2019 1:08 PM
  • Спасибо, а quit куда необходимо подставить? Чтобы после измерения времени закрывать невидимые окошки?
    Monday, January 28, 2019 9:12 PM
  • смотрите, в случае скрипт работает следующим образом - создается невидимый обьект интернет эксплорера затем в бесконечном цикле 

    while ($true){

    бла-бла-бла

    }

     запускается  следующая последовательность

    переменной тайм присваевается значение времени выполнения вызова странички с указанием не использовать кеш при этом в цикле с временем опроса в 1 миллисекунду дожидаемся загрузки странички (READYSTATE_COMPLETE)

    затем пишем данные в файл и ждем сколько то секунд до следующей итерации бесконечного скрипта.

    по сути вам нужно убрать бесконечный скрипт и воткнуть $ie.quit() 

    кстати как вариант в начале неплохо было бы убирать данные из файла чтоб в случае бесконечной загрузки странички у вас старые данные в файле не бултыхались, или воткнуть таймаут условие на слишком долгую загрузку.

    Tuesday, January 29, 2019 2:20 PM