웹 사이트 성능을 평가하는 지표로 활용되는 Lighthouse 점수.
브라우저로 사이트 접속 하고
개발자도구>Lighthouse 들어가서 점수 확인하는 일이 종종 있습니다
그렇다고
lighthouse 점수가 절대지표는 아니기 때문에(동일 시간에 측정해도 달라짐)
참고치로만 사용하고 있기는 하나
통계나 모니터링 수치로 활용하지 못하고 있습니다.
매번 누군가 수작업으로 기록하면 가능할 거라는 막연한 선입견 때문이....더 정확학 이유 입니다.
경험적으로 특정 시점 이후로 웹사이트 성능이 저하되는 것이 접수되면
그제서야 lighthouse 점수가 낮아졌음을 발견하기도 합니다.
그래서 lighthouse 점수를 일정 시간 간격으로 측정하고
기록하는 것을 자동화 하는 것에 대해 고민했습니다
요즘 업무 자동화에 활용하고 있는 파이썬으로 그 기능을 구현 했습니다
(DB 연동은 제외하고)
lighthouse 점수를 가져오는 코드는 아래와 같습니다
*테스트는 jupyter notebook 에서 수행되었습니다
import os
import json
# 필요한 패키지를 설치합니다.
os.system('npm install -g lighthouse')
# Lighthouse를 실행하고 결과를 JSON 파일로 저장합니다.
os.system('lighthouse --quiet --chrome-flags="--headless" --output=json --output-path=./report.json http://www.naver.com/')
# with open('example.txt', 'r', encoding='utf-8') as f:
# text = f.read()
# JSON 파일에서 데이터를 읽어옵니다.
with open('./report.json', 'r', encoding='utf-8') as f:
# print(f)
data = json.load(f)
# print(data)
# Lighthouse 점수를 출력합니다.
score = data['categories']['performance']['score'] * 100
print('Lighthouse performance 점수:', score)
score = data['categories']['accessibility']['score'] * 100
print('Lighthouse accessibility 점수:', score)
score = data['categories']['best-practices']['score'] * 100
print('Lighthouse best-practices 점수:', score)
score = data['categories']['seo']['score'] * 100
print('Lighthouse seo 점수:', score)
score = data['categories']['pwa']['score'] * 100
print('Lighthouse pwa 점수:', score)
[Result]
Lighthouse performance 점수: 32.0
Lighthouse accessibility 점수: 78.0
Lighthouse best-practices 점수: 92.0
Lighthouse seo 점수: 75.0
Lighthouse pwa 점수: 33.0
'programming > python' 카테고리의 다른 글
[Python]inconsistent use of tabs and spaces in indentation 에러 (0) | 2023.02.01 |
---|