13

비디오 광고 배포 기술인 테스트 할 시스템이 있습니다. 광고를 게재하려면 1-2 분과 같은 모든 동영상을로드해야합니다. 동영상은 플래시 클라이언트에서 재생되며 YouTube와 같은 FLV 스트림으로 스트리밍됩니다.셀레늄을 사용한 무거운 하중 시뮬레이션 테스트 방법

브라우저를 통해서만 테스트해야하며 다른 모든 방법으로는 작동하지 않는 이유는 비디오 스트리밍 서버와 광고 서버를 동시에 테스트하고 광고를 실시간으로 표시하는 것입니다.

저는 Selenium, WatiN, Automation Anywhere 및 기타 많은 자동화 도구를 사용했습니다. 그러나 내 컴퓨터 (32GB RAM, 16 코어 CPU)에서 10000 개의 브라우저처럼 시작하려고 할 때 그 중 누구도 그 일을 할 수 없습니다.

Selenium을 사용하면 지금까지 최대 FireFox 인스턴스를 시작할 수 있지만 여전히 너무 낮습니다. 인스턴스의 절반이 테스트를 실행하지 않습니다.

Selenium과 어떤 제안이 있습니까?

+0

로드를 시뮬레이트해야하는 경우 pylot (http://pylot.org/)이라는 오픈 소스 도구를 사용할 수 있습니다.이 도구는 동시 연결을 시뮬레이션 할 수 있으며 XML로 작성된 테스트 시나리오를 제공 할 수 있습니다 그 자리에서). 이 도구는 실제 브라우저를 사용하지 않습니다. – alonp

답변

4

컴퓨터에서 10,000 개의 브라우저를 실행하지 않을 것입니다. 그러면 브라우저 인스턴스 당 3.2MB의 실제 메모리가 생기고 파이어 폭스는 그렇게 생각하지 않을 것입니다.

많은 스레드로 서버를 치는 JMeter 스크립트를 만들 수 있습니다. 그것은 UI와 상호 작용하지 않지만 당신이 말하는 모든 URL을 치는 많은 클라이언트의로드를 시뮬레이션합니다. 나는 또한 세션을 기록하고 세션을 쉽게 설정할 수있는 기능을 포함하고 있다고 생각한다.

+0

10000은 가상의 숫자였습니다. 현재 서버 설정이 1000-5000이라면 괜찮을 것입니다. Jmeter는 테스트에 성공하기 위해 1 분 동안 실행해야하는 리치 미디어 애플리케이션을 가지고 있기 때문에 필자의 경우 유용하지 않다. –

+2

3.2MB 또는 32MB 램, 나는 파이어 폭스가 어느 쪽이든 똑같이 질식 할 것이라고 의심한다. 클라이언트가하는 일에 대해 누가 신경 쓰는지에 대해 1000 개의 쓰레드를 던질 계획이라면 서버를 테스트하고있는 것일까? 클라이언트가 미디어를 사용하여 완전한 기능을 갖춘 Firefox를 사용하고 있는지 여부와 함께 리치 미디어 앱과 동일한 타이밍으로 적절한 URL을 꼬거나 짤 때 서버에 문제가 발생하지 않을까요? – digitaljoel

+2

테스트는 부하가 걸린 서버뿐만 아니라 스트레스를받는 리치 미디어 앱의 작동 방식과 관련이 있습니다. 가능한 가장 가까운 실제 사용자 시나리오를 여기에서 테스트하려고합니다. 말풍선 요청은 리치 미디어 클라이언트 앱을 실행하지 않으므로 전체 애플리케이션의 실제 테스트가되지 않습니다. –

1

Windows 컴퓨터를 사용하는 경우 경험할 때 열어야하는 브라우저 창의 인스턴스 수에 제한이 있습니다. 지난 번 테스트 할 때마다 100-150 개의 브라우저 창을 제한합니다.

브라우저가 필요없는 헤드리스 로봇을 사용하는 것이 좋습니다. Selenium의 최신 버전에는 그 기능이 있다고 생각합니다. 하지만 JMeter 또는 LoadRunner와 같은 부하 테스트 도구를 사용하여 10,000 이상의 사용자 인스턴스를 시뮬레이트 할 때로드 테스트와 비슷한 것으로 보입니다.

+0

Iam은 Serenium과 함께 500 + firefox 인스턴스를 실행할 수 있지만 문제는 절반이 기록 된 테스트 스크립트를로드하지 않는다는 것입니다. 단지 빈 브라우저 만 표시합니다. 이 테스트는 실제 브라우저가 없으면 불가능합니다. 테스트 시나리오에 대한 세부 정보가 담긴 원래 게시물을 업데이트합니다. –

+0

Sumit, 활성 브라우저 창으로 테스트를 실행해야하는 경우 지금 다음 옵션이 있습니다. –

+0

활성 브라우저 창을 사용하여 테스트를 실행해야하고 이미 셀렌 스크립트를 작성하는 데 많은 시간과 비용을 투자해야하는 경우 Sumit를 사용하십시오. 다음 옵션을 제안하십시오. 1) Amazon EC2에서 여러 인스턴스를 사용하십시오. EC2 인스턴스에서 Selenium Grid를 설정할 수 있습니다. 자세한 내용은 http://selenium-grid.seleniumhq.org/setting_up_selenium_grid_on_ec2.html을 참조하십시오. 2) 데이터 보안 또는 기타 이유로 인해 클라우드를 사용할 수없는 경우 랩에서 여러 테스트 시스템을 사용하여 셀레늄 그리드를 설정할 수 있습니다. 개인적으로 EC2를 빠르고 쉽고 저렴한 옵션으로 사용하는 것을 선호합니다. –

