2009-09-21 3 views
3

마지막 프로젝트에서는 Selenium을 통해 몇 가지 테스트 케이스를 만든 다음 hudson에서 시작되는 모든 빌드에서 실행되도록 자동화했습니다. 그것은 환상적이었고 약 한 달 동안 일관성이있었습니다.Selenium은 사용할 테스팅 소프트웨어의 좋은 부분입니까?

그런 다음 검사가 시작되지 않았습니다. 대부분의 경우 실패의 원인이되는 타이밍 문제였습니다. 약 2 주간의 노력이 다음 두 달 동안 지속되면서 Selenium 테스트를 중단하기로 결정되었습니다. 그들은 통과해야했는데, 웹 어플리케이션의 응답과 타이밍은 테스트가 통과해야 할 때 실패 할 정도로 다양했습니다.

비슷한 경험이 있습니까? Selenium은 여전히 ​​웹 응용 프로그램 테스트에 유용한 도구입니까?

+1

은 응용 프로그램에 따라 다릅니다 ... 주로 자바 스크립트 기반입니까, 아니면 일반 HTML입니까? – skaffman

답변

14

셀레늄은 웹 테스트에 훌륭한 도구이지만 테스트가 안정적인지 확인하는 것이 중요합니다. 타이밍 문제가 자주 발생하므로 다음을 제안합니다.

  • 적절한 시간 제한 값을 설정해야합니다. 나는 1-2 분 사이에 잘 ​​작동한다는 것을 알았다.
  • 테스트를 일시 중지하지 마십시오. 타이밍 문제의 주요 원인입니다. 대신 waitFor * 명령을 사용하십시오. waitForCondition은 입니다. 매우입니다.
  • 시간 초과를 유발할 수있는 외부 호출을 식별하고 테스트를 실행중인 시스템의 트래픽을 차단합니다. 방화벽 수준에서이 작업을 수행하거나 hosts 파일의 localhost로 도메인을 리디렉션 할 수 있습니다.

업데이트 : 당신은 또한 셀레늄 그리드를 사용하는 것이 좋습니다

. 시간 초과에 직접적으로 도움이되지는 않지만 실패에 대한 피드백 루프를 더 빨리 제공 할 수 있습니다. TestNG를 사용하여 테스트를 실행하는 경우 자동으로 실패를 다시 가져올 수 있습니다. 이렇게하면 타임 아웃으로 인한 테스트 실패가 다시 발생합니다.

1

이전 직장에서는 테스트 도구로 사용해 보았지만 프로세스에 통합하는 것이 너무 까다로운 것으로 나타났습니다. 당신과 거의 같은 경험.

이것은 0.8 년 전 버전에서 2 ~ 3 년 전 이었지만 그 이후로는 더 좋아질 것으로 기대했을 것입니다.

+1

셀레늄은 0.8 이후로 확실히 향상되었습니다. 버전 1.0은 12 개월 넘게 베타 버전으로 출시 된 올해 초에 릴리스되었습니다. –

1

나는 비슷한 경험을했습니다. 우리는 셀레늄 프록시를 부트 스트랩하고 자동화 된 테스트 스위트를 실행하는 프로젝트를 만들었지 만 불행히도 빌드 서버와 큰 충돌이있었습니다. 안정적으로 빌드에 추가 할 수있는 브라우저 불일치와 제 3 자 종속성이 너무 많았습니다. 또한 우리에게는 너무 느리고 빌드에 너무 많은 시간을 추가했습니다.

대부분의 오류는 타임 아웃으로 이어집니다.

우리는 프로젝트를 유지하고 주요 릴리스에 대한 통합 테스트에 사용했습니다. 우리가 사용한 부트 스트래핑 코드는 다른 영역에서도 매우 중요합니다.

1

야간 빌드 시간이 지나면 아마 을 실행하는 것이 가장 좋습니다. Watin 또는 빌드를 빌드 스크립트와 통합 할 수 있습니다.

팀에 따라 크게 다르지만, 테스트 팀이 작 으면 매우 명확한 런타임 문제을 선택하는 것이 값어치가 있습니다.

나는 그 범위를 겸손하게 유지하고 적어도 위도 테스트 적어도 각 페이지를로드 할 수 있도록 사용합니다.

1

나는 Selenium과 비슷한 경험을했습니다. 우리는 우리가 만든 변경 사항을 테스트 할 수 있도록 일종의 테스트 프레임 워크를 구축 한 레거시 시스템을 사용했습니다. 이것은 처음부터 훌륭하게 작동했지만 결국 초기 테스트 중 일부가 실패하기 시작했거나 (또는 ​​너무 오래 실행되어) 테스트가 점점 더 끊어지기 시작했습니다.

일부 문제를 해결하기 위해 각 테스트에서 브라우저가 열리고 닫히는 문제를 해결했습니다. 즉 테스트는 블록으로 나뉘어졌으며 각각 블록 개의 테스트에서 브라우저는 한 번만 열렸습니다. 이로써 테스트를 실행하는 데 걸리는 시간이 수 시간에서 30 분으로 단축되었습니다.

나는 Selenium이 웹 기반 응용 프로그램을 테스트하기위한 훌륭한 도구라고 생각하는 문제에도 불구하고. 우리가 경험 한 많은 문제들은 우리가 테스트 한 시스템이 레거시 시스템이라는 사실에 집중되어있었습니다. 테스트 중심 개발을 좋아한다면 Selenium은 개발 실무와 잘 어울립니다.

EDIT : Selenium의 또 다른 장점은 개발자가 오류를 도입 한 요소와 오류가 발생한 위치 (소스 파일)를 추적 할 수 있다는 것입니다. 이로 인해 오류 수정시에 훨씬 쉽게 작업 할 수 있습니다.

1

우리는 처음에는 빌드 머신에서 셀레늄을 사용하려고했지만 테스트는 매우 약했고 동일한 페이지 집합을 통해 액세스 된 관련없는 기능에 변경 사항이 발생했을 때 오래된 테스트를 계속 실행하려고 노력했습니다. 우리는 nunit을 통해 테스트를 자동화하고있었습니다.

나는 고객 수용 및 통합 테스트 도구로 셀레늄을 더 사용할 것이다. 야간에 안정적인 기능성을 위해 사용하는 것에 동의합니다.

1

언뜻보기에 셀렌은 멋지게 보입니다. 불행하게도 오픈 소스 프로젝트에서 때로는 발생하는 것처럼 새로운 기능을보다 안정적으로 구현하는 대신 급하게 실행합니다.