저는 Mink/Sahi과 협력하여 내 사이트의 기능 테스트 스위트를 작성하고 있습니다.저희 사이트의 기능 테스트
필자는 Firefox와 Chrome을 통해 일련의 테스트를 진행했으며, 만족 스럽습니다. 그들은 Jenkins 상자에 밤에 달리고 잘 작동하고 있습니다.
그러나 우리 Jenkins 상자가 서버이고 Chrome/Firefox가 GUI 응용 프로그램이기 때문에 데스크톱 PC에서 테스트를 실행해야했습니다. 이것은 매일 밤에 스위치를 켜 놓아야한다는 것을 의미하기 때문에 고통입니다. 환경 및 비용상의 이유로 나쁩니다. 또한 전원 또는 네트워크 또는 소프트웨어에 문제가있는 경우 테스트가 실패합니다.
그래서 Jenkins 상자 자체에서 헤드리스 브라우저를 사용하도록 테스트를 전환하는 것에 대한 조언이 필요합니다.
나는 Goutte, Zombie 및 Phantom의 세 가지 옵션을 가지고있는 것으로 보입니다 (물론 누구나 다른 것을 추천 할 수 없다면). 다음은 지금까지 내 진행 상황을 요약
Goutte : 이것은 PHP 기반, 그래서 Sahi에 대한 필요성을 제거, 밍크의 내부에서 실행됩니다. Jenkins 상자에는 리소스가 한정되어 있으므로 설치 및 실행이 더 쉬워집니다. 그러나 JS 코드를 테스트의 일부로 실행해야하며 Goutte는이 기능을 사용할 수 없다고 알고 있습니다. 그것은 그것을 배제 하는가?
좀비 : Node.js에서 실행됩니다. 불행히도, 나는이 일을 전혀 할 수 없었습니다. 노드, NPM 및 좀비를 설치했지만 밍크가 인식 할 수 없습니다. 아무도 나에게 밍크 사이트보다 더 명확한 지시를 내릴 수 있습니까?
Phantom : 불행히도 Mink에는 Phantom 용 드라이버가 없으므로 Sahi를 통해 실행해야합니다. 내가 말했듯이 젠킨스 서버에 Sahi를 설치하지 않고 특히 서버로 계속 실행해야하는 경우를 선호합니다. 그러나 그것은 내가 지금까지 성공한 유일한 사람이다. Sahi에서 실행하면 내 테스트가 성공적으로 실행될 수 있습니다 (일관성이 없어도 걱정할 필요는 없지만 임의로 세 번에 한 번 타임 아웃하는 것 같습니다). 누구든지 Sahi (또는 다른 중간 계층 서버)가 설치되어 있지 않아도이 프로그램을 실행할 수있는 방법을 제안 할 수 있습니까? 아니면 Sahi가 필요하면 Jahkins가 테스트 스위트의 시작 부분에서 Sahi를 시작하고 결국 중단하도록 Jenkins를 구성하는 방법을 말해 줄 수 있습니까?
진행 방법에 대한 의견을 보내 주시면 감사하겠습니다. 이러한 옵션 중 어느 것도 다른 이유로 인해 확실한 승리를 거두지 못합니다. 그러나 기능 테스트가 중요하므로이 문제가 해결되어야합니다. 나에게 가장 좋은 해결책은 무엇입니까?
(나는 JavaScript를 사용하여 Zombie 또는 Phantom과 직접 대화 할 수있는 스크립트를 다시 작성하는 옵션이 있다는 것을 알고 있습니다. 실패 할 경우 Firefox에서 계속 실행해야합니다. 무슨 일이 일어나고 있는지 알기 위해 Mink와 같은 크로스 브라우저 인터페이스가 이상적입니다. PHP로 모든 테스트를 이미 작성했다는 사실은 말할 것도 없습니다!
고마워요. :)
답변 해 주셔서 감사합니다. 대단히 감사합니다. 나는 너의 아이디어를 줄 것이다. 그들은 매우 흥미로운 소리. 그리고 나는 심지어 그것을 시도하기 전에, 내가 찾고있는 것이어야하기 때문에 대답을 받아 들일 것이다. 그리고 그것이 나를 위해 일하지 않는다고해도, 나는 확실히 나를 가르치려고한다. 몇 가지! 고맙습니다. – SDC