Cucumber Tool 및 Selenium을 사용한 자동화 테스트 – Selenium Tutorial # 30

지난 Selenium 튜토리얼에서 속도 향상을위한 분산 테스트 실행 환경 인 Selenium Grid를 소개했습니다. 테스트 통과의 실행입니다.

이제이 포괄적 인 Selenium 교육 시리즈의 끝에서 우리는 고급 Selenium 테스트 및 관련 개념을 배우고 있습니다.

이 튜토리얼과 다음 튜토리얼에서는 수락 테스트를 수행하기 위해 Selenium과 함께 사용되는 BDD (Behavior Driven Development) 프레임 워크 인 Cucumber를 소개합니다.

Cucumber 소개

A cucumber는 웹 애플리케이션에 대한 승인 테스트를 작성하는 데 사용되는 BDD (Behavior Driven Development) 프레임 워크를 기반으로하는 도구입니다. 비즈니스 분석가, 개발자, 테스터 등이 쉽게 읽고 이해할 수있는 형식 (예 : 일반 영어)으로 기능 검증을 자동화 할 수 있습니다.

Cucumber 기능 파일은 모두에게 좋은 문서가 될 수 있습니다. BDD 프레임 워크도 지원하는 JBehave와 같은 다른 도구가 많이 있습니다. 처음에 Cucumber는 Ruby로 구현 된 후 Java 프레임 워크로 확장되었습니다. 두 도구 모두 네이티브 JUnit을 지원합니다.

행동 기반 개발은 테스트 기반 개발의 확장이며 특정 코드를 테스트하는 대신 시스템을 테스트하는 데 사용됩니다. BDD 및 BDD 테스트 작성 스타일에 대해 자세히 설명합니다.

Cucumber는 Selenium, Watir 및 Capybara 등과 함께 사용할 수 있습니다. Cucumber는 Perl, PHP, Python, Net 등과 같은 다른 많은 언어를 지원합니다. 이 튜토리얼에서는 Java를 언어로 사용하는 Cucumber에 중점을 둘 것입니다.

Cucumber 기본 사항

오이를 이해하려면 오이의 모든 기능과 사용법을 알아야합니다.

# 1) 기능 파일 :

기능 파일은 테스트 자동화 단계 또는 승인 테스트를 작성하는 데 사용되는 오이의 필수 부분입니다. 이것은 라이브 문서로 사용할 수 있습니다. 단계는 애플리케이션 사양입니다. 모든 기능 파일은 .feature 확장자로 끝납니다.

샘플 기능 파일 :

기능 : 로그인 기능 기능

로그인 기능이 작동하는지 확인하려면
오이 테스트를 실행하여 작동하는지 확인하고 싶습니다

시나리오 : 로그인 기능

사용자가 SOFTWARETETINGHELP.COM으로 이동 한 경우
사용자가 사용자 이름을 “USER”로 사용하여 로그인 할 때 ”및 비밀번호 “PASSWORD”
그러면 로그인이 성공해야합니다.

시나리오 : 로그인 기능

사용자가 SOFTWARETETINGHELP.COM으로 이동하면
사용자가 사용자 이름을 “로 사용하여 로그인 할 때 USER1”및 비밀번호 “PASSWORD1”
그러면 오류 메시지가 표시됩니다.

# 2) 기능 :

높은 수준의 비즈니스 기능에 대한 정보를 제공합니다 (이전 예) 및 테스트 대상 응용 프로그램의 목적. 모든 사람이 첫 번째 기능 단계를 읽고 기능 파일의 의도를 이해할 수 있어야합니다. 이 부분은 기본적으로 간략하게 유지됩니다.

# 3) 시나리오 :

기본적으로 시나리오는 테스트중인 특정 기능을 나타냅니다. 시나리오를보고 사용자는 시나리오이면의 의도와 테스트의 내용을 이해할 수 있어야합니다. 각 시나리오는 주어진시기와 형식을 따라야합니다. 이 언어를 “gherkin”이라고합니다.

  1. 주어 : 위에서 언급했듯이 given은 전제 조건을 지정합니다. 기본적으로 알려진 상태입니다.
  2. 시기 : 이것은 액션이 수행 될 때 사용됩니다. 위의 예에서와 같이 사용자가 사용자 이름과 비밀번호를 사용하여 로그인을 시도하면 액션이됩니다.
  3. 그런 다음 : 예상되는 결과 또는 결과는 다음과 같아야합니다. 인스턴스의 경우 : 로그인이 성공했는지 확인하고 페이지 탐색에 성공합니다.
  4. 배경 : 각 시나리오에서 수행하는 데 단계가 필요할 때마다 해당 단계를 백그라운드에 배치해야합니다. 인스턴스의 경우 : 사용자는 각 시나리오 전에 데이터베이스를 지워야합니다. 그런 다음 해당 단계를 백그라운드에 배치 할 수 있습니다.
  5. 그리고 : 두 개 이상의 동일한 유형의 작업을 결합하는 데 사용됩니다.

