웹사이트 성능 테스트. sitespeed.io
똑똑한 웹사이트 성능 테스트. sitespeed.io
웹 사이트 성능을 테스트해주는 곳은 많다.
온라인에서 사이트 성능을 측정해주는 핑돔(http://tools.pingdom.com/fpt/) 같은 서비스도 있고,
크롬을 주로 쓰는 개발자라면 크롬 개발자 도구에 Pagespeed(https://developers.google.com/speed/pagespeed/)을 깔아 쓰는 방법도 있다.
sitespeed.io(http://www.sitespeed.io/)는 우연히 찾아낸 웹사이트 성능 테스트 도구인데,
이걸 보고 웃음이 절로 나왔다.
스머프처럼 랄랄라랄랄라 노래를 흥얼거리고 깡총 거리면서 걷게 되었다.
나를 기분 좋게 한 sitespeed.io의 특징
- 여러 페이지를 한 번에 테스트할 수 있다.
- 다양한 뷰포트를 지원한다.
- 유저 에이전트를 직접 지정해도 된다.
- 결과를 html 페이지로 깔끔하게 보여준다.
- 덤으로 페이지별 스크린 샷도 찍어 준다.
라는 감탄이 절로 나왔다.
그러나 기대가 크면 좌절도 큰 법.
내가 원하는 용도로 쓰려면 기능이 부족했다.
아쉬운 점 두 가지.
- RESTful 사이트를 지원하지 않는다.
- 테스트에 쿠키 정보를 넘기지 못한다.
보기만 좋지, 제대로 된 능력을 발휘하지 못하는 것이다.
마치 사막에 버려진 고래처럼...
다행인 점은 sitespeed.io(http://www.sitespeed.io/)가 오픈소스라는 점이다.
그래서 나는 이 녀석과 불금을 보내고, 주말까지 함께했다.
덕분에 RESTful테스트는 해결되었고, 쿠키부분은 몇 부분 더 손 봐야 하지만,
곧 두 가지를 보완한 정식 버전이 나올 예정이다.
혹시 정식 버전이 나오기 전에 써보고 싶다면 아래 두 저장소를 clone 받아 사용하면 된다.
* https://github.com/dorajistyle/yslow
* https://github.com/dorajistyle/sitespeed.io
yslow를 컴파일해서 sitespeed.io/dependencies/yslow-3.1.5-sitespeed.js로 붙여넣으면 테스트가 가능하다.
yslow 컴파일 방법
sudo make phantomjs
curl 쿠키 저장 (여기서 나오는 쿠키 정보를 텍스트로 넣어주면 된다.)
curl -c sitespeed.io/cookie -X POST -H "Content-Type:application/x-www-form-urlencoded;charset=UTF-8" -d 'loginEmail=admin@dorajistyle.pe.kr&loginPassword=password' http://dorajistyle.url/authentications
yslow 쿠키 테스트(yslow 폴더에서 실행)
phantomjs ./build/phantomjs/yslow.js --info basic --format plain 'http://dorajistyle.url/admin' -C '{"name":"session","value":"sessionvaluestring","domain":"localhost"}'
screenshot 쿠키 테스트 (sitespeed-result 폴더에 저장됨)
phantomjs --ignore-ssl-errors=yes sitespeed.io/dependencies/screenshot.js 'http://localhost/#!test/page' sitespeed.io/sitespeed-result/screenshots/screenshot.png 1280 800 'Mozilla/5.0 (Macintosh; Intel Mac OS X 1084) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36' true '{"name":"session","value":"sessionvaluestring","domain":"localhost"}'
로그를 포함한 sitespeed.io 쿠키 테스트 (sitespeed.io 폴더에서 실행)
sh -x ./bin/sitespeed.io -f batchlist -k true -p 10 -C '{"name":"session","value":"sessionvalue_string","domain":"localhost"}'