1

고객이 높은 트래픽을 기반으로 무엇을 볼 것인지 확인하려고하는 것입니까?

이 경우 Joel은 정확합니다. 만약 당신이 절대적으로 을 가지고 있다면 클라이언트가 보는 것을 보아라. 스레드 히트를 사용하고 결과를 데이터베이스에 덤프 할 수있다. 그러면 클라이언트가 볼 수있는 모든 것이 표시되며 수천 개의 브라우저 인스턴스보다 정렬하기가 훨씬 쉽습니다.

어느 쪽이든 서버쪽에 오류가없는 경우 클라이언트에 오류가 표시되지 않습니다. 대역폭이 제한된 환경, CPU 집약적 인 환경 또는 메모리 집약적 인 환경에서 기능을 테스트하는 경우 수천 개의 브라우저 인스턴스를 실행하는 것보다 훨씬 쉽습니다.

5

Selenium은 특히 로컬에서 브라우저를 실행하는 경우로드/스트레스 테스트를 위해 실제로 최적화되지 않았습니다. 1000 개 이상의 브라우저를 실행하면 가장 힘든 서버조차 막을 수 있습니다. RAM은 명백한 병목이지만 CPU 리소스와 대역폭이 제한되어 있습니다. 동영상을로드하는 경우 후자가 가장 큰 관심사입니다.

로드 밸런싱이 제대로 작동하지 않을뿐만 아니라 특정 가상 사용자에게 실제 비디오 광고를 배포하지 못할 수도 있으므로 10k 브라우저가있는 단일 IP에서 테스트 할 수 있습니다.

기존 Selenium 테스트를 계속 사용하려면 BrowserMob과 관련하여 좋은 경험을했습니다. 그들은 기본적으로 AWS에 분산 된 실제 브라우저로드 테스팅을 수행하는 거대한 그리드를 가지고 있습니다.

또 다른 권장 사항은 실제 성능 테스트 도구입니다. Soasta CloudTest을 권하고 싶습니다. 100 명의 사용자를 대상으로하는 무료 버전이 있으므로 귀하에게 적합할지 여부를 확인할 수 있습니다. 클라우드 테스트를위한 스크립팅이 비교적 간단하다는 것을 알았습니다.

면책 조항 : 양사에 대한 저의 경험은 유료 고객이었으며 결코 일하지 않았습니다.

+0

BrowserMob이 Neustar로 변경된 것 같습니다 ... –

0

귀하의 게시물은 어떤 형태의 광고 기반 사기의 냄새가 나지만, Firefox 이외의 다른 웹 브라우저 사용을 고려해 보셨습니까? PhantomJS은 Selenium과 호환되는 헤드리스 웹킷 기반 브라우저입니다. DOM 처리, CSS 선택기, Javascript 및 Canvas와 같은 모든 핵심 브라우저 기능을 지원합니다. 나는 그것이 플래시를 지원하는지 모른다.

This 게시물에는 사용자가 고려할 수있는 다른 헤드리스 및 자동 웹 브라우저의 목록이 있습니다.

또한 각 브라우저 인스턴스가 플래시 플러그인을 인스턴스화하는 경우 Firefox가 아닌 Flash에서 문제가 발생할 가능성을 무시하지 마십시오. 또는 여러 다른 Firefox 프로세스를 인스턴스화하는 이유는 무엇입니까? 대신 탭을 사용하여 원하는 것을 성취 할 수 있습니까?

관련 문제