물 또는 셀레늄? [닫은]


148

프리젠 테이션에 대한 자동화 된 테스트를 곧 코딩 할 것입니다. 모든 사람들이 WatiNSelenium을 추천하는 것 같습니다 . ASP.NET 웹 양식의 자동 테스트를 선호하는 것은 무엇입니까? 이 중 어떤 제품이 더 잘 작동합니까?

참고로, WatiN 2.0은 2008 년 3 월 이후 CTP에 포함되어 있습니다.


30
나는이 질문을 닫아야한다고 생각하지 않습니다. 저와 다른 개발자에게 유용합니다 (공감). 이러한 질문은 왜 내가 Stackoverflow가 필요한지 중 하나입니다. 관리자의 결정을 내려 놓을 수 있기를 바랍니다.
Maxim Eliseev 2016

7
이 질문이 왜 닫혔는지 궁금합니다. 매우 건설적입니다. 나는 모두를 공부하고, 그들의 diferences를 알고 싶다
마르셀 - ferraz

14
건설적이지 않습니까 ??? ...이 사이트는 너무 많은 통제력을 가진 바보들에 의해 운영되고 있습니다.
로널드 맥도날드

답변:


108

2009 년 1 분기 어딘가에 WatiN 2.0 베타 릴리스에서 열심히 노력하고 있다고 말하고 싶습니다. 현재 CTP 2.0 버전으로의 주요 업그레이드가 될 것이며 기본적으로 FireFox와 IE를 자동화하는 동일한 기능을 제공 할 것입니다 버전 1.3.0은 IE 자동화를 제공합니다.

그래서 걱정하지 마십시오.

Jeroen van Menen Lead dev WatiN 선택에 도움이 되길 바랍니다.


23
@jcollum 죄송하지만 -1을 제공하는 것에 동의하지 않습니다. Jeroen은 두 번째 질문 인 "부수적으로 ..."로 답했습니다. 그리고 누가 제품의 수석 개발자가 아니라면 그에 더 잘 대응할 수있을 것입니다. 이 답변을 최선의 답변으로 표시하는 것만 의심 스러울 수 있습니다.
Henry99

1
@ Henry99는 질문 또는 별도의 질문에 대한 의견으로 더 적절했을 것입니다. 여기서 핵심 질문은 "A 또는 B"입니다. A 또는 B의 저자는 그런 질문에 대답해서는 안됩니다.
jcollum 2016 년

3
@jcollum Jeroen은 자신의 제품 대 Selenium의 품질에 대해 언급하지 않았거나 한 방향으로 또는 다른 방향으로 편향 될 수있는 모든 것을 언급하지 않았습니다. 아마도 질문의 두 번째 부분을 읽지 않았을 수도 있지만 프로젝트의 수석 개발자는 그 질문에 대답 할 수있는 가장 유능한 사람입니다.
Grinn

2
@ 그린 : 나는 당신의 위의 내 의견에, 당신은 그것을 읽었습니까? 그는 주요 질문 (Watin 또는 Selenium)에 대답하지 않고 있으며, 별도의 질문에 완전히 포함되어야 할 문제를 해결하고 있습니다.
jcollum

좋은 답변 ...
Mohsin Awan

58

커뮤니티가 지속적으로 개선하고 지원할 프레임 워크에 대한 장기적인 투자를 원한다면 Selenium이 최선의 선택 일 것입니다. 예를 들어 Matt Raible의 블로그에서이 정보를 발견했습니다.

금요일 현재 Google은 내부 Selenium Farm에서 매일 51K 개 이상의 테스트를 실행하는 50 개 이상의 팀을 보유하고 있습니다. 이 테스트의 96 %는 Selenium RC 및 농기계에서 올바르게 처리됩니다. 나머지 4 %는 부분적으로 오류를 테스트하기위한 RC 버그로 인한 것이지만 원인을 분리하는 것은 어려울 수 있습니다. 셀레늄은 Google 웹 애플리케이션의 기능 테스트를위한 기본 기술로 채택되었습니다. 좋은 소식입니다.

또한 최근 Selenium 모임 중 하나에 가서 Google이 Selenium을 개선하고 Simon Stewart가 개발 한 자동 테스트 도구 인 WebDriver와 통합하는 데 심각한 자원을 투입하고 있음을 알게되었습니다. WebDriver의 주요 장점 중 하나는 브라우저 내에서 Javascript 애플리케이션으로 실행하지 않고 브라우저 자체를 제어한다는 것입니다. 즉, "동일한 원점"문제와 같은 주요 걸림돌은 더 이상 문제가되지 않습니다.


