Testing med Selenium
Hvordan kombinere Selenium, mocha og chai.
Selenium
- Testrammeverk for webapplikasjoner
- Skrevet i Java
- Åpne en adresse
- Finne et element
- Klikke på elementet
- …
Gjør det mulig å lage makroer for en nettleser
selenium-webdriver
- JavaScript-grensesnitt for Selenium
- mocha
- chai, chai-as-promised
Kan kombineres med andre JavaScript-biblioteker:
npm install selenium-webdriver
Installeres med npm:
ChromeDriver
- Oppretter forbindelse til Chrome-instans
- http://sites.google.com/a/chromium.org/chromedriver/
ChromeDriver.exe
må ligge iPATH
Kan installeres med npm eller lastes ned separat:
Installasjon
- npm
- ChromeDriver
- selenium-webdriver
npm install selenium-webdriver
- Mocha
npm install -g mocha
- Chai
npm install chai
npm install chai-as-promised
Filstruktur
test/
|-- test.js
`-- node_modules/
|-- selenium_webdriver/
|-- chai/
|-- chai-as-promised/
`-- ...
Kjøres med:
mocha test.js
test.js
var selenium = require('selenium-webdriver');
var chai = require('chai');
chai.use(require('chai-as-promised'));
var expect = chai.expect;
before(function() {
this.timeout(60000);
this.driver = new selenium.Builder()
.withCapabilities(selenium.Capabilities.chrome())
.build();
return this.driver.getWindowHandle();
});
after(function() {
return this.driver.quit();
});
describe('Component', function() {
// ...
});
test.js, del 2
describe('Component', function() {
beforeEach(function() {
// ...
});
afterEach(function() {
// ...
});
it('should work as expected', function() {
// Selenium test code here
});
});
Resultat:
- Component should work as expected: ✔
test.js, del 3
describe('Search field', function() {
it('should clear when selected', function() {
this.driver.get('http://...');
var searchField = this.driver.findElement({ css: '#searchField' });
searchField.click();
return expect(searchField.getText()).to.eventually.equal('');
});
});
Resultat:
- Search field should clear when selected: ✔