Hit與Click 我們打開一次網頁是一次Click,會產生很多Hit,頁面東西越多打開一次網頁產生的Hit數越多
備注:web項目會有Hit與click數不一致的情況。接口測試一般是沒有圖片和樣式表的,一次click對應一個hit
HPS(Hits per second) :每秒點擊數
問:工具比手工在瀏覽器中打開網頁的速度慢是什么原因?
問下用的是什么跑的,比如lr11之前版本跑開的通道2個,之后的版本是6個通道,瀏覽器開的6個通道, 速度肯定是不一樣的。
迅雷下載快開的通道快,lr通道少下載會超時,下載一般不用工具測
首頁是非資源請求,圖片樣式表等是資源類請求。 非資源請求對服務器壓力大,資源類主要是下載 消耗網絡資源,
不想把服務器壓死,人很多,每個業務間加間隔時間, 一分鍾內,請求次數少,壓力小,用戶正常運行,響應時間短,服務器沒什么壓力
想把服務壓死,不要停頓時間,或把圖片樣式表都去掉。
web的前端性能:頁面渲染- ---和瀏覽器類型也有關系
js性能(Dynatrace Ajax Edition):能定位到js源碼的位置
做性能測試前,web項目,可先評估下前端性能,這個成本最低
可做個前端性能監控平台(通過頁面的形式把前端性能展示出來)
yslow工具:前端性能評估 統計一個頁面的前端性能情況
YSlow分析的是樣式表放的位置對不對。JS放的位置對不對,有沒有開啟壓縮,有沒有使用CDN服務器。有沒有一些空白的,比如src源碼等於空。有沒有加過期頭。都是一些前端網頁設計的優化部分。關心的是客戶端前端的設計問題
安裝yslow:
火狐瀏覽器中的插件:火狐瀏覽器版本12 firefox中=》裝firebug--》yslow
(火狐瀏覽器裝好后,把firebug直接拖到瀏覽器中安裝就可以,然后重新打開瀏覽器吧yslow拖瀏覽器中)
我們安裝下Firefox。裝好之后最好先去設置一下不讓它去檢查更新。我裝的是版本12
yslow使用:
裝好之后再次打開火狐瀏覽器,就是會出現下圖這個頁面。然后點一下頁面中那個小蟲子按鈕就激活了。
接下來我們輸入一個地址,然后點蟲子按鈕激活。
我們做自動化測試,一般取元素的時候是先點下取元素按鈕,然后點下輸入框,就可以取到了。也可以取頁面中圖片元素,如果看的不順眼,也可以改改。這說做調試用的。
在Firebug里面可以看到YSlow標簽。
想知道百度這個首頁多少分呢,點上圖中的Run Test按鈕,告訴是A,92分。
我們的核心不在於它得多少分,而在於它為什么得這么多分,是基於什么樣的標准來評判出來分數的。
它是基於這23個規則來判斷的,你不滿足就給你扣分。它不是對整個網站評分的,是針對當前頁面評分的。你一個網站不同的頁面得分肯定是不一樣的。
它主要是針對前端進行評分的。它處有一個好就是你拿過公司的網站一評分得了50分,那肯定直接就不過關。最起碼要70分以上才行吧。
有一次打開一個公司網站48分,打開一個首頁7M數據,你想想如果用手機上網那的多費流量。
一會給大家發一本書,是一個老外寫的,專門寫着23個規則的。
我們來看看這23個規則。為什么的了76分。
第一個規則:網頁得了個D,A是最高的,所有說這個網頁沒有符合這個規則,
規則的意思是減少http請求。什么意思呢?頁面上28個資源,產生28個請求吧,它是說你如果28個請求的話,你還不如有20個請求來的快一些,就是讓你減少請求的次數,或者說減少連接的次數。
那我們怎么怎么去減少請求的次數呢?
合並。比如你有多個樣式表的話合並成一個。有多個js合並成一個;有多個圖片的話做成圖片地圖。
右側的規則描述:有4個額外的JavaScript建議嘗試去把他合並成一個。
減少頁面組件的次數,可以更好的渲染這個頁面,更快的去加載。
我們看下慧測官網頁面,聯系我們中的公司簡介、乘車路線等文字描述是一個圖片。怎么能讓他分別顯示到這不同區域的三塊呢,這就是圖片地圖。
第二個規則:第二個規則得了F,最低了。
規則的意思是,你應該使用一個CDN服務器。
一般大型的網站都會用到CDN服務器,像京東,假設京東總站在北京,深圳的用戶想去訪問這個網站的時候,大家都知道京東的網站上圖片最多。如果都從北京下載圖片,會撐爆的。所有會在深圳那邊放一台服務器用來放圖片,這上面的圖片和北京這邊是一模一樣的,當深圳用戶訪問京東時,首頁是從北京下載,圖片是從深圳的服務器上下載。頁面上的所有靜態資源都從離他最近的節點去下載。
深圳的這個服務器就是CDN服務器。CDN是為了解決跨區域的限制。
像這種開發一般沒法改。
下面這個規則意思是:避免空的src,應該去加載過期頭,什么是過期頭呢?
就是說這個資源加上一個過期時間,意思是在這個時間還沒到的情況下以后就不再請求了。准備下載,提高性能,你不加的話他會認為這個時間過期了沒有啊,他會去檢測的。你加過期頭,他就不再去檢測了。一般加過期頭,是針對咱們的靜態資源加過期頭。
再下一個規則:文件應該被壓縮。后面描述說有7個文本文件應該被壓縮。
下面還有一些規則,比如把樣式表應該放到最上面。
JavaScript應該放到最下面。先渲染后執行。先去執行js會阻塞后面的渲染,頁面一片白。
這個規則看不懂沒關系,我們到Tools里來。點Printable View(打出報告),如下圖:
直接給出報告,然后告訴開發,只要是紅字的都去修改吧。紅字的代表都是需要去優化和提高的地方。這個報告沒法導出來,你可以另存為或直接截圖。
報告下面,頁面上一共有31個組件,共199.7k都告訴你了,每個組件的大小都有。
ms是毫秒。148ms=0.148s
你也可以看看YSlow工具,組件這個地方。doc就是首頁。 22k,沒壓縮還是22k
可以看看百度的。如下圖,壓縮了吧。101.8k壓縮到33.9k。百度上很多東西都壓縮了。
圖片有時候會越壓縮越大,因為它的密度本身就很大了,就像一個鐵球。
所以我們可以在服務器端設置樣式表啊文本文件啊進行壓縮。圖片不進行壓縮。
dynatrace ajax edition工具:前端性能分析
備注:ajax edition版免費,但是還需要注冊,注冊過期了還不能用,還需要重新注冊。可以裝到虛擬機里,注冊過期了就還原到之前的快照。
安裝后怎么打開:IE瀏覽器——》查看--》工具欄--》點dynatrace ajax 工具
使用:
1)在瀏覽器中打開要監控的網站,
2)點瀏覽器中的綠色按鈕(connect to AJAX Edition),啟動工具,起來后點確定,然后在瀏覽器上點要監控的網頁就行了,點完后關了瀏覽器就會在dynatrace中自動生成一個報告
性能報告:會有個得分,可看到調用當前這個花的時間和當前這個調用后面一個花的時間。我們一般看他后面的有意義,比如你花了10s,你花了1s,你下面的函數花了9s,這里可以看到是哪段js花的時間比較長
PurePaths:這個是必須要看的,能看到 js花的時間,和這個js對應的源碼都能看到
Activity kind 是指什么花的時間,比如網絡、js、渲染Rendering
可以截個圖告訴開發,是Details這個js文件 ,花的時間是Duration【ms】,對應的源代碼
showslow監控平台:基於Linux搭建前端性能監控平台
showslow下安裝MySQL數據庫,yslow和dynatrace的數據都可以放到這個平台。比如showslow電腦的ip是192.168.8.105,輸入http://192.168.8.105/showslow能收集到yslow、pagespeed、dynatrace的數據
shoslow是php寫的,所以需要安裝apache
安裝:
1)下載showslow
放到var/www//html 下,解壓縮unzip showslow_1.2.zip
修改文件名mv showslow_1.2 showslow
cd showslow,修改配置文件
查看下配置例子文件:more config.sample.php 里面需要修改數據庫信息
復制一份配置文件出來:cp config.sample.php config.php
修改配置文件:vi config.php
庫名、用戶名root、密碼,我的數據庫密碼是空
備注:如果沒有數據庫,先建個庫,進入mysql:create database showslow;
更新下數據:http://192.168.8.105/showslow/dbupgrade.php
輸入訪問地址:http://192.168.8.105/showslow/
如果訪問不了,查看下日志:/var/log/httpd tail -f error_log
2)打開火狐瀏覽器,在地址欄中輸入about:config,點頁面中的 我保證會小心 按鈕,然后就能在這里修改一些yslow的配置信息
配置好后,打開yslow 就會把信息自動發送到showslow的數據庫中