All Projects → percy → percy-webdriverio

percy / percy-webdriverio

Licence: MIT license
Visual testing with WebdriverIO and Percy

Programming Languages

javascript
184084 projects - #8 most used programming language
typescript
32286 projects

Projects that are alternatives of or similar to percy-webdriverio

percy-puppeteer
Visual testing with Puppeteer and Percy
Stars: ✭ 47 (+88%)
Mutual labels:  visual-testing, percy, visual-tests, percy-sdk
percy-agent
[Deprecated in favor of `@percy/cli`] An agent process for integrating with Percy.
Stars: ✭ 21 (-16%)
Mutual labels:  visual-testing, percy, visual-regression-testing
Gazo-san
Detect difference between two images.
Stars: ✭ 40 (+60%)
Mutual labels:  visual-testing, visual-regression-testing
percy-node
Utilities for visual regression testing in node based testing setups (like Protractor) for use with percy.io
Stars: ✭ 17 (-32%)
Mutual labels:  percy, visual-regression-testing
html-dnd
HTML Drag and Drop Simulator for E2E testing
Stars: ✭ 53 (+112%)
Mutual labels:  webdriver, webdriverio
Webdriverio
Next-gen browser and mobile automation test framework for Node.js
Stars: ✭ 7,214 (+28756%)
Mutual labels:  webdriver, webdriverio
mugshot
Framework independent visual testing library
Stars: ✭ 126 (+404%)
Mutual labels:  webdriver, webdriverio
snapshot-action
[Deprecated] A GitHub action to visually test static sites with Percy
Stars: ✭ 14 (-44%)
Mutual labels:  visual-testing, percy
visual-regression-testing-jest-chromeless
Visual regression testing using Jest, Chromeless and AWS Lambda.
Stars: ✭ 17 (-32%)
Mutual labels:  visual-regression-testing
Mobilenium
Mobilenium allows you to use Selenium and have access to status codes and HTTP headers, without the need for manual labor.
Stars: ✭ 22 (-12%)
Mutual labels:  webdriver
nightwatch101
使用 Nightwatch 實現 End-to-End Testing ★
Stars: ✭ 42 (+68%)
Mutual labels:  webdriver
webdriverio-zap-proxy
Demo - how to easily build security testing for Web App, using Zap and Glue
Stars: ✭ 58 (+132%)
Mutual labels:  webdriverio
wdio-reportportal-reporter
A WebdriverIO plugin. Report results to Report Portal.
Stars: ✭ 22 (-12%)
Mutual labels:  webdriverio
wdio-jasmine-framework
A WebdriverIO v4 plugin. Adapter for Jasmine testing framework.
Stars: ✭ 22 (-12%)
Mutual labels:  webdriverio
callisto
Callisto is an open-source Kubernetes-native implementation of Selenium Grid.
Stars: ✭ 83 (+232%)
Mutual labels:  webdriver
ui-testing-book
Content for "The Web App Testing Guidebook"
Stars: ✭ 26 (+4%)
Mutual labels:  webdriverio
wdio-junit-reporter
A WebdriverIO v4 plugin. Report results in junit xml format.
Stars: ✭ 13 (-48%)
Mutual labels:  webdriverio
WebDriver
Web Driver UDF for AutoIt
Stars: ✭ 74 (+196%)
Mutual labels:  webdriver
selenium-openapi
The missing Selenium OpenAPI spec
Stars: ✭ 25 (+0%)
Mutual labels:  webdriver
tees
Universal test framework for front-end with WebDriver, Puppeteer and Enzyme
Stars: ✭ 23 (-8%)
Mutual labels:  webdriver

@percy/webdriverio

Version Test

Percy visual testing for WebdriverIO.

Installation

$ npm install --save-dev @percy/cli @percy/webdriverio

Usage

This is an example using the percySnapshot() function in async mode.

const percySnapshot = require('@percy/webdriverio');

describe('webdriver.io page', () => {
  it('should have the right title', async () => {
    await browser.url('https://webdriver.io');
    await expect(browser).toHaveTitle('WebdriverIO · Next-gen browser and mobile automation test framework for Node.js');
    await percySnapshot('webdriver.io page');
  });
});

Running the test above will result in the following log:

$ wdio wdio.conf.js
...

[...] webdriver.io page
[percy] Percy is not running, disabling snapshots
[...]    ✓ should have the right title

...

When running with percy exec, and your project's PERCY_TOKEN, a new Percy build will be created and snapshots will be uploaded to your project.

$ export PERCY_TOKEN=[your-project-token]
$ percy exec -- wdio wdio.conf.js
[percy] Percy has started!
[percy] Created build #1: https://percy.io/[your-project]
[percy] Running "wdio wdio.conf.js"
...

[...] webdriver.io page
[percy] Snapshot taken "webdriver.io page"
[...]    ✓ should have the right title

...
[percy] Stopping percy...
[percy] Finalized build #1: https://percy.io/[your-project]
[percy] Done!

Standalone mode

When using WebdriverIO in standalone mode, the browser object must be provided as the first argument to the percySnapshot function.

const { remote } = require('webdriverio');
const percySnapshot = require('@percy/webdriverio');

(async () => {
  const browser = await remote({
    logLevel: 'trace',
    capabilities: {
      browserName: 'chrome'
    }
  });

  await browser.url('https://duckduckgo.com');

  const inputElem = await browser.$('#search_form_input_homepage');
  await inputElem.setValue('WebdriverIO');

  const submitBtn = await browser.$('#search_button_homepage');
  await submitBtn.click();

  // the browser object is required in standalone mode
  percySnapshot(browser, 'WebdriverIO at DuckDuckGo');

  await browser.deleteSession();
})().catch((e) => console.error(e));

Configuration

percySnapshot(name[, options])

percySnapshot(browser, name[, options]) (standalone mode only)

Upgrading

Automatically with @percy/migrate

We built a tool to help automate migrating to the new CLI toolchain! Migrating can be done by running the following commands and following the prompts:

$ npx @percy/migrate
? Are you currently using @percy/webdriverio? Yes
? Install @percy/cli (required to run percy)? Yes
? Migrate Percy config file? Yes
? Upgrade SDK to @percy/[email protected]? Yes

This will automatically run the changes described below for you.

Manually

If you're coming from a pre-2.0 version of this package, the percySnapshot function is now the default export, and the browser argument is now only required when used in standalone mode.

// before 
const { percySnapshot } = require('@percy/webdriverio');
await percySnapshot(browser, 'Snapshot name', options);

// after
const percySnapshot = require('@percy/webdriverio');
await percySnapshot('Snapshot name', options);

// in standalone mode, browser is still required
await percySnapshot(browser, 'Snapshot name', options);

Migrating Config

If you have a previous Percy configuration file, migrate it to the newest version with the config:migrate command:

$ percy config:migrate
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].