node package manager

real-test

Real-Test

Build Status

Package that provides real e2e tests.

Installation

$ sudo apt-get install xvfb # just to run hidden tests
$ npm install -g nightwatch
$ npm install -g real-test

Quick Start

$ real-test -c /home/user/documents/configs/example.json

to see more options:

$ real-test -h

Advantages

  • Real test E2E
  • Easy to write tests
  • Componentized

Configuration

  • If action url does not have a value attribute, the app will use url attribute in json
  • You can set global variables, these variables will change in tests files (example: {"action": "pause", "value": "!!timeout"})
  {
  "name": "CONFIG_A",
  "url":{
    "default": "http://www.google.com",
    "prefix": "",
    "sufix": ""
  },
  "variables":{
    "search": "real-test github lucasvmiguel"
  },
    "path": "/home/user/documents/tests"        "path where the app will read the tests"
  }

Actions

  • Header: some information to test(needs be the first action)
  • IMPORTANT: you can't write action header with 'only' and 'notOnly' at same time
  {
    "action": "header",
    "type": "helper",            "JUST FOR PARCIAL TEST"
    "only": "CONFIG_NAME_A",     "USE IT"
    "notOnly": "CONFIG_NAME_B"   "OR USE IT"
  }
  • Import: import json inside test
  • IMPORTANT: You need set header type helper to import a file
  {
    "action": "import",
    "value": "Login"
  }
  • Assert: compare something
  {
    "action": "assert",
    "type": "urlContains|urlEquals|elemExists|elemNotExists|text",
    "value": "notebook",
    "timeout": 10000
  }
  • Cookie: write or assert
  {
    "action": "cookie",
    "type": "write",
    "value": "b2b"
  }
  • Click: click on selector
  {
    "action": "click",
    "required": true,
    "selector": "#nav-search > form > div.nav-right > div > input"
  }
  • Desktop: change to view desktop
  {
    "action": "desktop"
  }
  • Phone: change to view phone
  {
    "action": "phone"
  }
  • Tablet: change to view tablet
  {
    "action": "tablet"
  }
  • Log: log into console
  {
    "action": "log",
    "value": "message"
  }
  • Pause: Pause the test for X milliseconds
  {
    "action": "pause",
    "value": 5000
  }
  • Write: Write text
  {
    "action": "write",
    "timeout": 5000,
    "value": "message",
    "selector": "#nav-search > form > div.nav-right > div > input",
    "require": true
  }
  • Url: Access url
  {
    "action": "url",
    "value": "http://example.com.br"
  }

All actions are in actions folder

License

MIT