Giter Site home page Giter Site logo

percy / example-percy-java-selenium Goto Github PK

View Code? Open in Web Editor NEW
5.0 9.0 26.0 271 KB

Example app demonstrating Percy's Java Selenium integration.

Home Page: https://docs.percy.io/v1/docs/java-selenium-testing-tutorial

License: Other

Java 17.49% HTML 3.76% JavaScript 60.43% Makefile 0.84% CSS 17.49%

example-percy-java-selenium's Introduction

example-percy-java-selenium

Example app used by the Percy Java Selenium tutorial demonstrating Percy's Java Selenium integration.

Based on the TodoMVC VanillaJS app, forked at commit 4e301c7014093505dcf6678c8f97a5e8dee2d250.

Java Selenium Tutorial

The tutorial assumes you're already familiar with Java and Selenium and focuses on using it with Percy. You'll still be able to follow along if you're not familiar with Java Selenium, but we won't spend time introducing Java Selenium concepts. It requires Java 8 and Maven >3.6.

The tutorial also assumes you have Node 12+ with npm and git installed.

Step 1

Clone the example application and install dependencies:

$ git clone https://github.com/percy/example-percy-java-selenium.git
$ cd example-percy-java-selenium
$ make install

The example app and its tests will now be ready to go. You can explore the app by opening the src/main/resources/index.html file in a browser.

Step 2

Sign in to Percy and create a new project. You can name the project "todo" if you'd like. After you've created the project, you'll be shown a token environment variable.

Step 3

In the shell window you're working in, export the token environment variable:

Unix

$ export PERCY_TOKEN="<your token here>"

Windows

$ set PERCY_TOKEN="<your token here>"

# PowerShell
$ $Env:PERCY_TOKEN="<your token here>"

Note: Usually this would only be set up in your CI environment, but to keep things simple we'll configure it in your shell so that Percy is enabled in your local environment.

Step 4

Check out a new branch for your work in this tutorial (we'll call this branch tutorial-example), then run tests & take snapshots:

$ git checkout -b tutorial-example
$ make test

This will run the app's Java Selenium tests, which contain calls to create Percy snapshots. The snapshots will then be uploaded to Percy for comparison. Percy will use the Percy token you used in Step 2 to know which organization and project to upload the snapshots to.

You can view the screenshots in Percy now if you want, but there will be no visual comparisons yet. You'll see that Percy shows you that these snapshots come from your tutorial-example branch.

Step 5

Use your text editor to edit index.html and introduce some visual changes. For example, you can add inline CSS to bold the "Clear completed" button on line 32. After the change, that line looks like this:

<button class="clear-completed" style="font-weight:bold">Clear completed</button>

Step 6

Commit the change:

$ git commit -am "Emphasize 'Clear completed' button"

Step 7

Run the tests with snapshots again:

$ make test

This will run the tests again and take new snapshots of our modified application. The new snapshots will be uploaded to Percy and compared with the previous snapshots, showing any visual diffs.

At the end of the test run output, you will see logs from Percy confirming that the snapshots were successfully uploaded and giving you a direct URL to check out any visual diffs.

Step 8

Visit your project in Percy and you'll see a new build with the visual comparisons between the two runs. Click anywhere on the Build 2 row. You can see the original snapshots on the left, and the new snapshots on the right.

Percy has highlighted what's changed visually in the app! Snapshots with the largest changes are shown first You can click on the highlight to reveal the underlying screenshot.

If you scroll down, you'll see that no other test cases were impacted by our changes to the 'Clear completed' button. The unchanged snapshots appear grouped together at the bottom of the list.

Finished! ๐Ÿ˜€

From here, you can try making your own changes to the app and tests, if you like. If you do, re-run the tests and you'll see any visual changes reflected in Percy.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.