프리젠 테이션에 대한 자동화 된 테스트를 곧 코딩 할 것입니다. 모든 사람들이 WatiN 과 Selenium을 추천하는 것 같습니다 . ASP.NET 웹 양식의 자동 테스트를 선호하는 것은 무엇입니까? 이 중 어떤 제품이 더 잘 작동합니까?
참고로, WatiN 2.0은 2008 년 3 월 이후 CTP에 포함되어 있습니다.
프리젠 테이션에 대한 자동화 된 테스트를 곧 코딩 할 것입니다. 모든 사람들이 WatiN 과 Selenium을 추천하는 것 같습니다 . ASP.NET 웹 양식의 자동 테스트를 선호하는 것은 무엇입니까? 이 중 어떤 제품이 더 잘 작동합니까?
참고로, WatiN 2.0은 2008 년 3 월 이후 CTP에 포함되어 있습니다.
답변:
2009 년 1 분기 어딘가에 WatiN 2.0 베타 릴리스에서 열심히 노력하고 있다고 말하고 싶습니다. 현재 CTP 2.0 버전으로의 주요 업그레이드가 될 것이며 기본적으로 FireFox와 IE를 자동화하는 동일한 기능을 제공 할 것입니다 버전 1.3.0은 IE 자동화를 제공합니다.
그래서 걱정하지 마십시오.
Jeroen van Menen Lead dev WatiN 선택에 도움이 되길 바랍니다.
커뮤니티가 지속적으로 개선하고 지원할 프레임 워크에 대한 장기적인 투자를 원한다면 Selenium이 최선의 선택 일 것입니다. 예를 들어 Matt Raible의 블로그에서이 정보를 발견했습니다.
금요일 현재 Google은 내부 Selenium Farm에서 매일 51K 개 이상의 테스트를 실행하는 50 개 이상의 팀을 보유하고 있습니다. 이 테스트의 96 %는 Selenium RC 및 농기계에서 올바르게 처리됩니다. 나머지 4 %는 부분적으로 오류를 테스트하기위한 RC 버그로 인한 것이지만 원인을 분리하는 것은 어려울 수 있습니다. 셀레늄은 Google 웹 애플리케이션의 기능 테스트를위한 기본 기술로 채택되었습니다. 좋은 소식입니다.
또한 최근 Selenium 모임 중 하나에 가서 Google이 Selenium을 개선하고 Simon Stewart가 개발 한 자동 테스트 도구 인 WebDriver와 통합하는 데 심각한 자원을 투입하고 있음을 알게되었습니다. WebDriver의 주요 장점 중 하나는 브라우저 내에서 Javascript 애플리케이션으로 실행하지 않고 브라우저 자체를 제어한다는 것입니다. 즉, "동일한 원점"문제와 같은 주요 걸림돌은 더 이상 문제가되지 않습니다.
우리는 둘 다 테스트했으며 WaTiN을 사용하기로 결정했습니다. 다른 사람들이 지적했듯이 Selenium에는 WaTiN에서 찾을 수없는 멋진 기능이 있지만 Selenium 작동 문제가 발생했으며 WaTiN보다 테스트를 실행할 때 확실히 느려졌습니다. 올바르게 기억한다면, 우리가 겪은 설정 문제는 Selenium이 WaTiN이 모든 것을 처리하는 실제 브라우저를 제어하는 별도의 앱을 가지고 있다는 사실에서 비롯되었습니다.
나는 노력하고 있었고 여기에 내 초기 생각이 있습니다 ...
물
좋은
나쁜
스크립트 예 (C #). 셀레늄으로는이 작업을 수행 할 수 없습니다 (적어도 알지 못합니다).
class IEManager
{
IE _ie = null;
object _lock = new object();
IE GetInstance(string UrlFragment)
{
lock (_lock)
{
if (_ie == null)
{
var instances = new IECollection(true); //Find all existing IE instances
var match = instances.FirstOrDefault(ie=>ie.Url.Contains(UrlFragment));
_ie = match ?? new IE();
if (match==null) //we created a new instance, so we should clean it up when done!
_ie.AutoClose = true;
}
}
return _ie;
}
}
셀렌
모든 것에도 불구하고 나는 결국 WatiN과 함께 갔다. 주로 작은 화면 스크래핑 응용 프로그램을 작성하고 개발에 LINQPad를 사용하려고합니다. 원격 IE 인스턴스 (내가 생성하지 않은 인스턴스)에 연결하는 것이 큰 장점입니다. 기존 인스턴스에서 바이올린을 사용할 수 있습니다 ... 그런 다음 약간의 스크립트를 실행하십시오 ... 그런 다음 바이올린 등을 다시 실행하십시오. 이것은 셀레늄과 관련이 더 어렵습니다.하지만 "일시 중지"가 스크립트에 포함될 수 있다고 생각합니다. 브라우저와 직접 바이올린.
가장 큰 차이점은 Selenium이 다른 브라우저를 지원한다는 것입니다 (IE 또는 FF뿐만 아니라 http://seleniumhq.org/about/platforms.html#browsers 참조) .
또한 Selenium에는 원격 제어 서버 ( http://seleniumhq.org/projects/remote-control/ )가 있으므로 테스트 코드가 실행중인 동일한 시스템에서 브라우저를 실행할 필요가 없습니다. 따라서 웹 앱을 테스트 할 수 있습니다. 다른 OS 플랫폼에서.
일반적으로 Selenium을 사용하는 것이 좋습니다. 몇 년 전에 WatiN을 사용해 왔지만 안정성에 만족하지 못했습니다 (아마도 지금까지 개선되었을 것입니다). Selenium의 가장 큰 장점은 웹 앱을 테스트 할 수 있다는 것입니다. 다른 브라우저에서.
둘 다. Coypu를 사용하십시오. 셀레늄을 감 쌉니다. 훨씬 내구성이 뛰어납니다. https://github.com/featurist/coypu
Ye Oliver 업데이트 맞습니다. 그래 왜 더 나아? 개인적으로 나는 IE 용 Selenium 드라이버가 특히 매우 취약하다는 것을 알았습니다. 아약스 무거운 웹 사이트에서 Selenium for Unit Tests를 운전할 때 다시 발견 한 많은 '표준'드라이버 예외가 있습니다.
c #에서 스크립트를 테스트 프로젝트로 작성하고 싶다고 언급 했습니까? 예 수락 지속적인 빌드 배포 내에서 테스트합니다.
잘 코이 푸는 위의 내용을 다룹니다. Selenium의 래퍼로서 다음과 같은 테스트 픽스처를 허용합니다
browser.Visit("file:///C:/users/adiel/localstuff.htm")
browser.Select("toyota").From("make");
browser.ClickButton("Search");
... (구성 가능한 브랜드의) 브라우저가 가동되고 스크립트가 실행됩니다. 범위가 지정된 영역에서 잘 작동하며 매우 확장 가능합니다.
GitHub에는 더 많은 예제가 있으며 아래 Olvier에서 언급했듯이 Adrian의 비디오는 훌륭합니다. 나는 그것이 .Net 세계에서 브라우저 기반 테스트를 추진하는 가장 좋은 방법이라고 생각하며 루비 이름을 따르려고합니다.capybara
지금까지 우리는 기업을위한 솔루션을 제공하는 순수한 Microsoft Shop이며 WatiN과 함께갔습니다. 향후 변경 될 수 있습니다.
보다 최근의 출처 :
Microsoft는 MSDN Magazine 12/2010 에서 SpecFlow와 WatiN (쿨 BDD 동작 기반 개발)을 결합한 BDD-Primer를 인쇄했습니다 . 저자 Brandon Satrom (msft 개발자 Evangelist)은 2010 년 12 월에 위의 결과를 1 : 1로 상세하게 설명 하는 비디오 웹 캐스트를 게시했습니다 .
SpecFlow를 구축 한 Christian Hassa의 SpecLog, SpecFlow 및 Team Foundation Server (Acceptance Test Driven Development / Behavior Driven Development)를 사용하여 ATDD / BDD 지원에 대한 백서 가 2011 년 4 월에 있습니다.
나는 추천 WebAii을 그게 내가 어떤 성공을 했어 그것을 사용하는 경우 내 불만은 몇 무엇인지 이후. 나는 결코 Selenium을 시도하지 않았으며 WaTiN을 성공적으로 사용할 수있는 시점까지 WaTiN을 많이 사용하는 것을 기억하지 못합니다. WebAii에는 자체 대화 상자 처리기를 구현하기위한 인터페이스가 있지만 Windows 대화 상자를 정상적으로 처리하는 프레임 워크는 알 수 없습니다.
나는 둘 다 사용하는 것을 고려했다. 나는 Selenium의 레코더를 사용하여 FF에서 몇 가지 테스트를 작성했습니다. 나는 Watin에서 같은 일을하려고했지만 Watin Recorder (2.0.9.1228)가 우리 사이트에 완전히 가치가 없다는 것을 알았습니다 . IE6에서 사이트를 렌더링하는 것으로 보였으므로 사이트를 효과적으로 기록 할 수 없게 만들었습니다. 우리는 IE6을 지원하지 않습니다. 사용중인 브라우저를 변경하는 방법을 찾지 못했습니다. 나는 거기에서 하나의 Watin Recorder를 찾았습니다. 하나 이상 또는 최신 상태를 유지하는 경우 의견을 보내주십시오.
Firefox 용 Selenium Recorder IDE는 사용이 간편하고 테스트를 C #으로 포트합니다. 이것에 좋지 않습니다. 해결 방법이있는 블로그 게시물을 읽었음에도 불구하고 테스트 스위트를 이식 할 수 없었습니다. 따라서 생성 된 코드를 약간 조작해야합니다. 여전히, 그것은 90 % 작동하고 대안보다 낫습니다.
저의 돈 / 시간으로, Selenium은 새로운 테스트를 쉽게 구축 할 수 있다는 점에서 우수합니다 . IE에는 Firebug 만큼 좋은 개발자 도구 모음이 없으므로 Firefox에서 개발을 시작하여 Firefox에서 제대로 작동하는 레코더를 갖는 것이 큰 보너스입니다.
필자의 결론은 처칠의 민주주의 인용문과 매우 흡사하다. 셀레늄은 최악의 자동 UI 테스트 형식이다. 다른 모든 것을 제외하고.
접선으로 넘어 질 위험이 있으므로 Axe / WatiN을 권장합니다. Ax는 기본 테스트 '언어'에 대한 지식없이 '수동'테스터가 Excel로 테스트를 작성할 수 있도록합니다. 맞춤 조치를 작성하려면 '기술자'가 필요합니다 (IE. 오늘은 약간 복잡한 테이블 조회 및 상호 참조를 수행해야 함). 일단 작성된 조치는 비 기술자 테스터가 테스트에 사용할 수 있습니다.
또한 영국 정부 게이트웨이 프로젝트 (6K + 테스트 자동화 테스트를 받았다고 생각)는 최근 1 주일 내에 모든 테스트를 Axe / Winrunner에서 Axe / Watin으로 포팅했다고 들었습니다. 그리고 많은 테스트가 상당히 복잡합니다. 몇 년 전에 작업 한 결과입니다 ...
잠재 고객이 사용하는 순간 현재 Selenium을보고 있습니다. 그러나 나는 '작업 말'도구 위의 레이어로 Ax를 바라 보는 것이 좋습니다.
IE 및 FF 테스트를 수행해야하는 경우 두 가지를 모두 수행해야하지만 프리젠 테이션 테스트에 대해서만 잘 작동합니다. 하나의 요소가 약간 꺼져 있는지 감지 할 수 없으며 해당 요소 만 존재합니다. UI / 프레젠테이션 테스트를 위해 사람의 눈을 대체 할 수있는 것은 알지 못하지만 도움이되는 몇 가지 작업을 수행 할 수 있습니다 (사용자가 검토 할 수 있도록 각 단계에서 페이지의 스크린 샷을 찍으십시오).