본문 바로가기
programming/WebAutomation

웹자동화 C# 셀레니움이란 웹 애플리케이션 테스트 오픈소스 프레임워크

by 개코 - 개발과 코딩 2023. 9. 8.

셀레니움은 웹사이트를 탐색하는 자동화 테스트 도구이다. C# 과 연동하여 사용할 수도 있다. 누겟 패키지 관리자에서 셀레니움 라이브러리를 설치하고 튜토리얼에서 시키는 대로만 해도 간단히 웹자동화를 할 수 있다. 하지만, 셀레니움의 막강한 기능이 독이 될 수도 있으니 무분별한 크롤링이나 스크래핑 등은 자제하도록 하자. 단순히 웹에 있는 콘텐츠를 수집하기에는 셀레니움은 아깝다는 생각도 있다.

웹자동화 / C# 셀레니움이란 웹 애플리케이션 테스트 오픈소스 프레임워크

회사일과 블로그를 병행하니 피곤함이 생긴다. 그렇기에 몸을 좀 추수릴 수 있는 대안을 찾아보았는데 웹자동화란 분야가 있었다.

웹자동화는 영어로 Web Automation 이라 하고, 검색을 해보면 꽤 많은 샘플코드나 블로그나 웹사이트 등에 활용할 수 있는 방법론들이 많이 있다.

여러가지 방법론들이 있지만 대표적으로 가장 많이 사용되는 것이 셀레니움 ( Selenium ) 이다.

셀레니움에 대해 찾아보면 웹 애플리케이션을 위한 자동화 테스트 도구이며, 샘플코드와 학습을 조금 해보니 이게 테스트 도구라고 할 수 있나 싶을 정도로 무지막지한 느낌이 있었다.

이런 무지막한 기능 때문인지 여러가지 제품군을 판매하는 사람들도 있고, 자작하여 괜찮은 앱을 만들어 배포하는 사람들도 있었다.

아마도 웹사이트를 봇이 봇이 돌아다니며, 데이터에 접근하다보니 크롤링 또는 스크래핑에 자주 사용되는 모양이었다.

단순히 이런 목적으로 나온 것은 아닌 것 같은데, 어쨌든 유용한 도구임에는 분명하다.

셀레니움 / Selenium

언제부터인지는 모르겠지만 웹자동화란 것이 생겼다.

주로 웹사이트들의 콘텐츠를 크롤링하고 재가공하거나 업무에 필요한 것을 보관하는 역할을 주로 한다.

셀레니움이 그저 이런 단순한 콘텐츠를 크롤링하기 위해 만들어 졌다면 공식홈페이지에 있는 고급 기능들은 필요가 없다.

셀레니움이 무엇인지 공식홈페이지의 내용을 읽어보면 웹사이트를 자동으로 검사하고 테스트하기 위한 목적의 라이브러리라는 것을 공지하고 있다.

셀레니움의 막강한 라이브러리는 웹사이트의 자동화가 아닌 단순히 데이터를 크롤링하고 재가공하는데 자주 사용되고 있다.

뭔가, 아쉬운 부분이긴 하지만, 셀레니움의 고급강좌를 찾아보면 단순히 데이터를 수집하는 용도가 아닌 백그라운드에서 웹사이트에 접속하고 데이터에 접근, 입력과 수정을 거치며 자동으로 테스트하는 것을 알 수 있다.

상당히 빠른 속도로 진행되기 때문에 만약 상업적인 웹사이트에 접근할 때는 주의를 표하는 문구도 있다.

셀레니움의 공식홈페이지를 방문하여 개요 정도는 읽어보자.

옵션과 웹브라우저에서 제공하는 드라이버를 사용하여 자신이 원하는 웹브라우저를 통해 웹사이트를 자동으로 테스트하는 것을 볼 수 있다.

흥미로운 점은 일반적으로 공개된 튜토리얼 말고도 상당히 고급진 기능을 제공해 주고 있는 것인데 이것은 Selenium IDE 를 통해 볼 수 있고, 추가로 코드에서 웹드라이버에 어떤 옵션을 설정하느냐에 따라 성능과 기능이 높아지기도 한다.

이런 옵션들이 너무 많기 때문에 당장 다루지는 못하지만 천천히 한번 다뤄볼 생각이다.

지원되는 언어들

어떤 목적으로 셀레니움을 사용할지에 대한 책임은 본인에게 있다.

누차 강조하는 것들이지만, 상용 목적의 웹사이트들을 대상으로 셀레니움을 사용해 데이터에 접근한다면 법적은 조치가 생길 수도 있다.

그도 그럴 것이 셀레니움 자체의 막강한 기능도 있지만, 현재 인기있는 언어들을 지원하고 있는 것도 한 몫한다.

그 중 파이썬 ( Pyton ) 과 연동하여 사용하는 것이 대표적이며, 다른 언어들은 개발자 또는 상황에 맞게 골라 사용할 수 있다.

본인의 경우 C# 과 셀레니움을 연동하여 사용해 보았을 때도 상당히 만족스러웠다.

하지만, 테스트는 테스트일 뿐 무분별하게 사용할 경우 서버에 부하를 줄 수 있고, 데이터 수집시 책임소재가 생길 수 있다.

아래는 셀레니움을 사용할 수 있는 언어들을 표시한 것이다. 

  • Python, JavaScript, Java, C#, Kotlin, Ruby

C#

본인의 경우 C# 으로 셀레니움을 처음으로 시도해 보았다.

파이썬이나 자바를 사용할 수도 있지만 비주얼스튜디오 IDE 의 막강함도 있다고 말하고 싶지만, 순전히 비주얼스튜디오의 윈폼 ( WinForm, WPF, UWP ) 에 익숙하기 때문이기도 하다.

C# 과 셀레니움을 연동하여 웹을 자동화하고 테스트하는 것은 간단하다.

누겟 ( NuGet ) 패키지 관리자를 사용하여 셀레니움과 관련된 라이브러리를 설치하고 셀레니움 공식 홈페이지에 있는 샘플코드를 그대로 따라하면 된다.

그리고 실행하면 셀레니움이 실행되고 크롬 또는 드라이버로 지정한 웹브라우저가 나타나 웹사이트를 탐색하고 데이터에 접근하는 모습을 볼 수 있다.

자동화를 해보자.

관심이 생겼다면 비주얼스튜디오를 설치하고 프로젝트를 생성한 후 누겟 패키지 관리자에서 셀리니움 라이브러리를 설치하자.

그리고 공식홈페이지에 있는 튜토리얼을 따라 코딩을 해 보도록 하자.

신기한 광경을 경험할 수 있을 것이다.

또한, C# 셀레니움 ( selenium )  으로 검색을 하면 웹사이트를 어떻게 자동화하고 셀레니움이 어떤 분야에 사용되는지 확인해 볼 수 있다.

꽤 흥미로운 부분들을 확인해 볼 수 있지만, 무분별한 크롤링은 자제하도록 하자.

심할 경우 제재를 받거나 일정시간 접속이 차단될 수도 있다고 하니 말이다.

반응형

댓글