打開Firefox輸入:about:config(我保證會很小心的)filter中輸入:yslow修改以下三條數據
extensions.yslow.beaconUrl = http://localhost/showslow/beacon/yslow/
如果測試和服務器不在同一機器上,請將localhost改成實際地址
extensions.yslow.beaconInfo = grade
extensions.yslow.optinBeacon = true
重啟Firefox,have fun :)
還等什么?開始你的測試之旅吧,查看測試報告的URL是:http://localhost/showslow/
在這個地方遇到了一個問題就是所有配置都是正確的情況下,ShowSlow依然接收不到YSlow發送的測試數據,后來在 RedHat的服務器上搭建環境同樣遇到了這個問題,經過SA白非童鞋的幫助查看Apache的報錯日志(/var/log/apache2 /error.log)發現罪魁禍首是腳本中需要的幾個模塊必須是PHP5.2以上的版本,遂升級PHP至最新版本可解決問題。
test_harness.pl
這個腳本是用Perl語言寫的,我也是剛接觸這個語言,但是我還是推薦各位童鞋看看他的文件結構,老外寫的代碼閱讀起來還是比較舒服,附帶著大量注釋方便我這樣的小白也能輕松理解每個函數的意義。我們主要需要用到的是display,profile,source這三個屬性(具體作用 ReadMe有解釋),可以參考下我運行這個腳本的方式:
perl test_harness.pl -display=:1 -source http://localhost/URLs -profile /home/eric/FFProfiles
Can’t locate POE.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.10.1 /usr/local/share/perl/5.10.1 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl .) at test_harness.pl line 100.
BEGIN failed-compilation aborted at test_harness.pl line 100.
這個問題糾結了我好幾天,百思不得其解,關鍵還是我第一次使用Linux和Perl,對于很多報錯信息都可以熟視無睹(請鄙視我),最后請教了Sergey童鞋,才恍然大悟原來是沒有安裝POE(請再次鄙視我),解決辦法參考如下:
sudo perl -MCPAN -e shell (sudo很關鍵啊,內牛滿面)
cpan> install POE
如果提示YAML沒有安裝 (類似于XML的數據描述語言)
cpan>install YAML
cpan> exit
這個時候自動化腳本已經開始運行了,我們可以通過外部機器訪問虛擬機搭建的ShowSlow查看測試結果 (Ubuntu使用ifconfig查看本機IP地址,注意虛擬機網卡要設置成Bridged方式)
monitor.sh
自動調用之前編寫test_harness.pl腳本,當我們將調用test_harness的一些參數添加進monitor后使用Linux的Cron就可以實現自動化測試了:)
注意將腳本文件夾的絕對路徑賦值給Xvfb_PIDFILE,因為每次執行的時候系統會自動生成一個__xvfb.pid
2010-7-1日更新
在Ubuntu和RedHat環境搭建下的Showslow平臺點擊測試URL進入Detail Page發現“Measurements over time”和“YSlow measurements history”兩個區域的圖形繪制不出,自己找了很久一直沒有頭緒,只好求助于ShowSlow的作者Sergey…
1 確保config.php文件中的$showslow_base=http://localhost/showslow/
2 查看phpinfo()確保Apache的模塊mod_rewrite加載并啟用了
1 Enable mod_rewrite
sudo a2enmod rewrite ;
2 change all of ”AllowOverride none” to “AllowOverride All”
sudo vim /etc/apache2/sites-enabled/000-default ;
3 Restart apache2
sudo /etc/init.d/apache2 restart;
刷新一下頁面圖形是不是回來了:)
在實際工作中我們還遇到了一個不大不小的問題就是有些頁面需要登錄才能訪問,而我們的測試環境又是全自動化的,所以在這里需要用到 Firefox的一個插件叫做Greasemonkey,可以執行JS腳本,這樣只需要我們編寫一個自動登錄的小JS腳本,然后在 Greasemonkey中設置那幾個URL需要使用這個腳本,這樣每次訪問需要登錄的界面就會自動登錄了。
參考文檔(部分需要翻墻):
http://developer.yahoo.com/performance/rules.html
http://en.wikipedia.org/wiki/Xvfb
http://developer.yahoo.com/yslow/
http://www.showslow.com/
http://www.ubuntu.com/
http://www.sergeychernyshev.com/blog/automating-yslow-and-pagespeed-using-xvfb/
http://www.linkedin.com/in/xiphoidindustries
http://groups.google.com/group/showslow/browse_thread/thread/5a2b19db7dfbefb7
-EOF-
原文轉自:http://blogread.cn/it/article/2005?f=sa