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

Viết Kiểm Thử

Hỗ Trợ Framework Testrunner

@wdio/visual-service không phụ thuộc vào framework thử nghiệm cụ thể, điều này có nghĩa là bạn có thể sử dụng nó với tất cả các framework mà WebdriverIO hỗ trợ như:

Trong các bài kiểm thử của bạn, bạn có thể lưu ảnh chụp màn hình hoặc so sánh trạng thái hiển thị hiện tại của ứng dụng đang kiểm thử với một hình ảnh cơ sở. Để làm điều đó, dịch vụ này cung cấp custom matcher, cũng như các phương thức kiểm tra:

describe('Mocha Example', () => {
beforeEach(async () => {
await browser.url('https://webdriver.io')
})

it('using visual matchers to assert against baseline', async () => {
// Check screen to exactly match with baseline
await expect(browser).toMatchScreenSnapshot('partialPage')
// check an element to have a mismatch percentage of 5% with the baseline
await expect(browser).toMatchScreenSnapshot('partialPage', 5)
// check an element with options for `saveScreen` command
await expect(browser).toMatchScreenSnapshot('partialPage', {
/* some options */
})

// Check an element to exactly match with baseline
await expect($('#element-id')).toMatchElementSnapshot('firstButtonElement')
// check an element to have a mismatch percentage of 5% with the baseline
await expect($('#element-id')).toMatchElementSnapshot('firstButtonElement', 5)
// check an element with options for `saveElement` command
await expect($('#element-id')).toMatchElementSnapshot('firstButtonElement', {
/* some options */
})

// Check a full page screenshot match with baseline
await expect(browser).toMatchFullPageSnapshot('fullPage')
// Check a full page screenshot to have a mismatch percentage of 5% with the baseline
await expect(browser).toMatchFullPageSnapshot('fullPage', 5)
// Check a full page screenshot with options for `checkFullPageScreen` command
await expect(browser).toMatchFullPageSnapshot('fullPage', {
/* some options */
})

// Check a full page screenshot with all tab executions
await expect(browser).toMatchTabbablePageSnapshot('check-tabbable')
// Check a full page screenshot to have a mismatch percentage of 5% with the baseline
await expect(browser).toMatchTabbablePageSnapshot('check-tabbable', 5)
// Check a full page screenshot with options for `checkTabbablePage` command
await expect(browser).toMatchTabbablePageSnapshot('check-tabbable', {
/* some options */
})
})

it('should save some screenshots', async () => {
// Save a screen
await browser.saveScreen('examplePage', {
/* some options */
})

// Save an element
await browser.saveElement(
await $('#element-id'),
'firstButtonElement',
{
/* some options */
}
)

// Save a full page screenshot
await browser.saveFullPageScreen('fullPage', {
/* some options */
})

// Save a full page screenshot with all tab executions
await browser.saveTabbablePage('save-tabbable', {
/* some options, use the same options as for saveFullPageScreen */
})
})

it('should compare successful with a baseline', async () => {
// Check a screen
await expect(
await browser.checkScreen('examplePage', {
/* some options */
})
).toEqual(0)

// Check an element
await expect(
await browser.checkElement(
await $('#element-id'),
'firstButtonElement',
{
/* some options */
}
)
).toEqual(0)

// Check a full page screenshot
await expect(
await browser.checkFullPageScreen('fullPage', {
/* some options */
})
).toEqual(0)

// Check a full page screenshot with all tab executions
await expect(
await browser.checkTabbablePage('check-tabbable', {
/* some options, use the same options as for checkFullPageScreen */
})
).toEqual(0)
})
})
QUAN TRỌNG

Dịch vụ này cung cấp các phương thức savecheck. Nếu bạn chạy các bài kiểm thử của mình lần đầu tiên, bạn KHÔNG NÊN kết hợp các phương thức savecompare, các phương thức check sẽ tự động tạo hình ảnh cơ sở cho bạn

#####################################################################################
INFO:
Autosaved the image to
/Users/wswebcreation/sample/baselineFolder/desktop_chrome/examplePage-chrome-latest-1366x768.png
#####################################################################################

Khi bạn vô hiệu hóa việc tự động lưu hình ảnh cơ sở, Promise sẽ bị từ chối với cảnh báo sau.

#####################################################################################
Baseline image not found, save the actual image manually to the baseline.
The image can be found here:
/Users/wswebcreation/sample/.tmp/actual/desktop_chrome/examplePage-chrome-latest-1366x768.png
#####################################################################################

Điều này có nghĩa là ảnh chụp màn hình hiện tại được lưu trong thư mục actual và bạn cần sao chép thủ công vào thư mục baseline. Nếu bạn khởi tạo @wdio/visual-service với autoSaveBaseline: true, hình ảnh sẽ tự động được lưu vào thư mục baseline.

Welcome! How can I help?

WebdriverIO AI Copilot