Skip to content

Latest commit

 

History

History
116 lines (67 loc) · 4.06 KB

README.md

File metadata and controls

116 lines (67 loc) · 4.06 KB

Protractor

Protractor is an end to end test framework for Angular applications built on top of webdriverJS.

Protractor can be run as a standalone binary runner, or included into your tests as a library. Use Protractor as a library if you would like to manage WebDriver and your test setup yourself.

To run the sample tests

Install protractor with.

npm install protractor

Start up a selenium server (See the appendix below for help with this). By default, the tests expect the selenium server to be running at http://localhost:4444/wd/hub.

The example folder contains multiple versions of a simple test suite which runs against angularjs.org.

onJasmineNodeSpec.js and onMocha.js show how to use the Protractor library with jasmine-node and mocha. Run these with:

jasmine-node example/onJasmineNodeSpec.js
mocha example/onMocha.js

You can also run the example suite using the Protractor runner. The runner accepts a configuration file, which runs the tests at example/onProtractor.js.

bin/protractor example/protractorConf.js

Using the Protractor runner

The Protractor runner is a binary which accepts a config file. The Protractor runner runs tests written in Jasmine, but other adapters may be added in the future.

Install protractor with

npm install protractor

Create a configuration file - an example is shown in node_modules/protractor/conf.js.

cp node_modules/protractor/conf.js myConf.js

Edit the configuration file to point to your tests.

exports.config = {
  jasmineNodeOpts: {
    specs: ['myTest.js', 'myFolder/myOtherTest.js']
  }
}

The configuration file must also specify a way of connection to webdriver. This can be

  • seleniumAddress: The address of a running selenium standalone server.
  • seleniumServerJar: The location of the selenium standalone .jar file on your machine. Protractor will use this to start up the selenium server.
  • sauceUser and sauceKey: The username and key for a SauceLabs account. Protractor will use this to run tests on SauceLabs.

Run with

node_modules/.bin/protractor myConf.js

Or, if you installed protractor globally (using npm install -g protractor)

protractor myConf.js

Using the Protractor library

Use the Protractor library if you would like to manage webdriverJs yourself.

Install protractor with

npm install protractor

In your test, set up a webdriver instance, then wrap it with protractor.

var protractor = require('protractor');
var driver;
// Set up driver as a webdriver however you'd like.
var ptor = protractor.wrapDriver(driver);

Cloning and running Protractor's own tests

Clone the github repository.

git clone https://github.com/juliemr/protractor.git
cd protractor
npm install

Start up a selenium server. By default, the tests expect the selenium server to be running at http://localhost:4444/wd/hub.

Protractor's test suite runs against the included testapp. Start that up with

cd testapp
./scripts/web-server.js

Then run the tests with

npm test

Appendix A: Setting up a standalone selenium server

WebdriverJS does not natively include the selenium server - you must start a standalone selenium server. All you need is the latest selenium-server-standalone.

To use with chrome browsers, download chromedriver. More information about chromedriver

A script is included to do the download for you - run with (add the --nocd option if you do not want to install ChromeDriver)

./node_modules/protractor/bin/install_selenium_standalone

Start the selenium standalone with

java -jar selenium/selenium-server-standalone-2.33.0.jar -Dwebdriver.chrome.driver=./selenium/chromedriver