시간이 지남에 따라 우리 커뮤니티는 여러분이 자신의 테스트 스위트를 설정하는 데 영감을 줄 수 있는 여러 프로젝트를 개발했습니다.
v9 보일러플레이트 프로젝트
webdriverio/cucumber-boilerplate
Cucumber 테스트 스위트를 위한 우리 자체 보일러플레이 트입니다. 150개 이상의 미리 정의된 스텝 정의를 만들었으므로, 바로 프로젝트에서 기능 파일 작성을 시작할 수 있습니다.
- 프레임워크:
- Cucumber
- WebdriverIO
- 특징:
- 필요한 거의 모든 것을 다루는 150개 이상의 미리 정의된 스텝
- WebdriverIO의 Multiremote 기능 통합
- 자체 데모 앱
webdriverio/jasmine-boilerplate
Babel 기능과 페이지 객체 패턴을 사용하여 Jasmine으로 WebdriverIO 테스트를 실행하기 위한 보일러플레이트 프로젝트입니다.
- 프레임워크
- WebdriverIO
- Jasmine
- 특징
- 페이지 객체 패턴
- Sauce Labs 통합
webdriverio/electron-boilerplate
최소한의 Electron 애플리케이션에서 WebdriverIO 테스트를 실행하기 위한 보일러플레이트 프로젝트입니다.
- 프레임워크
- WebdriverIO
- Mocha
- 특징
- Electron API 모킹
amiya-pattnaik/wdio-testgen-from-gherkin-js
amiya-pattnaik/wdio-testgen-from-gherkin-ts
Gherkin .feature 파일에서 WebdriverIO 페이지 객체 클래스와 Mocha 테스트 스펙을 자동으로 생성합니다 - 수동 작업을 줄이고, 일관성을 향상시키며, QA 자동화 속도를 높입니다. 이 프로젝트는 webdriver.io와 호환되는 코드를 생성할 뿐만 아니라 webdriver.io의 모든 기능을 향상시킵니다. JavaScript 사용자용과 TypeScript 사용자용 두 가지 버전을 만들었습니다. 하지만 두 프로젝트 모두 동일한 방식으로 작동합니다.
작동 방식
- 프로세스는 두 단계의 자동화를 따릅니다:
- 1단계: Gherkin에서 stepMap으로 (stepMap.json 파일 생성)
- stepMap.json 파일 생성:
- Gherkin 구문으로 작성된 .feature 파일을 파싱합니다.
- 시나리오와 단계를 추출합니다.
- 다음을 포함하는 구조화된 .stepMap.json 파일 생성:
- 수행할 작업(예: click, setText, assertVisible)
- 논리적 매핑을 위한 selectorName
- DOM 요소에 대한 selector
- 값이나 어설션에 대한 note
- stepMap.json 파일 생성:
- 2단계: stepMap에서 코드로 (WebdriverIO 코드 생성)
stepMap.json을 사용하여 다음을 생성:
- 공유 메서드와 browser.url() 설정이 있는 base page.js 클래스 생성.
- test/pageobjects/ 내부에 기능별 WebdriverIO 호환 페이지 객체 모델(POM) 클래스 생성.
- Mocha 기반 테스트 스펙 생성.
- JavaScript/TypeScript를 위한 디렉토리 구조 예시. 아래는 JS 버전이며, TS 버전도 동일한 구조를 가집니다.
project-root/
├── features/ # Gherkin .feature 파일 (사용자 입력 / 소스 파일)
├── stepMaps/ # 자동 생성된 .stepMap.json 파일
├── test/
│ ├── pageobjects/ # 자동 생성된 WebdriverIO 테스트 페이지 객체 모델 클래스
│ └── specs/ # 자동 생성된 Mocha 테스트 스펙
├── src/
│ ├── cli.js # 메인 CLI 로직
│ ├── generateStepsMap.js # 기능-스텝맵 생성기
│ ├── generateTestsFromMap.js # 스텝맵-페이지/스펙 생성기
│ ├── utils.js # 헬퍼 메서드
│ └── config.js # 경로, 폴백 선택자, 별칭
│ └── __tests__/ # 단위 테스트 (Vitest)
├── testgen.js # CLI 진입점
│── wdio.config.js # WebdriverIO 구성
├── package.json # 스크립트 및 종속성
├── selector-aliases.json # 선택적 사용자 정의 선택자는 기본 선택자를 재정의함
v8 보일러플레이트 프로젝트
amiya-pattnaik/webdriverIO-with-cucumberBDD
- 프레임워크: WDIO-V8과 Cucumber (V8x).
- 특징:
- ES6/ES7 스타일 클래스 기반 접근 방식과 TypeScript 지원을 사용하는 페이지 객체 모델
- 한 번에 여러 선택자로 요소를 쿼리하는 다중 선택자 옵션 예제
- Chrome 및 Firefox를 사용한 다중 브라우저 및 헤드리스 브라우저 실행 예제
- BrowserStack, Sauce Labs, LambdaTest와의 클라우드 테스팅 통합
- 외부 데이터 소스에서 쉬운 테스트 데이터 관리를 위한 MS-Excel에서 데이터 읽기/쓰기 예제
- E2E 테스팅을 위한 예제가 포함된 모든 RDBMS(Oracle, MySql, TeraData, Vertica 등)에 대한 데이터베이스 지원, 쿼리 실행/결과 세트 가져오기 등
- 여러 보고서(Spec, Xunit/Junit, Allure, JSON) 및 웹 서버에서 Allure 및 Xunit/Junit 보고서 호스팅
- https://search.yahoo.com/ 및 http://the-internet.herokuapp.com 데모 앱 예제
- BrowserStack, Sauce Labs, LambdaTest 및 Appium 특정
.config
파일(모바일 장치에서 재생용). iOS 및 Android용 로컬 머신에서 원클릭 Appium 설정은 appium-setup-made-easy-OSX를 참조하세요.
amiya-pattnaik/webdriverIO-with-mochaBDD
- 프레임워크: WDIO-V8과 Mocha (V10x).
- 특징:
- ES6/ES7 스타일 클래스 기반 접근 방식과 TypeScript 지원을 사용하는 페이지 객체 모델
- https://search.yahoo.com 및 http://the-internet.herokuapp.com 데모 앱 예제
- Chrome 및 Firefox를 사용한 다중 브라우저 및 헤드리스 브라우저 실행 예제
- BrowserStack, Sauce Labs, LambdaTest와의 클라우드 테스팅 통합
- 여러 보고서(Spec, Xunit/Junit, Allure, JSON) 및 웹 서버에서 Allure 및 Xunit/Junit 보고서 호스팅
- 외부 데이터 소스에서 쉬운 테스트 데이터 관리를 위한 MS-Excel에서 데이터 읽기/쓰기 예제
- E2E 테스팅을 위한 예제가 포함된 모든 RDBMS(Oracle, MySql, TeraData, Vertica 등)에 대한 DB 연결, 쿼리 실행/결과 세트 가져오기 등
- BrowserStack, Sauce Labs, LambdaTest 및 Appium 특정
.config
파일(모바일 장치에서 재생용). iOS 및 Android용 로컬 머신에서 원클릭 Appium 설정은 appium-setup-made-easy-OSX를 참조하세요.