Английский | 中文
Инструмент статистического анализа для тестирования производительности
Имя короткое для HI за формирование Или привет GH за форму
Привет, ребята, пожалуйста, представьте свою проблему на английском языке
请使用英语提 Выпуск
npm install hiper -g
# or use yarn:
# yarn global add hiper Примечание: It takes period (m)s to load ... period означает, что этот тест занимает время . Итак -n подняться, и период возрастает. не ошибка
| Ключ | Ценить |
|---|---|
| Время поиска DNS | Domainlookupend - DomainLookupStart |
| TCP подключить время | Connectend - ConnectStart |
| TTFB | responsestart - requestStart |
| Загрузить время страницы | Ответ - Ответ |
| После Dom Ready Time скачать | Domcomplete - Dominteractive |
| Время белого экрана | Dominteractive - NavigationStart |
| DOM готово время | DomcontentloadedEventend - NavigationStart |
| Время загрузки | Loadeventend - NavigationStart |
https://developer.mozilla.org/en-us/docs/web/api/performancetiming
hiper --help
Usage: hiper [options] [url]
A statistical analysis tool for performance testing
Options:
-v, --version output the version number
-n, --count < n > specified loading times (default: 20)
-c, --config < path > load the configuration file
-u, --useragent < ua > to set the useragent
-H, --headless [b] whether to use headless mode (default: true)
-e, --executablePath < path > use the specified chrome browser
--no-cache disable cache (default: false)
--no-javascript disable javascript (default: false)
--no-online disable network (defalut: false)
-h, --help output usage informationНапример
# We can omit the protocol header if has omitted, the protocol header will be `https://`
# The simplest usage
hiper baidu.com
# if the url has any parameter, surround the url with double quotes
hiper " baidu.com?a=1&b=2 "
# Load the specified page 100 times
hiper -n 100 " baidu.com?a=1&b=2 "
# Load the specified page 100 times without `cache`
hiper -n 100 " baidu.com?a=1&b=2 " --no-cache
# Load the specified page 100 times without `javascript`
hiper -n 100 " baidu.com?a=1&b=2 " --no-javascript
# Load the specified page 100 times with `headless = false`
hiper -n 100 " baidu.com?a=1&b=2 " -H false
# Load the specified page 100 times with set `useragent`
hiper -n 100 " baidu.com?a=1&b=2 " -u " Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36 " .json и .js config {
// options Pointing to a specific chrome executable, this configuration is generally not required unless you want to test a specific version of chrome
"executablePath" : "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" ,
// required The url you want to test
"url" : "https://example.com" ,
// options Cookies required for this test. It's usually a cookie for login information Array | Object
"cookies" : [ {
"name" : "token" ,
"value" : "9+cL224Xh6VuRT" ,
"domain" : "example.com" ,
"path" : "/" ,
"size" : 294 ,
"httpOnly" : true
} ] ,
// options default: 20 Test times
"count" : 100 ,
// options default: true Whether to use headless mode
"headless" : true ,
// options default: false Disable cache
"noCache" : false ,
// options default: false Disable javascript
"noJavascript" : false ,
// options default: false Disable network
"noOnline" : false ,
// options Set the useragent information
"useragent" : "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36" ,
// options Set the viewport information
"viewport" : {
// options
"width" : 375 ,
// options
"height" : 812 ,
// options default: 1 devicePixelRatio
"deviceScaleFactor" : 3 ,
// options default: false Whether to simulate mobile
"isMobile" : false ,
// options default: false Whether touch events are supported
"hasTouch" : false ,
// options default: false Is it horizontal or not
"isLandscape" : false
}
}Наличие файла JS для конфигурации позволяет людям использовать переменные ENV. Например, допустим, я хочу проверить сайт в аутентифицированном состоянии. Я могу передать некоторые файлы cookie, который используется для идентификации меня через переменные ENV, а наличие файла конфигурации на основе JS делает это простым. Например
module . exports = {
... .
cookies : [ {
name : 'token' ,
value : process . env . authtoken ,
domain : 'example.com' ,
path : '/' ,
httpOnly : true
} ] ,
... .
} # Load the above configuration file (Let's say this file is under /home/)
hiper -c /home/config.json
# Or you can also use JS files for configuration
hiper -c /home/config.jsПосле того, как мы разработали проект или оптимизировали производительность проекта,
Как мы измеряем производительность этого проекта?
Общий подход состоит в том, чтобы взглянуть на данные в performance и network в Dev Tool , записать несколько ключевых показателей производительности и обновить их несколько раз, прежде чем посмотреть на эти показатели производительности,
Иногда мы обнаруживаем, что из -за небольшого размера выборки текущая сеть/процессор/нагрузка на память сильно влияет, а иногда оптимизированный проект медленнее, чем до оптимизации.
Если есть инструмент, много раз запрашивать веб -страницу, а затем получить различные усреднения показателей производительности, мы можем очень точно знать, что оптимизация является положительной или отрицательной.
Кроме того, вы также можете провести сравнение и получить точные данные о том, сколько вы оптимизировали . Этот инструмент предназначен для решения проблемы.
В то же время этот инструмент также является хорошим инструментом для нас, чтобы узнать о «процессе нагрузки и рендеринга браузера» и «оптимизации производительности», чтобы мы не сделали неправильные выводы, когда слишком мало образцов
Грань
Добро пожаловать звезду и пиар
Copyright (C) 2018 Liyanfeng (Pod4G)