Java Swing GUI에 대한 자동화 된 테스트
Java Swing으로 작성된 GUI에 대한 자동화 된 테스트를 빌드하기위한 옵션에는 어떤 것이 있습니까?
NetBeans Swing GUI Builder를 사용하여 작성된 일부 GUI를 테스트하고 싶습니다 . 따라서 테스트중인 코드를 특별히 변경하지 않고도 작동하는 것이 이상적 일 것입니다.
최근에 개발자 가 2012 년에 개발이 계속되지 않을 것이라고 발표 한 것을 제외하고는 유망 해 보이는 FEST를 발견 했습니다 .
AssertJ 는 저에게 매우 잘 작동하는 FEST의 포크입니다. 활발하게 유지 관리되고 (작성 당시), Java 8을 지원하고, Guava 및 Joda Time과 같은 몇 가지 인기있는 라이브러리에 대한 주장이 있으며 매우 잘 문서화되어 있습니다. 또한 무료이며 개방적입니다.
현재 FEST를 사용하고 있습니다. JUnit과 함께 작동하며 실패한 테스트의 스크린 샷도 찍습니다.
테스트중인 구성 요소의 이름을 찾는 기본 구성 요소 사냥 방법이 있지만 (수동으로 설정해야 함) 구성 요소를 전달하여 주어진 구성 요소에 대한 테스터를 생성 할 수도 있습니다.
Swing GUI 응용 프로그램에 대해 일반 영어로 기능 수용 테스트를 작성 하기 위해 Cucumber 및 Swinger 를 사용할 수 있습니다 . Swinger는 Netbeans의 Jemmy 라이브러리를 사용하여 앱을 구동합니다.
Cucumber를 사용하면 다음과 같은 테스트를 작성할 수 있습니다.
Scenario: Dialog manipulation
Given the frame "SwingSet" is visible
And the frame "SwingSet" is the container
When I click the menu "File/About"
Then I should see the dialog "About Swing!"
Given the dialog "About Swing!" is the container
When I click the button "OK"
Then I should not see the dialog "About Swing!"
이 Swinger 비디오 데모 를보고 실제 작동을 확인하십시오.
우리는 일부 GUI 테스트를 자동화하기 위해 jemmy 를 고려 하고 있습니다. 유망 해 보인다.
나는 java.awt.Robot
. 좋지 않고 쉽지는 않지만 매번 작동합니다.
장점 :
- 당신은 통제하고 있습니다
- 매우 빠름
- 나만의 FWK 구축
- 가지고 다닐 수 있는
- 외부 의존성 없음
단점 :
- 테스트를 빌드하는 데 좋은 GUI가 없습니다.
- 테스트하는 동안 GUI를 그대로 두어야합니다.
- 나만의 FWK 구축
- 테스트 코드를 변경하고 첫 번째 하네스를 만들기가 어려움
이제 예산이 있다면 LoadRunner로 갈 것입니다. 동급 최고.
(공개 : LR을 소유 한 회사와의 관계,하지만 관계 이전에 LR과 함께 일했습니다)
개인적으로 사용하지는 않았지만 SwingUnit 은 꽤 좋아 보인다. jUnit과 함께 사용할 수 있으며 "구성 요소의 위치"(예 : x 및 y 좌표)를 기반으로하지 않습니다.
NetBeans GUI Builder로 할 수있는 유일한 작업은 구성 요소에 고유 한 이름을 설정하는 것입니다.
우리는 QF-Test를 사용 하고 있으며 매우 만족합니다.
UISpec4J 는 매우 간단하고 부 풀지 않으며 확장 가능합니다. FEST보다 내 목적에 더 잘 맞습니다.
Marathon 을 사용할 수 있습니다 . "Marathon 통합 테스트 환경 인 MarathonITE는 저렴하고 사용하기 쉬운 크로스 플랫폼 Java / Swing ™ GUI 테스트 자동화 프레임 워크입니다. MarathonITE의 내장 스크립트 레코더를 사용하여 깨끗하고 읽기 쉬운 테스트 스크립트를 만들 수 있습니다. 추출 방법 리팩토링, 데이터 기반 테스트 생성 및 객체 맵 편집과 같은 고급 기능을 사용하면 유지 관리 가능하고 탄력적 인 테스트 스위트를 만들 수 있습니다. "
Sikuli : 스크린 샷을 사용하는 GUI 테스터 http://sikuli.org/
You could try ReTest, which is a novel tool that implements an innovative approach to functional regression testing and combines it with ai-based monkey testing. It is about to become open source as well...
Disclaimer: I am one of the founders of the company behind ReTest.
For those with an adventurous mind, there is gooey https://github.com/robertoaflores/Gooey a (very basic and under-development) programmatic testing tool for swing applications.
You can user sikuli or Automa for testing your GUI part, these are well documented and tested tools
Just did some quick scans. Squish was the most promising. Not for free though
참고URL : https://stackoverflow.com/questions/91179/automated-tests-for-java-swing-guis
'Development Tip' 카테고리의 다른 글
GCC가 "x && (x & 4242)"의 논리 비트 AND 쌍을 "x & 4242"로 최적화 할 수없는 이유는 무엇입니까? (0) | 2020.11.14 |
---|---|
특정 연령보다 오래된 모든 Linux 프로세스를 어떻게 종료합니까? (0) | 2020.11.14 |
if 문에서 조건 평가 순서에 의존하는 것이 안전합니까? (0) | 2020.11.14 |
C에서 순환 버퍼를 어떻게 구현합니까? (0) | 2020.11.14 |
여러 스레드가 사용 가능할 때 여러 CPU를 사용하도록 강제 (0) | 2020.11.14 |