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