[파이썬] Selenium 웹 페이지의 메모리 사용량 측정

Selenium은 웹 페이지를 자동으로 테스트하고 제어할 수 있는 강력한 도구입니다. 그러나 대규모의 웹 페이지를 테스트할 때는 페이지의 메모리 사용량에 대한 관심이 있는 경우가 많습니다. 메모리 누수를 감지하거나 성능 문제를 조기에 확인하기 위해서는 Selenium을 사용하여 웹 페이지의 메모리 사용량을 측정해야 할 수도 있습니다.

이 블로그 포스트에서는 Python과 Selenium을 사용하여 웹 페이지의 메모리 사용량을 측정하는 방법을 알아보겠습니다.

사전 준비

먼저, 아래와 같이 필요한 패키지를 설치합니다.

pip install selenium psutil

그런 다음, Selenium WebDriver와 관련된 웹 브라우저 드라이버를 다운로드하고 설치해야 합니다. 여기에서는 Chrome 브라우저를 사용하기 때문에 ChromeDriver를 설치해 보겠습니다.

  1. Chrome 드라이버 다운로드: https://sites.google.com/a/chromium.org/chromedriver/downloads
  2. 압축을 풀고 실행 가능한 파일(chromedriver.exe 또는 chromedriver)을 원하는 위치에 저장합니다.
  3. 저장된 위치를 환경 변수에 추가합니다.

메모리 사용량 측정 코드

이제 Selenium을 사용하여 웹 페이지의 메모리 사용량을 측정해 보겠습니다. 아래의 예제 코드는 Google 홈페이지의 메모리 사용량을 측정하는 예입니다.

from selenium import webdriver
import psutil

# Chrome 브라우저를 사용하여 WebDriver 생성
browser = webdriver.Chrome()

# 페이지를 로드하고 필요한 작업을 수행
browser.get("https://www.google.com/")
# 여기에서 원하는 작업을 수행합니다.

# 메모리 사용량 측정
process = psutil.Process(browser.service.process.pid)
memory_info = process.memory_info()
memory_usage = memory_info.rss / 1024 / 1024  # RSS 값은 바이트 단위이므로 MB로 변환

# 측정 결과 출력
print(f"메모리 사용량: {memory_usage:.2f} MB")

# 브라우저 종료
browser.quit()

위의 코드에서 webdriver.Chrome()을 사용하여 Chrome 브라우저의 WebDriver를 생성하고, browser.get()을 사용하여 웹 페이지를 로드합니다. 그런 다음 psutil 패키지를 사용하여 브라우저 프로세스의 메모리 사용량을 측정합니다. 마지막으로 메모리 사용량을 출력하고, browser.quit()을 호출하여 브라우저를 종료합니다.

이와 같은 방식으로 웹 페이지의 메모리 사용량을 측정할 수 있습니다. 여러번 실행하여 평균값을 내거나, 다른 페이지에서도 동일한 작업을 수행하여 비교하면 성능 문제를 조기에 감지할 수 있습니다.

이 글을 통해 Selenium을 사용하여 웹 페이지의 메모리 사용량을 측정하는 방법을 배웠습니다. 이를 활용하여 성능 개선을 위한 테스트와 디버깅에 도움이 될 수 있습니다.