Giter Club home page Giter Club logo

ukhomeoffice.asl-functional-testing's Introduction

ASL Functional Testing

Provides some simple wrappers for writing functional tests in wdio

Usage

Create a config file in your project with the following content:

module.exports = {
  // path to your test files
  specs: './tests/functional/specs/**/*.js',
  // the usernames and passwords for any users used in your tests
  users: {
    'username': 'password'
  },
  // the urls for your different environments
  urls: {
    local: 'http://localhost:8080',
    dev: '<dev url>',
    preprod: '<preprod url>'
  }
};

Add the following as a script to the scripts section in your package.json:

asl-test ./path/to/you/config

Run that script.

Test helpers

There is currently a single helper function defined for logging in - withUser - this will start a clean browser session, and then log you in with the user defined.

const assert = require('assert');

describe('Example tests', () => {

  it('can log in', () => {
    browser.withUser('username');
    const title = browser.getTitle();
    assert.equal(title, 'My page title');
  });

});

Screenshots

You can optionally have the test runner create a set of screenshots of particular pages of your app after completing a successful test run. To do this, add a screenshots section to your config as follows:

module.exports = {
  ...
  screenshots: {
    user: '<user to log in as>',
    urls: [
      '/',
      '/details',
      '/places'
    ],
    path: '/path/to/save/screenshots/to'
  }
};

When running tests locally then screenshots will be saved into the path specified. Alternatively they can be saved into AWS S3 by providing additional config for S3. This will save the screenshots for each test run in a subdirectory in S3 corresponding to the test run.

module.exports = {
  ...
  screenshots: {
    user: '<user to log in as>',
    urls: [
      ...
    ],
    s3: {
      region: 'eu-west-2',
      bucket: 'asl-screenshots',
      prefix: 'my-service',
      accessKey: process.env.AWS_ACCESS_KEY,
      secret: process.env.AWS_SECRET
    }
  }
};

ukhomeoffice.asl-functional-testing's People

Contributors

lennym avatar wheelsandcogs avatar joefitter avatar dependabot[bot] avatar

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.