Интеграционное тестирование

Сергей Жигалов

Интеграционное тестирование

Сергей Жигалов

Курс разработки интерфейсов, 2014 г.

Призраки и приведения

CasperJS

CasperJS Install

CasperJS API

CasperJS API

CasperJS casper

CasperJS run

DEMO 01

CasperJS tester

DEMO 02 && DEMO 03

capture

CasperJS capture

DEMO 04

Асинхронность

CasperJS wait

DEMO 05

Karma

Karma Install

Karma Config

Karma Run

DEMO 01

Protractor

Protractor How it works

Protractor Install

Protractor chai

var chai = require('chai');
var chaiAsPromised = require('chai-as-promised');
            
chai.use(chaiAsPromised);
var expect = chai.expect;
        
expect(browser.getTitle()).to.eventually.equal('URL encoded');
        

Protractor Config

{
    seleniumAddress: 'http://localhost:4444/wd/hub',
    specs: [ 'test/*.test.js' ],
    framework: 'mocha',
    mochaOpts: { reporter: 'spec', timeout: 4000 },
    capabilities: { 'browserName': 'chrome', 'version': 'ANY' },
    baseUrl: 'http://localhost:63342'
}

Protractor Browser

browser.get(destination, opt_timeout)
browser.sleep(timeout)
browser.back()
browser.forward()
browser.refresh()
browser.getCookie(name)
...
        

DEMO 02

Protractor Angular

            browser.ignoreSynchronization = true;
        

DEMO 03

Protractor Locators

by.css('.myclass')
by.id('myid')
by.tagName('div')
element(by.css('some-css')).element(by.tagName('tag-within-css'));
        

Protractor Actions

var el = element(locator);
            
el.isPresent();
el.isDisplayed();
el.click();
el.sendKeys('my text');
el.clear();
el.getAttribute('value');
el.getText().then(function(text) {
    console.log(text);
});
        

DEMO 04

Protractor wait

browser.wait(fn, timeout, opt_message)
        

DEMO 05

DEMO 06