예 :

기능 : 로그인 기능 기능

시나리오 : 로그인 기능
사용자가 SOFTWARETETINGHELP.COM으로 이동 한 경우
사용자가 사용자 이름을 “USER”로 사용하여 로그인 할 때
그리고 passwo rd as “password”
그러면 로그인이 성공하고
홈 페이지가 표시되어야합니다.

배경의 예 :

배경 :

주어진 데이터베이스 관리자로 로그인 한 사용자
그리고 모든 정크 값이 지워집니다.

# 4) 시나리오 개요 :

시나리오 개요는 동일한 테스트를 다른 사용자로 수행해야 할 때 사용됩니다. 데이터 세트. 같은 예를 들어 보겠습니다. 여러 다른 사용자 이름 및 비밀번호 세트로 로그인 기능을 테스트해야합니다.

기능 : 로그인 기능 기능

로그인 기능이 작동하는지 확인하려면
작동하는지 확인하기위한 오이 테스트

시나리오 개요 : 로그인 기능

사용자가 SOFTWARETESTINGHELP로 이동합니다.COM
사용자가 사용자 이름을 < 사용자 이름 > 및 암호 <로 사용하여 로그인 할 때 비밀번호 >
그런 다음 로그인이 성공해야합니다.

예 :
| username | password |
| Tom | password1 |
| Harry | password2 |
| Jerry | password3 |

참고 :

  1. 위 예제에서 볼 수 있듯이 열 이름은 When 문에 매개 변수로 전달됩니다.
  2. 시나리오 대신 시나리오 개요를 사용해야합니다.
  3. 예제는 표 형식으로 다른 인수를 전달하는 데 사용됩니다. 수직 파이프는 두 개의 다른 기둥을 분리하는 데 사용됩니다. 예에는 다양한 열이 포함될 수 있습니다.

# 5) 태그 :

Cucumber는 기본적으로 모든 기능 파일의 모든 시나리오를 실행합니다. 실시간 프로젝트에서는 항상 실행할 필요가없는 수백 개의 기능 파일이있을 수 있습니다.

예 : 연기 테스트와 관련된 기능 파일이 항상 실행될 필요는 없습니다. 따라서 연기 테스트와 관련된 각 기능 파일에서 태그를 무연으로 언급하고 @SmokeTest 태그로 오이 테스트를 실행합니다. Cucumber는 주어진 태그와 관련된 기능 파일 만 실행합니다. 아래 예를 따르십시오. 하나의 기능 파일에 여러 태그를 지정할 수 있습니다.

단일 태그 사용 예 :

@SmokeTest

기능 : 로그인 기능 기능

로그인 기능이 작동하는지 확인하기 위해
오이 테스트를 실행하여 작동하는지 확인하고 싶습니다

시나리오 개요 : 로그인 기능

사용자가 SOFTWARETESTINGHELP로 이동합니다. COM
사용자가 사용자 이름을 < 사용자 이름 > 및 암호 <로 사용하여 로그인 할 때 password >
그런 다음 로그인이 성공해야합니다.

여러 태그 사용의 예 :

아래 예시와 같은 동일한 기능 파일 로그인 테스트 시나리오뿐만 아니라 연기 테스트 시나리오에도 사용할 수 있습니다. 스모크 테스트를 위해 스크립트를 실행하려면 @SmokeTest를 사용하십시오. 마찬가지로 로그인 테스트를 위해 스크립트를 실행하려면 @LoginTest 태그를 사용하십시오.

시나리오뿐만 아니라 기능 파일에 대해 여러 태그를 언급 할 수 있습니다.

@SmokeTest @ LoginTest

기능 : 로그인 기능 기능

로그인 기능이 작동하는지 확인하기 위해
오이 테스트를 실행하여 작동하는지 확인하고 싶습니다

시나리오 개요 : 로그인 기능

사용자가 SOFTWARETETINGHELP.COM으로 이동하는 경우
사용자가 사용자 이름을 < 사용자 이름 > 및 비밀번호 < password >
그러면 로그인이 성공해야합니다.

