구성
설정 유형(예: raw 프로토콜 바인딩, 독립 실행형 패키지로서의 WebdriverIO 또는 WDIO 테스트러너 사용)에 따라 환경을 제어하기 위한 다양한 옵션 세트가 제공됩니다.
WebDriver 옵션
webdriver 프로토콜 패키지를 사용할 때 다음 옵션이 정의됩니다:
protocol
드라이버 서버와 통신할 때 사용하는 프로토콜입니다.
Type: String
Default: http
hostname
드라이버 서버의 호스트입니다.
Type: String
Default: 0.0.0.0
port
드라이버 서버가 실행 중인 포트입니다.
Type: Number
Default: undefined
path
드라이버 서버 엔드포인트의 경로입니다.
Type: String
Default: /
queryParams
드라이버 서버에 전달되는 쿼리 파라미터입니다.
Type: Object
Default: undefined
user
클라우드 서비스 사용자 이름입니다 (Sauce Labs, Browserstack, TestingBot 또는 LambdaTest 계정에서만 작동합니다). 설정하면 WebdriverIO가 자동으로 연결 옵션을 설정합니다. 클라우드 제공업체를 사용하지 않는 경우에도 다른 WebDriver 백엔드를 인증하는 데 사용할 수 있습니다.
Type: String
Default: undefined
key
클라우드 서비스 액세스 키 또는 시크릿 키입니다 (Sauce Labs, Browserstack, TestingBot 또는 LambdaTest 계정에서만 작동합니다). 설정하면 WebdriverIO가 자동으로 연결 옵션을 설정합니다. 클라우드 제공업체를 사용하지 않는 경우에도 다른 WebDriver 백엔드를 인증하는 데 사용할 수 있습니다.
Type: String
Default: undefined
capabilities
WebDriver 세션에서 실행하려는 기능을 정의합니다. 자세한 내용은 WebDriver 프로토콜을 확인하세요. WebDriver 프로토콜을 지원하지 않는 이전 드라이버를 실행하는 경우, 세션을 성공적으로 실행하기 위해 JSONWireProtocol capabilities를 사용해야 합니다.
WebDriver 기반 기능 외에도 원격 브라우저나 장치에 대한 더 깊은 구성을 허용하는 브라우저 및 벤더별 옵션을 적용할 수 있습니다. 이러한 옵션은 해당 벤더 문서에 설명되어 있습니다. 예:
goog:chromeOptions: Google Chrome용moz:firefoxOptions: Mozilla Firefox용ms:edgeOptions: Microsoft Edge용sauce:options: Sauce Labs용bstack:options: BrowserStack용selenoid:options: Selenoid용
또한 Sauce Labs의 자동화 테스트 구성기는 원하는 기능을 클릭하여 이 객체를 만드는 데 도움이 되는 유용한 도구입니다.
Type: Object
Default: null
예시:
{
browserName: 'chrome', // options: `chrome`, `edge`, `firefox`, `safari`
browserVersion: '27.0', // browser version
platformName: 'Windows 10' // OS platform
}
모바일 장치에서 웹 또는 네이티브 테스트를 실행하는 경우, capabilities는 WebDriver 프로토콜과 다릅니다. 자세한 내용은 Appium 문서를 참조하세요.
logLevel
로깅 상세 수준입니다.
Type: String
Default: info
Options: trace | debug | info | warn | error | silent
outputDir
모든 테스트러너 로그 파일(리포터 로그 및 wdio 로그 포함)을 저장할 디렉터리입니다. 설정하지 않으면 모든 로그가 stdout으로 스트리밍됩니다. 대부분의 리포터는 stdout에 로깅하도록 만들어졌기 때문에, 이 옵션은 보고서를 파일로 푸시하는 것이 더 합리적인 특정 리 포터(예: junit 리포터)에만 사용하는 것이 좋습니다.
독립 실행형 모드에서 실행할 때, WebdriverIO에서 생성되는 유일한 로그는 wdio 로그입니다.
Type: String
Default: null
connectionRetryTimeout
드라이버나 그리드에 대한 WebDriver 요청 타임아웃입니다.
Type: Number
Default: 120000
connectionRetryCount
Selenium 서버에 대한 요청 재시도 최대 횟수입니다.
Type: Number
Default: 3
agent
요청을 보낼 때 사용자 지정 http/https/http2 agent를 사용할 수 있습니다.
Type: Object
Default:
{
http: new http.Agent({ keepAlive: true }),
https: new https.Agent({ keepAlive: true })
}
headers
모든 WebDriver 요청에 전달할 사용자 지정 headers를 지정합니다. Selenium Grid에 기본 인증이 필요한 경우, 이 옵션을 통해 Authorization 헤더를 전달하여 WebDriver 요청을 인증하는 것이 좋습니다. 예:
import { Buffer } from 'buffer';
// Read the username and password from environment variables
const username = process.env.SELENIUM_GRID_USERNAME;
const password = process.env.SELENIUM_GRID_PASSWORD;
// Combine the username and password with a colon separator
const credentials = `${username}:${password}`;
// Encode the credentials using Base64
const encodedCredentials = Buffer.from(credentials).toString('base64');
export const config: WebdriverIO.Config = {
// ...
headers: {
Authorization: `Basic ${encodedCredentials}`
}
// ...
}
Type: Object
Default: {}
transformRequest
WebDriver 요청을 하기 전에 HTTP 요청 옵션을 가로채는 함수입니다.
Type: (RequestOptions) => RequestOptions
Default: 없음
transformResponse
WebDriver 응답이 도착한 후 HTTP 응답 객체를 가로채는 함수입니다. 이 함수는 첫 번째 인수로 원본 응답 객체를, 두 번째 인수로 해당하는 RequestOptions를 전달받습니다.
Type: (Response, RequestOptions) => Response
Default: 없음
strictSSL
SSL 인증서가 유효할 필요가 없는지 여부를 나타냅니다.
STRICT_SSL 또는 strict_ssl 환경 변수를 통해 설정할 수 있습니다.
Type: Boolean
Default: true
enableDirectConnect
Appium 직접 연결 기능을 활성화할지 여부입니다. 플래그가 활성화된 상태에서 응답에 적절한 키가 없으면 아무 작업도 수행하지 않습니다.
Type: Boolean
Default: true
cacheDir
캐시 디렉터리 루트의 경로입니다. 이 디렉터리는 세션을 시작할 때 다운로드하는 모든 드라이버를 저장하는 데 사용됩니다.
Type: String
Default: process.env.WEBDRIVER_CACHE_DIR || os.tmpdir()
maskingPatterns
더 안전한 로깅을 위해 maskingPatterns으로 설정된 정규 표현식은 로그에서 민감한 정보를 가릴 수 있습니다.
- 문자열 형식은 플래그가 있거나 없는 정규 표현식(예:
/.../i)이며, 여러 정규 표현식은 쉼표로 구분됩니다. - 마스킹 패턴에 대한 자세한 내용은 WDIO Logger README의 Masking Patterns 섹션을 참조하세요.
Type: String
Default: undefined
예시:
{
maskingPatterns: '/--key=([^ ]*)/i,/RESULT (.*)/'
}
WebdriverIO
다음 옵션(위에 나열된 옵션 포함)은 독립 실행형으로 WebdriverIO와 함께 사용할 수 있습니다:
automationProtocol
브라우저 자동화에 사용할 프로토콜을 정의합니다. 현재는 WebdriverIO가 사용하는 주요 브라우저 자동화 기술인 webdriver만 지원됩니다.
다른 자동화 기술을 사용하여 브라우저를 자동화하려면 다음 인터페이스를 준수하는 모듈로 해결되는 경로로 이 속성을 설정하세요:
import type { Capabilities } from '@wdio/types';
import type { Client, AttachOptions } from 'webdriver';
export default class YourAutomationLibrary {
/**
* Start a automation session and return a WebdriverIO [monad](https://github.com/webdriverio/webdriverio/blob/940cd30939864bdbdacb2e94ee6e8ada9b1cc74c/packages/wdio-utils/src/monad.ts)
* with respective automation commands. See the [webdriver](https://www.npmjs.com/package/webdriver) package
* as a reference implementation
*
* @param {Capabilities.RemoteConfig} options WebdriverIO options
* @param {Function} hook that allows to modify the client before it gets released from the function
* @param {PropertyDescriptorMap} userPrototype allows user to add custom protocol commands
* @param {Function} customCommandWrapper allows to modify the command execution
* @returns a WebdriverIO compatible client instance
*/
static newSession(
options: Capabilities.RemoteConfig,
modifier?: (...args: any[]) => any,
userPrototype?: PropertyDescriptorMap,
customCommandWrapper?: (...args: any[]) => any
): Promise<Client>;
/**
* allows user to attach to existing sessions
* @optional
*/
static attachToSession(
options?: AttachOptions,
modifier?: (...args: any[]) => any, userPrototype?: {},
commandWrapper?: (...args: any[]) => any
): Client;
/**
* Changes The instance session id and browser capabilities for the new session
* directly into the passed in browser object
*
* @optional
* @param {object} instance the object we get from a new browser session.
* @returns {string} the new session id of the browser
*/
static reloadSession(
instance: Client,
newCapabilities?: WebdriverIO.Capabilitie
): Promise<string>;
}
Type: String
Default: webdriver
baseUrl
기본 URL을 설정하여 url 명령 호출을 단축합니다.
url매개변수가/로 시작하면,baseUrl이 앞에 추가됩니다(baseUrl에 경로가 있는 경우 해당 경로는 제외).url매개변수가 스키마나/없이 시작하면(예:some/path), 전체baseUrl이 직접 앞에 추가됩니다.
Type: String
Default: null
waitforTimeout
모든 waitFor* 명령에 대한 기본 타임아웃입니다 (옵션 이름에 소문자 f가 있음에 유의). 이 타임아웃은 waitFor*로 시작하는 명령과 기본 대기 시간에만 영향을 줍니다.
_테스트_의 타임아웃을 늘리려면 프레임워크 문서를 참조하세요.
Type: Number
Default: 5000
waitforInterval
모든 waitFor* 명령에 대한 기본 간격으로, 예상 상태(예: 가시성)가 변경되었는지 확인합니다.
Type: Number
Default: 100
region
Sauce Labs에서 실행하는 경우 US 또는 EU의 다른 데이터 센터 간에 테스트를 실행하도록 선택할 수 있습니다.
지역을 EU로 변경하려면 region: 'eu'를 구성에 추가하세요.
참고: 이는 Sauce Labs 계정에 연결된 user 및 key 옵션을 제공하는 경우에만 효과가 있습니다.
Type: String
Default: us
(vm 및 em/시뮬레이터에만 해당)
테스트러너 옵션
다음 옵션(위에 나열된 옵션 포함)은 WDIO 테스트러너로 WebdriverIO를 실행할 때만 정의됩니다:
specs
테스트 실행을 위한 스펙을 정의합니다. 한 번에 여러 파일과 일치하는 글로브 패턴을 지정하거나, 단일 작업자 프로세스 내에서 실행하기 위해 글로브 또는 경로 세트를 배열로 감쌀 수 있습니다. 모든 경로는 구성 파일 경로에서 상대 경로로 간주됩니다.
Type: (String | String[])[]
Default: []
exclude
테스트 실행에서 스펙을 제외합니다. 모든 경로는 구성 파일 경로에서 상대 경로로 간주됩니다.
Type: String[]
Default: []
suites
wdio CLI에서 --suite 옵션으로 지정할 수 있는 다양한 스위트를 설명하는 객체입니다.
Type: Object
Default: {}
capabilities
위에서 설명한 capabilities 섹션과 동일하지만, multiremote 객체나 병렬 실행을 위한 다중 WebDriver 세션을 배열로 지정할 수 있는 옵션이 있습니다.
위에서 정의된 것과 동일한 벤더 및 브라우저별 기능을 적용할 수 있습니다.
Type: Object|Object[]
Default: [{ 'wdio:maxInstances': 5, browserName: 'firefox' }]
maxInstances
최대 병렬 실행 작업자 수입니다.
참고: Sauce Labs와 같은 외부 공급업체의 기기에서 테스트가 수행되는 경우 100까지 높은 숫자일 수 있습니다. 이 경우 테스트는 단일 기기가 아닌 여러 VM에서 테스트됩니다. 로컬 개발 머신에서 테스트를 실행하는 경우 3, 4 또는 5와 같은 더 합리적인 숫자를 사용하세요. 본질적으로 이는 동시에 시작되어 테스트를 실행하는 브라우저의 수이므로, 머신의 RAM 용량과 실행 중인 다른 앱에 따라 달라집니다.
wdio:maxInstances 기능을 사용하여 기능 객체 내에 maxInstances를 적용할 수도 있습니다. 이는 해당 특정 기능에 대한 병렬 세션 수를 제한합니다.
Type: Number
Default: 100
maxInstancesPerCapability
기능당 최대 병렬 실행 작업자 수입니다.
Type: Number
Default: 100
injectGlobals
WebdriverIO의 전역 변수(예: browser, $ 및 $$)를 전역 환경에 주입합니다.
false로 설정하면 @wdio/globals에서 가져와야 합니다. 예:
import { browser, $, $$, expect } from '@wdio/globals'
참고: WebdriverIO는 테스트 프레임워크별 전역 변수 주입을 처리하지 않습니다.
Type: Boolean
Default: true
bail
특정 수의 테스트 실패 후에 테스트 실행을 중지하려면 bail을 사용하세요.
(기본값은 0으로, 모든 테스트를 실행합니다.) 참고: 이 컨텍스트에서 테스트는 단일 스펙 파일 내의 모든 테스트(Mocha 또는 Jasmine 사용 시) 또는 기능 파일 내의 모든 단계(Cucumber 사용 시)입니다. 단일 테스트 파일 내의 테스트 사이에서 중단 동작을 제어하려면 사용 가능한 프레임워크 옵션을 살펴보세요.
Type: Number
Default: 0 (중단하지 않고 모든 테스트 실행)
specFileRetries
전체적으로 실패할 때 전체 스펙 파일을 재시도하는 횟수입니다.
Type: Number
Default: 0
specFileRetriesDelay
스펙 파일 재시도 시도 사이의 지연 시간(초)입니다.
Type: Number
Default: 0
specFileRetriesDeferred
재시도된 스펙 파일을 즉시 재시도할지 또는 대기열의 끝으로 연기할지 여부입니다.
Type: Boolean
Default: true
groupLogsByTestSpec
로그 출력 보기를 선택합니다.
false로 설정하면 다른 테스트 파일의 로그가 실시간으로 출력됩니다. 병렬로 실행할 때 다른 파일의 로그 출력이 섞일 수 있다는 점에 유의하세요.
true로 설정하면 로그 출력이 테스트 스펙별로 그룹화되며 테스트 스펙이 완료된 후에만 출력됩니다.
기본적으로 false로 설정되어 로그가 실시간으로 출력됩니다.
Type: Boolean
Default: false