출처: Dev.to Java 단위 테스트 프레임워크는 개발자가 애플리케이션이나 기타 소프트웨어를 만들 수 있는 정교하고 확장 가능한 표준 도구를 제공합니다. 이는 미리 작성된 코드를 포함하는 수많은 개체로 구성됩니다. 테스트 프레임워크 선택에 따라 라이브러리, 컴파일러, 도구 및 API가 포함됩니다. Java 단위 테스트 프레임워크는 애플리케이션에 대한 강력한 보안 제어를 제공합니다. 보안 취약점이 발견되면 프레임워크의 웹사이트/지원에서 수정할 수 있습니다. 프레임워크 작성자는 프로그래머와 테스터의 효율성과 속도를 높이는 내장 기능과 모듈도 제공합니다. 이번 10년 동안 플랫폼 테스트에서 무엇을 기대할 수 있을까요? 우리는 2020년 현재 최고의 Java 테스트 프레임워크 목록을 여러분의 관심에 제시합니다.
1. JBehave
JBehave는 BDD(Behavior-Driven Development)를 지원하는 최고의 Java 테스트 프레임워크 중 하나입니다. BDD는 TDD(Test-Driven Development)와 ATDD(Acceptance Test-Driven Development)의 진화된 연속체입니다. Jbehave의 주요 배포판:- JBehave 웹,
- JBehave 코어.
- Commons-lang-2.4.jar
- Junit-4.1.0.jar
- Jbehave-core-3.8.jar
- Freemarker-2.3.9.jar
- 신경총-utils-1.1.jar
- Paranamer-2.5.jar
- org.apache.commons.collections.jar
- org.apache.commons.io.jar
- JBehave의 테스트 프레임워크는 사려 깊은 세부 사항과 직관적인 사용 편의성 덕분에 탁월한 성능을 발휘합니다.
- JBehave는 서로 다른 프로젝트를 수행하지만 유사한 사양을 사용하는 별도의 개발 팀 간의 통합을 제공하여 BDD를 위한 훌륭한 작업을 수행합니다.
- JBehave 프레임워크는 개발자에게 매우 유용한 준공식 언어를 사용합니다. 도메인 어휘는 팀 구조의 일관성을 보장합니다.
- 사양이 동일한 형식을 따르기 때문에 이해 관계자와 프로젝트 관리자는 테스트 팀과 개발 팀 성능에 대한 투명성을 높일 수 있습니다.
2. J유닛
JUnit 은 숙련된 개발자가 단위 테스트를 수행하고 프로그래밍 속도를 높이며 Java 코드 품질을 향상시키기 위해 주로 사용하는 오픈 소스 회귀 테스트 프레임워크입니다. 이 도구를 사용하는 주요 목적은 Java 개발자가 반복 가능한 테스트 사례를 스크립트로 작성하고 구현할 수 있도록 하는 것입니다. Java에서 가장 일반적으로 사용되는 단위 테스트 프레임워크 중 하나입니다. 대부분 JUnit은 작은 코드 조각을 테스트하는 데 사용됩니다. 또한 자동화된 Java 테스트를 위해 Selenium WebDriver와 JUnit을 결합하여 자동화된 웹사이트 테스트를 수행하는 데에도 사용할 수 있습니다. 새로운 코드를 추가할 때 테스터는 전체 테스트 케이스를 다시 로드하고 중단이 없는지 확인하라는 메시지를 받게 됩니다. JUnit 기능:- 테스트 스위트
- 공통 객체 세트 사용
- JUnit 클래스;
- 테스트 러너.
- 컴퓨터에 최신 버전의 JDK가 있어야 합니다.
- (선택 사항) $JUNIT_HOME/src의 압축을 풉니다. jar 파일.
- 객체 지향 언어(Java 선호)로 애플리케이션을 개발하는 기술과 경험.
- JUnit의 새 버전을 다운로드하고 프레임워크를 구성하십시오.
- JUnit은 Java 8 기능을 지원하므로 통합 및 단위 테스트에 모두 사용할 수 있습니다.
- 프레임워크를 사용하면 초기 단계에서 오류를 쉽게 감지할 수 있으므로 건강하고 안정적인 코드가 생성됩니다.
- JUnit을 사용하는 프로그래머는 JUnit이 매우 유용하다고 생각합니다. 코드를 더 쉽게 읽고 취약점을 확인할 수 있습니다.
- JUnit을 사용하면 오류가 없고 가독성이 높은 코드를 작성할 수 있습니다.
- Eclipse, NetBeans, Maven, Ant 및 IntelliJ IDEA와 같은 거의 모든 주요 IDE와 호환됩니다. 따라서 이러한 IDE에서 직접 단위 테스트를 쉽게 작성하고 실행할 수 있습니다.
- 업데이트된 JUnit 버전(버전 5)을 사용하면 예외를 쉽게 정의할 수 있습니다.
- 단위 테스트 프레임워크는 Java 5 또는 다른 버전에서 사용할 수 있습니다.
3. 평온함
이전에 Thucydides로 알려진 Serenity는 가장 널리 사용되는 오픈 소스 Java 테스트 프레임워크 중 하나입니다. Serenity BDD 프레임워크는 명확하고 체계적이며 관리 가능한 테스트 기준을 만드는 데 도움이 됩니다. Selenium WebDriver와 JUnit의 기능을 모두 확장합니다. 이 전문 플랫폼을 사용하면 설명적인 테스트 보고서를 작성할 수 있습니다. 또한 자동화된 테스트를 필요에 맞게 조정할 수 있습니다. 전반적으로 이 프레임워크는 Java 개발을 더욱 안정적이고 효율적으로 만듭니다. 세레니티 기능:- 오픈소스 프로젝트;
- 테스트 및 구현 결과에 대한 전체 보고서
- 각 테스트에 대한 비즈니스 형식 보고서입니다.
- JDK 5 이상.
- 메이븐 3.0 이상.
- IDE(보통 Eclipse).
- 프레임워크는 테스터가 REST 서비스에 대한 테스트 케이스를 생성하는 데 도움이 됩니다.
- 테스트 케이스에 대한 설명과 이해, 그리고 구현에 대한 접근 방식 사이의 균형을 유지합니다.
- 사용자는 자동화된 인프라를 자체적으로 유지 관리하거나 생성하는 데 추가 시간을 소비할 필요가 없습니다.
- Serenity는 Spring과 같은 다양한 개발 프레임워크, Selenium, JBehave와 같은 테스트 프레임워크는 물론 JIRA와 같은 프로젝트 관리 도구와 통합될 수 있습니다.
4.테스트NG
TestNG는 통합, 기능 및 단위 테스트에 사용되는 가장 널리 사용되는 Java 테스트 프레임워크 중 하나입니다. 2004년 Cedric Beist에 의해 만들어졌으며 현재 버전 7로 업데이트되었습니다. JUnit 프레임워크의 주요 경쟁자입니다. TestNG는 JUnit과 유사하지만 Junit에서 지원하지 않는 일부 주석과 기능이 있습니다. TestNG는 엔드투엔드, 단위, 통합 및 기능을 포함한 거의 모든 유형의 소프트웨어 테스트에 사용할 수 있습니다. TestNG와 JUnit은 모두 테스트를 작성하고 최종 결과를 확인할 수 있는 Java 기반 프레임워크입니다. 테스트에 성공하면 녹색 막대가 표시되고, 그렇지 않으면 빨간색 막대가 표시됩니다. TestNG의 특징:- 종속 메서드 테스트를 지원합니다.
- 유연한 테스트 구성;
- 견고한 실행 모델을 지원합니다.
- 유연성을 높이기 위해 BeanShell에 설치됩니다.
- 최신 JDK 버전;
- 최신 버전의 Eclipse;
- Java 프로그래밍 언어 또는 기타 객체 지향 프로그래밍 언어에 대한 이해 및 실무 경험.
- 여러 코드 조각의 병렬 테스트를 생성하고 실행할 수 있습니다.
- 테스트 케이스를 구현할 때 HTML 형식으로 보고서를 생성할 수 있습니다.
- 테스트는 우선순위에 따라 쉽게 구성되고 그룹화될 수 있습니다. 외부 또는 데이터베이스 테스트를 수행하기 위해 프레임워크를 배치하기만 하면 테스트를 실행하는 것이 훨씬 쉽습니다.
- 데이터를 매개변수화하고 주석을 사용하여 우선순위를 쉽게 설정할 수 있습니다.
5.셀레니드
Selenide 는 Selenium WebDriver로 구동되는 인기 있는 오픈 소스 Java 테스트 프레임워크입니다. Java 애플리케이션에 대한 정확하고 의사소통이 가능하며 안정적인 UI 테스트를 작성하기 위한 탁월한 도구입니다. WebDriver 및 JUnit의 기능을 확장합니다. WebDriver는 우리가 가장 좋아하는 UI 테스트 도구 중 하나이지만 시간 초과 기능이 부족합니다. 예를 들어 Ajax와 같은 웹 기술을 테스트합니다. Selenide 프레임워크는 이러한 모든 문제를 쉽게 처리합니다. 게다가 설치와 학습도 더 쉽습니다. 논리에만 집중하면 나머지는 Selenide가 알아서 해줄 것입니다. 셀레니드 특징:- 복잡한 설정이 필요하지 않습니다.
- 많은 코드를 작성할 필요가 없습니다.
- 많은 시간을 절약합니다.
- Jenkins와 같은 CI 도구에 이상적인 구성입니다.
- JDK 5 이상;
- Maven 3.0 또는 기타 버전
- IDE(통합 개발 환경) 도구입니다. 대부분의 경우 모든 개발자는 Eclipse와 Maven의 조합이 작업하기 더 쉽기 때문에 Eclipse를 선호합니다.
- Selenide는 테스트를 정확하고 안정적으로 만들어 (거의) 모든 Ajax/타이밍 문제를 해결합니다.
- 테스트 케이스 작성 프로세스를 줄입니다.
- AngularJS를 사용하여 개발된 애플리케이션 테스트를 지원합니다.
- 이전에 다른 Selenium 도구에서 사용되었던 명령 수를 줄입니다.
6.게이지
Selenium Thoughtworks의 제작자는 웹 애플리케이션에서 자동화된 테스트를 수행하기 위한 또 다른 Java 테스트 프레임워크를 출시했습니다. Gauge는 더 적은 코드로 승인 테스트 부담을 줄여주는 Java용 무료 오픈 소스 테스트 자동화 프레임워크입니다. 모바일 웹사이트 테스트를 위한 기술 스택 카테고리에서 가장 일반적으로 사용되는 Java 테스트 프레임워크 중 하나입니다. 이 프레임워크를 사용한 자동화된 테스트는 언어에 관계없이 읽기 쉬운 테스트를 생성할 수 있습니다. Selenium과 마찬가지로 이 테스트 프레임워크는 Ruby, JavaScript, Java, C# 및 Python을 포함한 여러 프로그래밍 언어를 지원합니다. 게이지 기능:- 사용하기 쉽고 유연한 구문;
- 비즈니스와 유사한 언어를 사용합니다.
- 여러 언어와 플랫폼을 지원합니다.
- 많은 플러그인.
- Maven을 다운로드하고 설치합니다 .
- 운영 체제 Microsoft Windows 10 이상;
- 메모리 – 512MB RAM(최소);
- Gauge 플러그인은 IDE(통합 개발 환경)로 구성되어야 하며, CMD/터미널에서 테스트를 실행하는 경우 Gauge 프레임워크를 설치해야 합니다.
- 스크립트를 읽고 이해할 수 있게 만듭니다.
- 사용하기 쉽고 유연한 구문과 모든 유형의 언어(Java, Javascript, C#, Ruby, Python 등) 및 플랫폼을 지원합니다.
- 선택한 IDE(통합 개발 환경)(IntelliJ, Vi VS Code, Visual Studio, Maven, Gradle, Eclipse 등)에서 테스트를 생성할 수 있습니다.
- 병렬 테스트를 수행하고 사용자 정의 보고서를 생성합니다.
- 높은 정확성과 가독성을 유지하면서 대규모 데이터 세트를 쉽게 테스트할 수 있습니다.
- Gauge는 새로운 프레임워크이므로 사용자는 이에 대해 많이 알지 못합니다.
- Gauge는 드라이버가 정적이며 스크립트와 함께 사용해야 한다는 사실로 인해 IntelliJ 내 사양의 안전한 병렬 구현을 지원하지 않습니다.
7. 게브
Geb은 Selenium WebDriver를 기반으로 구축된 브라우저 테스트 프레임워크입니다. 이는 자동화된 테스트에 이상적이며 WebDriver가 지원하는 모든 브라우저에서 브라우저 간 테스트를 쉽게 수행할 수 있습니다. Geb은 프런트엔드 데이터 분석, 웹 테스트 등을 위한 뛰어난 기능을 제공합니다. 이를 예외적으로 만드는 것은 HTML 페이지를 쿼리하여 jQuery와 유사한 구문을 생성하는 방식입니다. Geb 플랫폼은 페이지 개체 모델에 대한 기본 지원도 제공합니다 . Geb는 일반적인 스크래핑, 스크립팅 및 자동화에도 사용할 수 있습니다. TestNG, JUnit 및 Spock과 같은 테스트 프레임워크와의 통합 덕분에 승인 테스트, 웹 테스트 또는 기능 테스트를 위한 솔루션으로도 적합합니다. 게브 특징:- 전체 jQuery 구문 지원;
- 아파치 라이센스 2.0;
- WebDriver 호환;
- 페이지 개체 모델링의 안정성
- 그루비한 표현.
- Maven을 다운로드하여 설치해야 합니다 .
- Java 8 이상의 가용성
- LambdaTest 인증 및 확인 자격 증명
- Geb 테스트 자동화 프레임워크를 위한 GitHub 의 LambdaTest 저장소 복사본입니다 .
- Page Objects 양식과 Geb의 Groovy DSL은 영어와 어느 정도 유사하므로 테스트를 읽기 쉽게 만듭니다.
- 빠른 속도로 테스트를 실행하고 테스트 비용을 절감합니다. Internet Explorer, HTMLUnit, Firefox, Chrome 등 다양한 브라우저와 호환됩니다.
- 사용자가 관찰하는 실제 환경에서 실시간으로 테스트를 수행합니다. 단일 스크립트 내에서 최대의 테스트 효율성을 제공합니다.
- 문제없이 회귀 테스트를 수행할 수 있습니다. Geb 테스트 케이스를 실행하여 애플리케이션 수정 또는 수정 후 활성 기능이 손상되었는지 확인할 수 있습니다.
- Geb의 단점은 Groovy 언어로 WebDriver를 사용한다는 것입니다. 따라서 Webdriver를 사용할 경우 해당 언어만 지원됩니다. 그러나 WebDriver를 직접 사용하려고 하면 Java, Ruby, C# 및 Python을 포함한 다른 언어도 지원됩니다.
- Geb은 소규모 프로젝트에는 적합하지 않지만 대규모 작업에는 잘 작동합니다. 웹 애플리케이션에 데이터가 흘러야 하는 페이지와 양식이 포함되어 있지 않으면 해당 구조가 다루기 어려워 보일 수 있습니다.
8.스팍
Spock은 널리 사용되는 Java용 테스트 자동화 프레임워크입니다. Groovy로 작성되었으며 테스터가 Java Virtual Machine에서 데이터 기반 테스트를 실행할 수 있습니다. Spock은 JVM을 지원하는 다양한 언어와 뛰어난 호환성을 제공합니다. Spock의 특징 중 하나는 코드 문서화와 코드 가독성이 체계적이고 깔끔하며, 간단한 영어 문장도 해석할 수 있다는 점입니다. 소프트웨어 개발자가 Java로 엔터프라이즈 애플리케이션을 만드는 데 자주 사용됩니다. 이러한 이유로 Spock은 2020년에 가장 인기 있고 사용자 친화적인 Java 테스트 프레임워크가 되었습니다. 스팍의 특징:- 사실상 이는 JUnit Java 프레임워크의 확장 버전입니다.
- 모의 객체 지원
- 테스트는 어떤 언어로든 작성될 수 있습니다.
- 최신 JDK 버전;
- 업데이트된 버전의 Eclipse;
- Java 프로그래밍 언어에 대한 지식.
- 놀라운 가독성으로 다른 Java 자동화 테스트 프레임워크에 비해 일반 영어 문장과의 호환성을 보장합니다.
- Spock을 사용한 Stubbing 및 Mocking은 그 어느 때보다 쉽고 간편합니다. 또한 프레임워크에 내장되어 있습니다.
- 더 명확하고 짧은 매개변수화.
- 주변 상황을 유지하여 실패 원인을 더 쉽게 발견할 수 있습니다.
- 단순화되고 의사소통이 가능한 DSL(도메인 특정 언어).
- Groovy로 작성되었기 때문에 Groovy에 대한 기본 지식이 있어야 합니다.
- Spock 프레임워크가 약간 투박하다고 느낄 수도 있지만 일단 익숙해지면 다른 Java 테스트 프레임워크로 전환할 생각이 없을 것입니다.
9. HTTP유닛
HttpUnit은 널리 사용되는 오픈 소스 테스트 프레임워크입니다. 브라우저 요구사항 없이 웹사이트를 테스트할 수 있습니다. HttpUnit은 웹 애플리케이션에 대한 자동화된 테스트 스크립트를 실행하는 데 적합합니다. 이름에서 알 수 있듯이 HttpUnit은 단위 테스트에 사용될 수 있습니다. 그러나 서블릿, JSP(JavaServer Pages) 및 기타 템플릿 요소와 같은 일반적인 웹 계층 요소는 단위 테스트에 적합하지 않습니다. Java로 작성된 프레임워크를 사용하면 반환된 페이지, XML DOM, 텍스트, 테이블 컨테이너, 링크 및 양식에 대해 테스트를 실행할 수 있습니다. HttpUnit의 특징:- 쿠키 지원;
- HTTPS 및 HTTP 프로토콜을 지원합니다.
- HTML 응답 지원;
- 프록시 서버 지원;
- 뛰어난 JavaScript 지원.
- 시스템은 Java JDK 1.4 또는 최신 버전을 지원해야 합니다.
- HttpUnit과 통합된 Tidy.jar 및 httpunit.ja를 클래스 경로에 추가합니다. 또한 XML 파서가 사전 설치되어 있는지 확인하십시오.
- 이전 버전의 Java를 사용하는 경우 클래스 경로에 JAXP 호환 XML 구문 분석기를 포함해야 합니다.
- 이 페이지 에서는 최신 버전의 HttpUnit을 사용할 수 있습니다 .
- 웹 애플리케이션 테스트를 자동화하고 회귀 테스트에 도움이 됩니다.
- HTTPUnit의 장점 중 하나는 Selenium과 같은 다른 테스트 자동화 프레임워크보다 훨씬 빠르다는 것입니다.
- 뛰어난 JavaScript 지원으로 맞춤형 브라우저(IE 또는 Firefox)의 작업을 시뮬레이션할 수 있습니다.
- HTTPUnit은 Rhino JavaScript 엔진을 핵심 언어로 사용하고 브라우저 구현을 위한 개체 실행을 정확하게 제공합니다.
- 널리 사용되는 JavaScript 라이브러리의 단위 테스트는 이러한 단위 테스트를 기반으로 하는 HtmlUnit의 자체 단위 테스트에 통합됩니다. jQuery 1.11.3, MochiKit 1.4.1, MooTools 1.2.1 등의 라이브러리를 지원하며 HtmlUnit과 잘 작동합니다.
- HtmlPage.executeJavascript(String yourJsCode)를 사용하여 현재 페이지에 코드를 삽입하는 기능.
- 이는 간단한 테스트를 실행하는 데 좋은 옵션이지만 복잡한 테스트를 만들려면 훨씬 더 많은 코드가 필요합니다.
- Selenium과 같은 프레임워크는 더 구체적이므로 테스트 중인 애플리케이션을 제한하지 않는 브라우저 중심 동작을 허용합니다. HttpUnit 프레임워크를 사용하면 일부 주요 브라우저를 제외하고 제한된 지원을 받을 수 있습니다.
10. J웹유닛
JWebUnit 은 JUnit을 확장한 Java 기반 테스트 프레임워크 입니다 . 통합, 회귀 및 기능 테스트에 사용됩니다. JWebUnit은 HTMLUnit 및 Selenium과 같은 현재 활성 프레임워크를 간단한 테스트 인터페이스와 결합합니다. 이렇게 하면 웹 애플리케이션의 정확성을 즉시 확인할 수 있습니다. JWebUnit을 사용하여 화면 탐색 테스트를 수행할 수 있습니다. 또한 플랫폼은 웹 애플리케이션을 탐색하여 애플리케이션의 정확성을 확인하기 위한 고급 Java 애플리케이션 프로그래밍 인터페이스를 제공합니다. 여기에는 링크 탐색, 양식 입력 및 제출, 테이블 내용 정당화, 기타 비즈니스 애플리케이션의 일반적인 기능이 고려됩니다. JWebUnit의 특징:- 웹 애플리케이션 탐색을 위한 최상위 Java API입니다.
- 오픈 소스 Java 기반 프레임워크.
- 메이븐을 설치해야 합니다.
- JWebUnit의 현재 안정 버전은 3.3입니다. 자바 1.7이 필요합니다.
- 필요한 플러그인을 추가하세요. 더 빠른 테스트를 위한 HtmlUnit과 Javascript 및 Webdriver에 대한 뛰어난 지원: 베타 품질.
- Maven 2를 사용할 때 Eclipse에서 종속성을 관리하려면 m2e 플러그인을 사용하세요.
- 화면 탐색을 테스트하는 데 사용됩니다.
- 웹 애플리케이션 탐색을 위한 최상위 API를 제공합니다.
- 쉽게 액세스할 수 있는 어설션을 통한 간단한 탐색을 통해 JUnit 또는 HtmlUnit을 사용하는 것보다 더 빠르게 테스트를 생성할 수 있습니다.
- HtmlUnit에서 Selenium과 같은 다른 유형의 플러그인으로 전환하려는 경우 테스트를 다시 작성할 필요가 없습니다.
GO TO FULL VERSION