Chuyển đến nội dung chính

Cấu hình

Dựa trên loại thiết lập (ví dụ: sử dụng các liên kết giao thức thô, WebdriverIO như một gói độc lập hoặc bộ chạy kiểm thử WDIO), có một tập hợp các tùy chọn khác nhau để kiểm soát môi trường.

Tùy chọn WebDriver

Các tùy chọn sau được định nghĩa khi sử dụng gói giao thức webdriver:

protocol

Giao thức để sử dụng khi giao tiếp với máy chủ driver.

Loại: String
Mặc định: http

hostname

Máy chủ của driver server của bạn.

Loại: String
Mặc định: 0.0.0.0

port

Cổng máy chủ driver của bạn.

Loại: Number
Mặc định: undefined

path

Đường dẫn đến điểm cuối của máy chủ driver.

Loại: String
Mặc định: /

queryParams

Tham số truy vấn được truyền đến máy chủ driver.

Loại: Object
Mặc định: undefined

user

Tên người dùng dịch vụ đám mây của bạn (chỉ hoạt động cho tài khoản Sauce Labs, Browserstack, TestingBot hoặc TestMu AI). Nếu được đặt, WebdriverIO sẽ tự động thiết lập các tùy chọn kết nối cho bạn. Nếu bạn không sử dụng nhà cung cấp đám mây, điều này có thể được sử dụng để xác thực bất kỳ backend WebDriver nào khác.

Loại: String
Mặc định: undefined

key

Khóa truy cập dịch vụ đám mây hoặc khóa bí mật của bạn (chỉ hoạt động cho tài khoản Sauce Labs, Browserstack, TestingBot hoặc TestMu AI). Nếu được đặt, WebdriverIO sẽ tự động thiết lập các tùy chọn kết nối cho bạn. Nếu bạn không sử dụng nhà cung cấp đám mây, điều này có thể được sử dụng để xác thực bất kỳ backend WebDriver nào khác.

Loại: String
Mặc định: undefined

capabilities

Xác định khả năng bạn muốn chạy trong phiên WebDriver của mình. Xem Giao thức WebDriver để biết thêm chi tiết. Nếu bạn chạy một trình điều khiển cũ không hỗ trợ giao thức WebDriver, bạn cần sử dụng khả năng JSONWireProtocol để chạy phiên thành công.

Ngoài khả năng dựa trên WebDriver, bạn có thể áp dụng các tùy chọn cụ thể cho trình duyệt và nhà cung cấp cho phép cấu hình sâu hơn cho trình duyệt từ xa hoặc thiết bị. Những tùy chọn này được ghi trong tài liệu của nhà cung cấp tương ứng, ví dụ:

Ngoài ra, một tiện ích hữu ích là Bộ cấu hình kiểm thử tự động của Sauce Labs, giúp bạn tạo đối tượng này bằng cách nhấp vào các khả năng mong muốn.

Loại: Object
Mặc định: null

Ví dụ:

{
browserName: 'chrome', // tùy chọn: `chrome`, `edge`, `firefox`, `safari`
browserVersion: '27.0', // phiên bản trình duyệt
platformName: 'Windows 10' // nền tảng hệ điều hành
}

Nếu bạn đang chạy kiểm thử web hoặc native trên thiết bị di động, capabilities sẽ khác với giao thức WebDriver. Xem Tài liệu Appium để biết thêm chi tiết.

logLevel

Mức độ chi tiết của log.

Loại: String
Mặc định: info
Tùy chọn: trace | debug | info | warn | error | silent

outputDir

Thư mục để lưu trữ tất cả các tệp log của trình chạy kiểm thử (bao gồm log của trình báo cáo và log wdio). Nếu không được đặt, tất cả các log được gửi đến stdout. Vì hầu hết các trình báo cáo được thiết kế để ghi vào stdout, nên chỉ nên sử dụng tùy chọn này cho các trình báo cáo cụ thể mà việc đẩy báo cáo vào tệp là hợp lý hơn (như trình báo cáo junit).

Khi chạy ở chế độ độc lập, log duy nhất được tạo bởi WebdriverIO sẽ là log wdio.

Loại: String
Mặc định: null

connectionRetryTimeout

Thời gian chờ cho bất kỳ yêu cầu WebDriver nào đến driver hoặc grid.

