저희 팀은 JavaScript가 많이 사용되는 Selenium을 사용하여 애플리케이션을 테스트 해 왔습니다. 우리는 가끔씩 테스트가 실패 할 때 항상 문제를 겪었습니다. 테스트 횟수가 늘어남에 따라 하나의 테스트에서 2 가지 테스트가 실패 할 확률이 높아졌습니다.Selenium으로 Ajax 응용 프로그램을 테스트하고 안정적으로 유지하려면 어떻게합니까?
우리가 최근에 알아 낸 것은 초기화 JavaScript가 이벤트 처리기를 클릭 한 요소에 첨부 할 기회를 갖기 전에 셀렌이 링크를 클릭하는 경쟁 조건이있을 가능성이 높다는 것입니다. 물론이 시점에서 우리가 찾고있는 효과는 발생하지 않으며 실패한 테스트를 받게됩니다.
당분간은 클릭하기 전에 약간의 시간 지연을 추가하여 초기화 JavaScript 코드가 끝나기까지 시간이 걸렸습니다. 이것은 분명히 조금 해킹되어 전체 테스트 실행에 시간을 추가하고 테스트가 여전히 실패하므로 더 나은 솔루션을 찾고 있습니다.
우리가 지금까지 생각해 낸 가장 좋은 아이디어는 Selenium이 기다릴 수있는 숨겨진 요소를 클릭 이벤트가 발생하기 전에 기다려서 준비가되었음을 알기 위해 숨겨진 요소를 주입하는 것입니다. 비동기 이벤트를 처리하고 요소를 제거하고 추가하는 경우 개발자 시간 측면에서 많은 추가 오버 헤드가 발생합니다. 또한 응용 프로그램에 실제로 필요하지 않은 추가 항목을 페이지에 추가합니다.
더 좋은 전략이 있습니까? 이 문제를 효과적으로 해결하기 위해 무엇을 했습니까?
여러 대의 컴퓨터에서 동시에 많은 테스트를 실행하는 우수한 Selenium Grid가 있습니다. –
이것은 우리가 한 일의 종류입니다. 나중에 그것을 고칠 의도로. 대체로 안정적이지만 몇 가지 테스트에는 여전히 문제가 있습니다. 나는 그것이 단지 진행중인 전투라고 생각한다. – William