마찬가지로 다음을 수행 할 수 있습니다. 기능 파일에서 특정 시나리오를 실행하기위한 태그를 지정합니다. 특정 시나리오를 실행하려면 아래 예제를 확인하십시오.

기능 : 로그인 기능 기능

로그인 기능이 작동하는지 확인하기 위해
오이 테스트를 실행하여 확인하고 싶습니다. 작동 중

@positiveScenario
시나리오 : 로그인 기능

사용자가 SOFTWARETETINGHELP.COM으로 이동합니다.
사용자가 사용자 이름을 “USER”로, 비밀번호 “PASSWORD”를 사용하여 로그인 할 때
그런 다음 로그인이 성공해야합니다.

@negaviveScenario
시나리오 : 로그인 기능

사용자가 SOFTWARETETINGHELP.COM으로 이동합니다.
사용자가 사용자 이름을 “USER1″로 사용하여 로그인 할 때 및 비밀번호 “PASSWORD1”
그러면 오류 메시지가 표시되어야합니다.

# 6) JUnit Runner :

특정 기능 파일을 실행하려면 오이가 표준 JUnit Runner를 사용하고 @Cucumber에 태그를 지정합니다. . 옵션. 쉼표로 구분하여 여러 태그를 지정할 수 있습니다. 여기에서 보고서의 경로와 생성하려는 보고서 유형을 지정할 수 있습니다.

Junit Runner의 예 :

마찬가지로 오이에게 여러 태그를 실행하도록 지시 할 수 있습니다. 아래 예는 오이에서 여러 태그를 사용하여 다양한 시나리오를 실행하는 방법을 보여줍니다.

# 7) 오이 보고서 :

오이는 자체 HTML 형식을 생성합니다. 그러나 Jenkins 또는 bamboo 도구를 사용하여 더 나은보고를 수행 할 수 있습니다. 보고에 대한 자세한 내용은 오이의 다음 항목에서 다룹니다.

오이 프로젝트 설정 :

오이 프로젝트 설정에 대한 자세한 설명은 다음 튜토리얼에서 별도로 제공됩니다. 프로젝트 설정에 대한 자세한 내용은 Cucumber Tutorial Part2를 참조하십시오. 오이에는 추가 소프트웨어 설치가 필요하지 않습니다.

기능 파일 구현 :

기능 파일을 테스트하려면 Java에서 이러한 단계를 구현해야합니다. 주어진, 언제, 그리고 문장을 포함하는 클래스를 만들어야합니다. Cucumber는 주석을 사용하고 모든 단계는 해당 주석에 포함됩니다 (주어진시기, 그때). 각 구문은 “^”로 시작하여 오이가 단계의 시작을 이해할 수 있도록합니다. 마찬가지로 각 단계는 “$”로 끝납니다. 사용자는 정규식을 사용하여 다른 테스트 데이터를 전달할 수 있습니다. 정규식은 기능 단계에서 데이터를 가져와 단계 정의로 전달합니다.매개 변수의 순서는 기능 파일에서 전달되는 방법에 따라 다릅니다. 프로젝트 설정 및 기능 파일과 Java 클래스 간의 매핑에 대해서는 다음 자습서를 참조하십시오.

예 :

다음 예제는 기능 파일을 구현할 수있는 방법을 설명하는 것입니다.

이 예에서는 셀레늄 API를 사용하지 않았습니다. 이것은 오이가 독립형 프레임 워크로 어떻게 작동하는지 보여주기위한 것입니다. 오이와 셀레늄 통합에 대한 다음 튜토리얼을 따르십시오.

오이 러너 클래스를 실행하면 오이가 기능 파일 단계를 읽기 시작합니다. 예를 들어 @smokeTest를 실행하면 오이는 Feature step과 Given a statement of scenario를 읽습니다. 오이가 Given the 문을 찾으면 동일한 Given 문이 Java 파일을 검색합니다. Java 파일에서 동일한 단계가 발견되면 cucumber는 동일한 단계에 지정된 함수를 실행합니다. 그렇지 않으면 cucumber가 단계를 건너 뜁니다.

결론

이 자습서에서는 다음 기능을 다룹니다. 오이 도구 및 실시간 시나리오에서의 사용.
Cucumber는 이해하기 쉽고 읽기 쉽고 비즈니스 기능이 포함되어있어 많은 프로젝트에서 가장 선호하는 도구입니다.

다음 장에서 다룰 것입니다. 오이를 설정하는 방법 – 자바 프로젝트 및 Selenium WebDriver를 Cucumber와 통합하는 방법

최종 업데이트 : 2021 년 1 월 18 일 오전 6:40

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다