Loại: Number
Mặc định: 120000

connectionRetryCount

Số lần thử lại yêu cầu tối đa đến máy chủ Selenium.

Loại: Number
Mặc định: 3

agent

Cho phép bạn sử dụng agent http/https/http2 tùy chỉnh để thực hiện yêu cầu.

Loại: Object
Mặc định:

{
http: new http.Agent({ keepAlive: true }),
https: new https.Agent({ keepAlive: true })
}

headers

Chỉ định headers tùy chỉnh để chuyển vào mọi yêu cầu WebDriver. Nếu Selenium Grid của bạn yêu cầu Xác thực Cơ bản, chúng tôi khuyên bạn nên truyền một header Authorization qua tùy chọn này để xác thực yêu cầu WebDriver của bạn, ví dụ:

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}`
}
// ...
}

Loại: Object
Mặc định: {}

transformRequest

Hàm chặn tùy chọn yêu cầu HTTP trước khi một yêu cầu WebDriver được thực hiện

Loại: (RequestOptions) => RequestOptions
Mặc định: không có

transformResponse

Hàm chặn các đối tượng phản hồi HTTP sau khi phản hồi WebDriver đã đến. Hàm này được truyền đối tượng phản hồi gốc làm đối số đầu tiên và RequestOptions tương ứng làm đối số thứ hai.

Loại: (Response, RequestOptions) => Response
Mặc định: không có

strictSSL

Liệu có yêu cầu chứng chỉ SSL hợp lệ hay không. Nó có thể được đặt thông qua biến môi trường như STRICT_SSL hoặc strict_ssl.

Loại: Boolean
Mặc định: true

enableDirectConnect

Liệu có bật tính năng kết nối trực tiếp của Appium hay không. Nó không làm gì cả nếu phản hồi không có khóa thích hợp trong khi cờ được bật.

Loại: Boolean
Mặc định: true

cacheDir

Đường dẫn đến thư mục gốc của bộ nhớ cache. Thư mục này được sử dụng để lưu trữ tất cả các trình điều khiển được tải xuống khi cố gắng bắt đầu một phiên.

Loại: String
Mặc định: process.env.WEBDRIVER_CACHE_DIR || os.tmpdir()

maskingPatterns

Để ghi nhật ký an toàn hơn, các biểu thức chính quy được đặt bằng maskingPatterns có thể che giấu thông tin nhạy cảm khỏi nhật ký.

  • Định dạng chuỗi là biểu thức chính quy với hoặc không có cờ (ví dụ: /.../i) và được phân tách bằng dấu phẩy cho nhiều biểu thức chính quy.
  • Để biết thêm chi tiết về các mẫu che giấu, hãy xem phần Masking Patterns trong README của WDIO Logger.

Loại: String
Mặc định: undefined

Ví dụ:

{
maskingPatterns: '/--key=([^ ]*)/i,/RESULT (.*)/'
}

WebdriverIO

Các tùy chọn sau (bao gồm cả những tùy chọn được liệt kê ở trên) có thể được sử dụng với WebdriverIO ở chế độ độc lập:

automationProtocol

Xác định giao thức bạn muốn sử dụng cho tự động hóa trình duyệt của mình. Hiện tại chỉ webdriver được hỗ trợ, vì đó là công nghệ tự động hóa trình duyệt chính mà WebdriverIO sử dụng.

Nếu bạn muốn tự động hóa trình duyệt bằng một công nghệ tự động hóa khác, hãy đảm bảo bạn đặt thuộc tính này thành một đường dẫn giải quyết thành một mô-đun tuân thủ giao diện sau:

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>;
}

Loại: String
Mặc định: webdriver

baseUrl

Rút ngắn các lệnh gọi url bằng cách đặt URL cơ sở.

  • Nếu tham số url của bạn bắt đầu bằng /, thì baseUrl được thêm vào trước (ngoại trừ đường dẫn baseUrl, nếu có).
  • Nếu tham số url của bạn bắt đầu mà không có giao thức hoặc / (như some/path), thì toàn bộ baseUrl được thêm trực tiếp vào trước.

Loại: String
Mặc định: null

waitforTimeout

Thời gian chờ mặc định cho tất cả các lệnh waitFor*. (Lưu ý chữ f thường trong tên tùy chọn.) Thời gian chờ này chỉ ảnh hưởng đến các lệnh bắt đầu bằng waitFor* và thời gian chờ mặc định của chúng.

Để tăng thời gian chờ cho một bài kiểm thử, vui lòng xem tài liệu framework.

Loại: Number
Mặc định: 5000

waitforInterval

Khoảng thời gian mặc định cho tất cả các lệnh waitFor* để kiểm tra xem trạng thái mong đợi (ví dụ: khả năng hiển thị) đã thay đổi chưa.

Loại: Number
Mặc định: 100

region

Nếu chạy trên Sauce Labs, bạn có thể chọn chạy kiểm thử giữa các trung tâm dữ liệu khác nhau: Mỹ hoặc EU. Để thay đổi khu vực của bạn sang EU, thêm region: 'eu' vào cấu hình của bạn.

Lưu ý: Điều này chỉ có tác dụng nếu bạn cung cấp tùy chọn userkey được kết nối với tài khoản Sauce Labs của bạn.

Loại: String
Mặc định: us

(chỉ dành cho máy ảo và/hoặc giả lập/máy mô phỏng)


Tùy chọn Testrunner

Các tùy chọn sau (bao gồm cả những tùy chọn được liệt kê ở trên) chỉ được định nghĩa khi chạy WebdriverIO với bộ chạy kiểm thử WDIO:

specs

Xác định các tệp đặc tả cho việc thực thi kiểm thử. Bạn có thể chỉ định một mẫu glob để khớp với nhiều tệp cùng lúc hoặc bọc một glob hoặc tập hợp đường dẫn thành một mảng để chạy chúng trong một quy trình worker duy nhất. Tất cả các đường dẫn được xem là tương đối từ đường dẫn tệp cấu hình.

Loại: (String | String[])[]
Mặc định: []

exclude

Loại trừ các tệp đặc tả khỏi việc thực thi kiểm thử. Tất cả các đường dẫn được xem là tương đối từ đường dẫn tệp cấu hình.

Loại: String[]
Mặc định: []

suites

Một đối tượng mô tả các bộ kiểm thử khác nhau, mà bạn có thể chỉ định với tùy chọn --suite trên CLI wdio.

Loại: Object
Mặc định: {}

capabilities

Giống như phần capabilities được mô tả ở trên, ngoại trừ tùy chọn chỉ định một đối tượng multiremote, hoặc nhiều phiên WebDriver trong một mảng để thực thi song song.

Bạn có thể áp dụng cùng khả năng cụ thể của nhà cung cấp và trình duyệt được định nghĩa ở trên.

Loại: Object|Object[]
Mặc định: [{ 'wdio:maxInstances': 5, browserName: 'firefox' }]

maxInstances

Số lượng tối đa của tổng worker chạy song song.

Lưu ý: đó có thể là một con số cao tới 100, khi các bài kiểm thử được thực hiện trên một số nhà cung cấp bên ngoài như máy Sauce Labs. Ở đó, các bài kiểm thử không được kiểm tra trên một máy duy nhất, mà là trên nhiều máy ảo. Nếu các bài kiểm thử sẽ được chạy trên máy phát triển cục bộ, hãy sử dụng một số hợp lý hơn, như 3, 4, hoặc 5. Về cơ bản, đây là số lượng trình duyệt sẽ được khởi động đồng thời và chạy các bài kiểm thử của bạn cùng một lúc, vì vậy nó phụ thuộc vào lượng RAM trên máy của bạn và có bao nhiêu ứng dụng khác đang chạy trên máy của bạn.

Bạn cũng có thể áp dụng maxInstances trong các đối tượng khả năng của mình bằng cách sử dụng khả năng wdio:maxInstances. Điều này sẽ giới hạn số lượng phiên song song cho khả năng cụ thể đó.

Loại: Number
Mặc định: 100

maxInstancesPerCapability

Số lượng tối đa của tổng worker chạy song song cho mỗi khả năng.

Loại: Number
Mặc định: 100

injectGlobals

Chèn các biến toàn cục của WebdriverIO (ví dụ: browser, $$$) vào môi trường toàn cục. Nếu bạn đặt thành false, bạn nên import từ @wdio/globals, ví dụ:

import { browser, $, $$, expect } from '@wdio/globals'

Lưu ý: WebdriverIO không xử lý việc chèn các biến toàn cục cụ thể của framework kiểm thử.

Loại: Boolean
Mặc định: true

bail

Nếu bạn muốn việc chạy kiểm thử của mình dừng lại sau một số lượng cụ thể của các lỗi kiểm thử, hãy sử dụng bail. (Mặc định là 0, nghĩa là chạy tất cả các bài kiểm thử bất kể kết quả.) Lưu ý: Một bài kiểm thử trong ngữ cảnh này là tất cả các bài kiểm thử trong một tệp đặc tả duy nhất (khi sử dụng Mocha hoặc Jasmine) hoặc tất cả các bước trong một tệp tính năng (khi sử dụng Cucumber). Nếu bạn muốn kiểm soát hành vi bail trong các bài kiểm thử của một tệp kiểm thử duy nhất, hãy xem các tùy chọn framework có sẵn.

Loại: Number
Mặc định: 0 (không bail; chạy tất cả các bài kiểm thử)

specFileRetries

Số lần thử lại toàn bộ tệp đặc tả khi nó thất bại hoàn toàn.

Loại: Number
Mặc định: 0

specFileRetriesDelay

Độ trễ tính bằng giây giữa các lần thử lại tệp đặc tả

Loại: Number
Mặc định: 0

specFileRetriesDeferred

Liệu các tệp đặc tả được thử lại có nên được thử lại ngay lập tức hay hoãn lại đến cuối hàng đợi.

Loại: Boolean
Mặc định: true

groupLogsByTestSpec

Chọn chế độ xem đầu ra log.

Nếu đặt thành false, log từ các tệp kiểm thử khác nhau sẽ được in theo thời gian thực. Lưu ý rằng điều này có thể dẫn đến việc trộn lẫn đầu ra log từ các tệp khác nhau khi chạy song song.

Nếu đặt thành true, đầu ra log sẽ được nhóm theo Đặc tả Kiểm thử và chỉ được in khi Đặc tả Kiểm thử hoàn thành.

Mặc định, nó được đặt thành false để log được in theo thời gian thực.

Loại: Boolean
Mặc định: false

autoAssertOnTestEnd

Kiểm soát liệu WebdriverIO có tự động xác nhận tất cả các xác nhận mềm vào cuối mỗi bài kiểm thử hay không. Khi được đặt thành true, bất kỳ xác nhận mềm nào được tích lũy sẽ được tự động kiểm tra và làm cho bài kiểm thử thất bại nếu bất kỳ xác nhận nào thất bại. Khi được đặt thành false, bạn phải gọi phương thức assert theo cách thủ công để kiểm tra các xác nhận mềm.

Loại: Boolean
Mặc định: true

services

Dịch vụ đảm nhận một công việc cụ thể mà bạn không muốn quan tâm đến. Chúng nâng cao thiết lập kiểm thử của bạn với gần như không có nỗ lực nào.

Loại: String[]|Object[]
Mặc định: []

framework

Xác định framework kiểm thử sẽ được sử dụng bởi WDIO testrunner.

Loại: String
Mặc định: mocha
Tùy chọn: mocha | jasmine

mochaOpts, jasmineOpts và cucumberOpts

Các tùy chọn cụ thể liên quan đến framework. Xem tài liệu bộ điều hợp framework để biết những tùy chọn nào có sẵn. Đọc thêm về điều này trong Frameworks.

Loại: Object
Mặc định: { timeout: 10000 }

cucumberFeaturesWithLineNumbers

Danh sách các tính năng của cucumber với số dòng (khi sử dụng framework cucumber).

Loại: String[] Mặc định: []

reporters

Danh sách các trình báo cáo để sử dụng. Một trình báo cáo có thể là một chuỗi hoặc một mảng của ['reporterName', { /* reporter options */}] trong đó phần tử đầu tiên là một chuỗi với tên trình báo cáo và phần tử thứ hai là một đối tượng với các tùy chọn trình báo cáo.

Loại: String[]|Object[]
Mặc định: []

Ví dụ:

reporters: [
'dot',
'spec'
['junit', {
outputDir: `${__dirname}/reports`,
otherOption: 'foobar'
}]
]

reporterSyncInterval

Xác định khoảng thời gian mà trình báo cáo nên kiểm tra xem họ có đồng bộ hay không nếu họ báo cáo log của họ không đồng bộ (ví dụ: nếu log được truyền đến một nhà cung cấp bên thứ 3).

Loại: Number
Mặc định: 100 (ms)

reporterSyncTimeout

Xác định thời gian tối đa mà trình báo cáo có để hoàn thành việc tải lên tất cả log của họ cho đến khi một lỗi được ném ra bởi testrunner.

Loại: Number
Mặc định: 5000 (ms)

execArgv

Các đối số của Node để chỉ định khi khởi chạy các quy trình con.

Loại: String[]
Mặc định: null

filesToWatch

Danh sách các mẫu chuỗi hỗ trợ glob cho biết testrunner theo dõi các tệp khác, ví dụ: tệp ứng dụng, khi chạy nó với cờ --watch. Mặc định, testrunner đã theo dõi tất cả các tệp đặc tả.

Loại: String[]
Mặc định: []

updateSnapshots

Đặt thành true nếu bạn muốn cập nhật snapshots của mình. Lý tưởng nhất là được sử dụng như một phần của tham số CLI, ví dụ: wdio run wdio.conf.js --s.

Loại: 'new' | 'all' | 'none'
Mặc định: none nếu không cung cấp và kiểm thử chạy trong CI, new nếu không cung cấp, nếu không thì là những gì đã được cung cấp

resolveSnapshotPath

Ghi đè đường dẫn snapshot mặc định. Ví dụ, để lưu trữ snapshots bên cạnh các tệp kiểm thử.

wdio.conf.ts
export const config: WebdriverIO.Config = {
resolveSnapshotPath: (testPath, snapExtension) => testPath + snapExtension,
}

Loại: (testPath: string, snapExtension: string) => string
Mặc định: lưu trữ tệp snapshot trong thư mục __snapshots__ bên cạnh tệp kiểm thử

tsConfigPath

WDIO sử dụng tsx để biên dịch các tệp TypeScript. TSConfig của bạn được tự động phát hiện từ thư mục làm việc hiện tại nhưng bạn có thể chỉ định một đường dẫn tùy chỉnh ở đây hoặc bằng cách thiết lập biến môi trường TSX_TSCONFIG_PATH.

Xem tài liệu tsx: https://tsx.is/dev-api/node-cli#custom-tsconfig-json-path

Loại: String
Mặc định: null

Hooks

WDIO testrunner cho phép bạn đặt hooks để được kích hoạt tại các thời điểm cụ thể trong vòng đời kiểm thử. Điều này cho phép các hành động tùy chỉnh (ví dụ: chụp ảnh màn hình nếu bài kiểm thử thất bại).

Mỗi hook có thông tin cụ thể về vòng đời làm tham số (ví dụ: thông tin về bộ kiểm thử hoặc bài kiểm thử). Đọc thêm về tất cả các thuộc tính hook trong cấu hình ví dụ của chúng tôi.

Lưu ý: Một số hook (onPrepare, onWorkerStart, onWorkerEndonComplete) được thực thi trong một quy trình khác và do đó không thể chia sẻ bất kỳ dữ liệu toàn cục nào với các hook khác sống trong quy trình worker.

onPrepare

Được thực thi một lần trước khi tất cả worker được khởi chạy.

Tham số:

  • config (object): đối tượng cấu hình WebdriverIO
  • param (object[]): danh sách chi tiết khả năng

onWorkerStart

Được thực thi trước khi một quy trình worker được sinh ra và có thể được sử dụng để khởi tạo dịch vụ cụ thể cho worker đó cũng như sửa đổi môi trường thực thi theo cách không đồng bộ.

Tham số:

  • cid (string): id khả năng (ví dụ 0-0)
  • caps (object): chứa khả năng cho phiên sẽ được sinh ra trong worker
  • specs (string[]): đặc tả sẽ được chạy trong quy trình worker
  • args (object): đối tượng sẽ được hợp nhất với cấu hình chính khi worker được khởi tạo
  • execArgv (string[]): danh sách các đối số chuỗi được truyền cho quy trình worker

onWorkerEnd

Được thực thi ngay sau khi quy trình worker đã thoát.

Tham số:

  • cid (string): id khả năng (ví dụ 0-0)
  • exitCode (number): 0 - thành công, 1 - thất bại
  • specs (string[]): đặc tả sẽ được chạy trong quy trình worker
  • retries (number): số lần thử lại cấp đặc tả được sử dụng như được định nghĩa trong "Thêm thử lại trên cơ sở từng tệp đặc tả"

beforeSession

Được thực thi ngay trước khi khởi tạo phiên webdriver và framework kiểm thử. Nó cho phép bạn thao tác với cấu hình tùy thuộc vào khả năng hoặc đặc tả.

Tham số:

  • config (object): đối tượng cấu hình WebdriverIO
  • caps (object): chứa khả năng cho phiên sẽ được sinh ra trong worker
  • specs (string[]): đặc tả sẽ được chạy trong quy trình worker

before

Được thực thi trước khi việc thực thi kiểm thử bắt đầu. Tại thời điểm này, bạn có thể truy cập vào tất cả các biến toàn cục như browser. Đây là nơi hoàn hảo để định nghĩa các lệnh tùy chỉnh.

Tham số:

  • caps (object): chứa khả năng cho phiên sẽ được sinh ra trong worker
  • specs (string[]): đặc tả sẽ được chạy trong quy trình worker
  • browser (object): phiên trình duyệt/thiết bị được tạo ra

beforeSuite

Hook được thực thi trước khi bộ kiểm thử bắt đầu (chỉ trong Mocha/Jasmine)

Tham số:

  • suite (object): chi tiết bộ kiểm thử

beforeHook

Hook được thực thi trước một hook trong bộ kiểm thử bắt đầu (ví dụ: chạy trước khi gọi beforeEach trong Mocha)

Tham số:

  • test (object): chi tiết bài kiểm thử
  • context (object): ngữ cảnh kiểm thử (đại diện cho đối tượng World trong Cucumber)

afterHook

Hook được thực thi sau khi một hook trong bộ kiểm thử kết thúc (ví dụ: chạy sau khi gọi afterEach trong Mocha)

Tham số:

  • test (object): chi tiết bài kiểm thử
  • context (object): ngữ cảnh kiểm thử (đại diện cho đối tượng World trong Cucumber)
  • result (object): kết quả hook (chứa các thuộc tính error, result, duration, passed, retries)

beforeTest

Hàm được thực thi trước một bài kiểm thử (chỉ trong Mocha/Jasmine).

Tham số:

  • test (object): chi tiết bài kiểm thử
  • context (object): đối tượng phạm vi mà bài kiểm thử được thực thi với

beforeCommand

Chạy trước khi một lệnh WebdriverIO được thực thi.

Tham số:

  • commandName (string): tên lệnh
  • args (*): đối số mà lệnh sẽ nhận

afterCommand

Chạy sau khi một lệnh WebdriverIO được thực thi.

Tham số:

  • commandName (string): tên lệnh
  • args (*): đối số mà lệnh sẽ nhận
  • result (*): kết quả của lệnh
  • error (Error): đối tượng lỗi nếu có

afterTest

Hàm được thực thi sau khi một bài kiểm thử (trong Mocha/Jasmine) kết thúc.

Tham số:

  • test (object): chi tiết bài kiểm thử
  • context (object): đối tượng phạm vi mà bài kiểm thử được thực thi với
  • result.error (Error): đối tượng lỗi trong trường hợp bài kiểm thử thất bại, nếu không là undefined
  • result.result (Any): đối tượng trả về của hàm kiểm thử
  • result.duration (Number): thời gian của bài kiểm thử
  • result.passed (Boolean): true nếu bài kiểm thử đã vượt qua, nếu không là false
  • result.retries (Object): thông tin về các lần thử lại bài kiểm thử đơn lẻ như được định nghĩa cho Mocha và Jasmine cũng như Cucumber, ví dụ: { attempts: 0, limit: 0 }, xem
  • result (object): kết quả hook (chứa các thuộc tính error, result, duration, passed, retries)

afterSuite

Hook được thực thi sau khi bộ kiểm thử đã kết thúc (chỉ trong Mocha/Jasmine)

Tham số:

  • suite (object): chi tiết bộ kiểm thử

after

Được thực thi sau khi tất cả các bài kiểm thử hoàn tất. Bạn vẫn có quyền truy cập vào tất cả các biến toàn cục từ bài kiểm thử.

Tham số:

  • result (number): 0 - kiểm thử đạt, 1 - kiểm thử thất bại
  • caps (object): chứa khả năng cho phiên sẽ được sinh ra trong worker
  • specs (string[]): đặc tả sẽ được chạy trong quy trình worker

afterSession

Được thực thi ngay sau khi kết thúc phiên webdriver.

Tham số:

  • config (object): đối tượng cấu hình WebdriverIO
  • caps (object): chứa khả năng cho phiên sẽ được sinh ra trong worker
  • specs (string[]): đặc tả sẽ được chạy trong quy trình worker

onComplete

Được thực thi sau khi tất cả worker bị tắt và quá trình sắp thoát. Một lỗi được ném trong hook onComplete sẽ dẫn đến việc chạy kiểm thử thất bại.

Tham số:

  • exitCode (number): 0 - thành công, 1 - thất bại
  • config (object): đối tượng cấu hình WebdriverIO
  • caps (object): chứa khả năng cho phiên sẽ được sinh ra trong worker
  • result (object): đối tượng kết quả chứa kết quả kiểm thử

onReload

Được thực thi khi có sự làm mới.

Tham số:

  • oldSessionId (string): ID phiên của phiên cũ
  • newSessionId (string): ID phiên của phiên mới

beforeFeature

Chạy trước một Tính năng Cucumber.

Tham số:

  • uri (string): đường dẫn đến tệp tính năng
  • feature (GherkinDocument.IFeature): đối tượng tính năng Cucumber

afterFeature

Chạy sau một Tính năng Cucumber.

Tham số:

  • uri (string): đường dẫn đến tệp tính năng
  • feature (GherkinDocument.IFeature): đối tượng tính năng Cucumber

beforeScenario

Chạy trước một Kịch bản Cucumber.

Tham số:

  • world (ITestCaseHookParameter): đối tượng world chứa thông tin về pickle và bước kiểm thử
  • context (object): đối tượng Cucumber World

afterScenario

Chạy sau một Kịch bản Cucumber.

Tham số:

  • world (ITestCaseHookParameter): đối tượng world chứa thông tin về pickle và bước kiểm thử
  • result (object): đối tượng kết quả chứa kết quả kịch bản
  • result.passed (boolean): true nếu kịch bản đã vượt qua
  • result.error (string): stack lỗi nếu kịch bản thất bại
  • result.duration (number): thời gian của kịch bản tính bằng mili giây
  • context (object): đối tượng Cucumber World

beforeStep

Chạy trước một Bước Cucumber.

Tham số:

  • step (Pickle.IPickleStep): đối tượng bước Cucumber
  • scenario (IPickle): đối tượng kịch bản Cucumber
  • context (object): đối tượng Cucumber World

afterStep

Chạy sau một Bước Cucumber.

Tham số:

  • step (Pickle.IPickleStep): đối tượng bước Cucumber
  • scenario (IPickle): đối tượng kịch bản Cucumber
  • result: (object): đối tượng kết quả chứa kết quả bước
  • result.passed (boolean): true nếu kịch bản đã vượt qua
  • result.error (string): stack lỗi nếu kịch bản thất bại
  • result.duration (number): thời gian của kịch bản tính bằng mili giây
  • context (object): đối tượng Cucumber World

beforeAssertion

Hook được thực thi trước khi xảy ra xác nhận WebdriverIO.

Tham số:

  • params: thông tin xác nhận
  • params.matcherName (string): tên của matcher (ví dụ: toHaveTitle)
  • params.expectedValue: giá trị được truyền vào matcher
  • params.options: tùy chọn xác nhận

afterAssertion

Hook được thực thi sau khi xảy ra xác nhận WebdriverIO.

Tham số:

  • params: thông tin xác nhận
  • params.matcherName (string): tên của matcher (ví dụ: toHaveTitle)
  • params.expectedValue: giá trị được truyền vào matcher
  • params.options: tùy chọn xác nhận
  • params.result: kết quả xác nhận

Welcome! How can I help?

WebdriverIO AI Copilot