1
Selenium은 현재보다 성숙한 프로젝트 인 것 같습니다. 또한 Google
에서이

37

우리는 둘 다 테스트했으며 WaTiN을 사용하기로 결정했습니다. 다른 사람들이 지적했듯이 Selenium에는 WaTiN에서 찾을 수없는 멋진 기능이 있지만 Selenium 작동 문제가 발생했으며 WaTiN보다 테스트를 실행할 때 확실히 느려졌습니다. 올바르게 기억한다면, 우리가 겪은 설정 문제는 Selenium이 WaTiN이 모든 것을 처리하는 실제 브라우저를 제어하는 ​​별도의 앱을 가지고 있다는 사실에서 비롯되었습니다.


4
성능 메모 및 실제 사용량은 +1입니다.
Jeremy McGee

같은 문제를 깨달았습니다. # 1 성능이 좋지 않고 # 1 테스트가 Java 서버에서 실행되고 있습니다 ([TestSetup]에서 설정해야 함).
피터 Gfader

18
더 이상 문제가되지 않습니다. Selenium 2.0은 WebDriver 라이브러리와 함께 제공되므로 Java 서버뿐만 아니라 브라우저를 직접 제어 할 수 있습니다.
Igor Brejc

2
나는 Selenium을 시도하지 않았지만 Watin에 문제가있었습니다. 명백한 이유없이 갑자기 테스트를 중단했으며 COM 오류가 임의로 발생했습니다 (적어도 패턴을 찾을 수 없음).
Piotr Owsiak

30

나는 노력하고 있었고 여기에 내 초기 생각이 있습니다 ...


좋은

  • 빠른 실행.
  • 스크립트 작성 도구는 독립적 인 프로젝트입니다. 내가 아는 것은 Wax (Excel 기반, CodePlex에서 호스팅)와 WatiN 테스트 레코드 (SourceForge에서 호스팅)입니다. Selenium IDE만큼 강력하지도 않습니다.
  • 아주 좋은 IE 지원. 실행중인 인스턴스에 연결하거나 분리 할 수 ​​있습니다. 기본 창 핸들 등에 액세스 할 수 있습니다 (아래 스크립트 예 참조).
  • NuGet 패키지, .NET, Visual Studio 스타일 환경에서 쉽게 실행하고 업데이트 상태를 유지합니다.

나쁜

  • 인터넷 검색 WatiN (watin xyz)은 종종 Google에서 대신 "watir xyz"를 권장합니다. 문서가 많지 않습니다.
  • (문서)가 거의없는 것은 혼란 스럽습니다. 예를 들어 : 처음에는 홍당무가 CSS 선택자를 기본적으로 지원하지 않는 것으로 보입니다. 특히 'WatiNCssSelectorExtensions'와 같은 확장 라이브러리와 대안 기술에 대한 많은 블로그 기사 (예 : jQuery / sizzle를 페이지에 삽입)가 있습니다. 스택 오버플로에서 Jeroen van Menen 의 의견을 찾았습니다.이 의견 은 기본 지원이 있음을 나타냅니다. 적어도 수석 개발자는 스택 오버플로에 시간을 보냅니다. :)
  • 기본 XPath 지원이 없습니다.
  • 기본 원격 실행 / 그리드 기반 실행이 없습니다.

