Bahasa Inggris | 中文
Alat analisis statistik untuk pengujian kinerja
Namanya kependekan dari Hi Per Fasilitas Atau hi gh per fasilitas
Hai teman -teman, sajikan masalah Anda dalam bahasa Inggris
请使用英语提 Masalah
npm install hiper -g
# or use yarn:
# yarn global add hiper Perhatikan: It takes period (m)s to load ... period berarti tes ini membutuhkan waktu . Jadi -n naik dan periode naik. bukan bug
| Kunci | Nilai |
|---|---|
| Waktu pencarian DNS | DomainLookupend - DomainLookupStart |
| TCP Connect Time | Connectend - ConnectStart |
| Ttfb | ResponseStart - RequestStart |
| Unduh waktu halaman | ResponseEnd - ResponseStart |
| Setelah waktu unduh siap dom | DOMCOMPLETE - DomInteractive |
| Waktu layar putih | DomInteractive - NavigationStart |
| Waktu siap dom | DomContentLoadEventend - NavigationStart |
| Waktu muat | 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 informationMisalnya
# 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 dan .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
}
}Memiliki file JS untuk konfigurasi memungkinkan orang untuk menggunakan variabel Env. Misalnya, katakanlah saya ingin menguji situs pada keadaan yang diautentikasi. Saya dapat melewati beberapa cookie yang digunakan untuk mengidentifikasi saya melalui variabel Env dan memiliki file konfigurasi berbasis JS membuat ini sederhana. Misalnya
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.jsSetelah kami mengembangkan proyek atau mengoptimalkan kinerja suatu proyek,
Bagaimana kita mengukur kinerja proyek ini?
Pendekatan umum adalah melihat data dalam performance dan network di Dev Tool , merekam beberapa metrik kinerja utama, dan menyegarkannya beberapa kali sebelum melihat metrik kinerja tersebut,
Kadang -kadang kami menemukan bahwa karena ukuran sampel yang kecil, jaringan/cpu/beban memori saat ini sangat terpengaruh, dan kadang -kadang proyek yang dioptimalkan lebih lambat dari sebelum optimasi.
Jika ada alat, minta halaman web berkali -kali, dan kemudian mengeluarkan berbagai indikator kinerja rata -rata, kita dapat dengan sangat akurat mengetahui optimalisasi positif atau negatif.
Selain itu, Anda juga dapat membuat perbandingan dan mendapatkan data yang akurat tentang seberapa banyak Anda telah mengoptimalkan . Alat ini dirancang untuk menyelesaikan titik rasa sakit.
Pada saat yang sama, alat ini juga merupakan alat yang baik bagi kami untuk mempelajari tentang "proses pemuatan dan rendering browser" dan "optimasi kinerja", sehingga kami tidak mendapatkan kesimpulan yang salah ketika ada terlalu sedikit sampel
Mit
Selamat Datang Bintang dan PR
Hak Cipta (C) 2018 Liyanfeng (POD4G)