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ụ:
goog:chromeOptions: cho Google Chromemoz:firefoxOptions: cho Mozilla Firefoxms:edgeOptions: cho Microsoft Edgesauce:options: cho Sauce Labsbstack:options: cho BrowserStackselenoid:options: cho Selenoid
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ố
urlcủa bạn bắt đầu bằng/, thìbaseUrlđược thêm vào trước (ngoại trừ đường dẫnbaseUrl, nếu có). - Nếu tham số
urlcủ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 user và key đượ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à $$) 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ử.
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, onWorkerEnd và onComplete) đượ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 WebdriverIOparam(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 workerspecs(string[]): đặc tả sẽ được chạy trong quy trình workerargs(object): đối tượng sẽ được hợp nhất với cấu hình chính khi worker được khởi tạoexecArgv(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ạispecs(string[]): đặc tả sẽ được chạy trong quy trình workerretries(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 WebdriverIOcaps(object): chứa khả năng cho phiên sẽ được sinh ra trong workerspecs(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 workerspecs(string[]): đặc tả sẽ được chạy trong quy trình workerbrowser(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ínherror,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ệnhargs(*): đố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ệnhargs(*): đối số mà lệnh sẽ nhậnresult(*): kết quả của lệnherror(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ớiresult.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àundefinedresult.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à falseresult.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 }, xemresult(object): kết quả hook (chứa các thuộc tínherror,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ạicaps(object): chứa khả năng cho phiên sẽ được sinh ra trong workerspecs(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 WebdriverIOcaps(object): chứa khả năng cho phiên sẽ được sinh ra trong workerspecs(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ạiconfig(object): đối tượng cấu hình WebdriverIOcaps(object): chứa khả năng cho phiên sẽ được sinh ra trong workerresult(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ăngfeature(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ăngfeature(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ảnresult.passed(boolean): true nếu kịch bản đã vượt quaresult.error(string): stack lỗi nếu kịch bản thất bạiresult.duration(number): thời gian của kịch bản tính bằng mili giâycontext(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 Cucumberscenario(IPickle): đối tượng kịch bản Cucumbercontext(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 Cucumberscenario(IPickle): đối tượng kịch bản Cucumberresult: (object): đối tượng kết quả chứa kết quả bướcresult.passed(boolean): true nếu kịch bản đã vượt quaresult.error(string): stack lỗi nếu kịch bản thất bạiresult.duration(number): thời gian của kịch bản tính bằng mili giâycontext(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ậnparams.matcherName(string): tên của matcher (ví dụ:toHaveTitle)params.expectedValue: giá trị được truyền vào matcherparams.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ậnparams.matcherName(string): tên của matcher (ví dụ:toHaveTitle)params.expectedValue: giá trị được truyền vào matcherparams.options: tùy chọn xác nhậnparams.result: kết quả xác nhận