스크립트 예 (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보다 느립니다 (특히 새 프로세스를 만들어야하기 때문에).
  • 내장 CSS 선택기 / XPath 지원
  • 셀레늄 IDE는 훌륭합니다 (말할 수는 없지만 동급 최고입니다!).
  • .NET-ish보다 Java-ish 느낌이 더 ...하지만 실제로는 프로그래밍 언어에 무관합니다. 모든 명령은 프로세스 외부 '드라이버'로 전송됩니다. 드라이버는 실제로 브라우저 인스턴스의 '호스트'프로세스입니다. 모든 통신은 프로세스 경계를 ​​가로 질러 입출력해야하며, 이는 WatiN과 관련된 속도 문제를 설명 할 수 있습니다.
  • 분리 된 프로세스- "드라이버"와 "컨트롤"은보다 견고하고 복잡하며, 그리드 / 분산 테스트 환경을보다 쉽게 ​​생성 할 수 있음을 의미합니다. "분배"메커니즘 (예 : Driver & Control 간의 통신)이 WebSphere 또는 다른 기존의 강력한 메시지 큐 관리자를 통해 이루어 졌다면 정말 좋았을 것입니다.
  • Chrome 및 기타 브라우저를 기본적으로 지원합니다.

모든 것에도 불구하고 나는 결국 WatiN과 함께 갔다. 주로 작은 화면 스크래핑 응용 프로그램을 작성하고 개발에 LINQPad를 사용하려고합니다. 원격 IE 인스턴스 (내가 생성하지 않은 인스턴스)에 연결하는 것이 큰 장점입니다. 기존 인스턴스에서 바이올린을 사용할 수 있습니다 ... 그런 다음 약간의 스크립트를 실행하십시오 ... 그런 다음 바이올린 등을 다시 실행하십시오. 이것은 셀레늄과 관련이 더 어렵습니다.하지만 "일시 중지"가 스크립트에 포함될 수 있다고 생각합니다. 브라우저와 직접 바이올린.


2
자세한 비교 감사합니다.
Sam

18

가장 큰 차이점은 Selenium이 다른 브라우저를 지원한다는 것입니다 (IE 또는 FF뿐만 아니라 http://seleniumhq.org/about/platforms.html#browsers 참조) .

또한 Selenium에는 원격 제어 서버 ( http://seleniumhq.org/projects/remote-control/ )가 있으므로 테스트 코드가 실행중인 동일한 시스템에서 브라우저를 실행할 필요가 없습니다. 따라서 웹 앱을 테스트 할 수 있습니다. 다른 OS 플랫폼에서.

일반적으로 Selenium을 사용하는 것이 좋습니다. 몇 년 전에 WatiN을 사용해 왔지만 안정성에 만족하지 못했습니다 (아마도 지금까지 개선되었을 것입니다). Selenium의 가장 큰 장점은 웹 앱을 테스트 할 수 있다는 것입니다. 다른 브라우저에서.


3
Selenium은 다양한 브라우저 를 지원합니다. 이제 Chrome, Safari, FF 및 IE 6, 7, 8을 지원해야합니다.
Tony Ennis

17

둘 다. 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


이 답변에는 더 많은주의가 필요합니다. Coypu는 귀하와 자동 브라우저 테스트 사이의 누락 된 링크입니다! 놀랄 만한! 가서 봐요! 셀레늄 (혹은 WatiN)과 싸운 적이 있다면, AJAX를 얻거나 요소를 올바르게 찾으려고 노력하십시오-코이 푸는기도에 대한 답입니다 ;-)
Oliver

자세한 내용을 추가해 주셔서 감사합니다 : @penderi :-)
Oliver

12

둘 다 사용했는데 둘 다 작동하는 것 같습니다. 더 나은 Ajax 지원을 가지고있는 것처럼 셀레늄에 대한 나의 끄덕임. 나는 WaTiN이 성숙 해졌다 고 생각하지만 마지막으로 사용했기 때문에 동일한 것을 가져야합니다.

가장 큰 것은 어떤 개발 환경을 원하십니까? Selenium과 Watin에는 레코더가 있지만 Selenium은 브라우저에 있고 watin은 비주얼 스튜디오에 있습니다. +와-는 둘 다에 있습니다.


6

지금까지 우리는 기업을위한 솔루션을 제공하는 순수한 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 월에 있습니다.


5

나는 Watin을 사용하지만 Selenium을 사용하지 않았습니다. 나는 Watin에서 빨리 일어 났으며 아무런 문제가 없었습니다. 나는 내가 알아낼 수 없었던 일을 생각할 수 없다. HTH


4

필자는 일반적으로 Selenium을 사용합니다. 주로 테스트 시작 지점을 기록하기 위해 FireFox 용 Selenium IDE 플러그인을 좋아하기 때문입니다.


지원되는 FF 버전을 알고 있습니까? 나는 사랑하지 않고 FF6 및 FF5로 IDE를 시도했습니다. 나는 6에 대한 지원을 기대하지 않았지만 5에 대해서는 지원하지 않았다.
MikeJ

4

나는 추천 WebAii을 그게 내가 어떤 성공을 했어 그것을 사용하는 경우 내 불만은 몇 무엇인지 이후. 나는 결코 Selenium을 시도하지 않았으며 WaTiN을 성공적으로 사용할 수있는 시점까지 WaTiN을 많이 사용하는 것을 기억하지 못합니다. WebAii에는 자체 대화 상자 처리기를 구현하기위한 인터페이스가 있지만 Windows 대화 상자를 정상적으로 처리하는 프레임 워크는 알 수 없습니다.


나는 세 번째 대안을 제시하기 위해 +1을주고 싶지만 제품에 대한 경험을 제공하지 않고 다른 두 가지와 비교하여 -1이라고 말합니다.
Jeff Martin

Windows 대화 상자 = js 경고 상자? 그렇다면 셀레늄이이를 지원합니다. 경고 상자가 눈에 띄지 않기 때문에 테스트 한 적이 없습니다.
jcollum 2016 년

4

나는 둘 다 사용하는 것을 고려했다. 나는 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 테스트 형식이다. 다른 모든 것을 제외하고.


QA 팀이 FF 플러그인으로 '수동'테스트를 작성하고 개발자가 생성 된 C # 테스트를 포트하도록하여 인프라가 Selenium으로가는 결론을 내리게했습니다. WaitIn은 충분히 공평 해 보이지만 테스트를 빌드하는 'painstaking'프로세스 (WaiIn 프로젝트 페이지의 비디오에 따르면)는이 경우 고객에게는 옵션이 아닙니다.
sonstabo 2016 년

@sonstabo : 그것이 내가 가고 싶은 방향입니다. QA 부서가있는 언젠가 : puppydogeyes :
jcollum

3

접선으로 넘어 질 위험이 있으므로 Axe / WatiN을 권장합니다. Ax는 기본 테스트 '언어'에 대한 지식없이 '수동'테스터가 Excel로 테스트를 작성할 수 있도록합니다. 맞춤 조치를 작성하려면 '기술자'가 필요합니다 (IE. 오늘은 약간 복잡한 테이블 조회 및 상호 참조를 수행해야 함). 일단 작성된 조치는 비 기술자 테스터가 테스트에 사용할 수 있습니다.

또한 영국 정부 게이트웨이 프로젝트 (6K + 테스트 자동화 테스트를 받았다고 생각)는 최근 1 주일 내에 모든 테스트를 Axe / Winrunner에서 Axe / Watin으로 포팅했다고 들었습니다. 그리고 많은 테스트가 상당히 복잡합니다. 몇 년 전에 작업 한 결과입니다 ...

잠재 고객이 사용하는 순간 현재 Selenium을보고 있습니다. 그러나 나는 '작업 말'도구 위의 레이어로 Ax를 바라 보는 것이 좋습니다.


3

iframe에 액세스해야하는 경우 모달 대화 상자 및 도메인 간 iframe WatiN을 사용하는 방법입니다. Selenium이 commandtimeout 예외를 발생시킨 iframe을 처리 할 수 ​​없습니다. WatiN 웹 사이트에서 ShowModalDialog 등과 같은 IE 관련 항목을 사용하는 경우 특히 더 많은 작업을 수행 할 수 있습니다. WatiN은 모든 항목을 잘 처리합니다. 교차 도메인 iframe 액세스를 할 수도 있습니다.


-1

IE 및 FF 테스트를 수행해야하는 경우 두 가지를 모두 수행해야하지만 프리젠 테이션 테스트에 대해서만 잘 작동합니다. 하나의 요소가 약간 꺼져 있는지 감지 할 수 없으며 해당 요소 만 존재합니다. UI / 프레젠테이션 테스트를 위해 사람의 눈을 대체 할 수있는 것은 알지 못하지만 도움이되는 몇 가지 작업을 수행 할 수 있습니다 (사용자가 검토 할 수 있도록 각 단계에서 페이지의 스크린 샷을 찍으십시오).


"IE와 FF 테스팅을해야한다면 둘 다해야한다"-Selenium은 둘 다 할 수 없습니까?
marcumka

1
셀레늄 rc는 사파리와 ff를 할 수 있습니다
redsquare

FF로만 녹음 할 수 있지만 RC를 사용하여 IE와 FF (및 기타)를 모두 제어 할 수 있습니다.
Jeff Martin

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.