End to End Testing

By definition, unit-tests don't test interactions between modules and some side-effects.

The whole application must also be tested automatically.

Protractor

Protractor is an e2e (end-to-end) testing framework developed by the AngularJS team.

It can test AngularJS or Angular web applications but also non-AngularJS web applications.

Protractor uses the Selenium webdriver to communicate with browsers and control them.

Protractor tests are written in JavaScript (or TypeScript) with Jasmine.

describe('angularjs homepage todo list', () => {

    it('should add a todo', () => {
    
        browser.get('https://angularjs.org');

        /* Add an element. */
        element(by.model('todoList.todoText')).sendKeys('write first protractor test');
        element(by.css('[value="add"]')).click();

        /* Check todo list content. */
        const todoList = element.all(by.repeater('todo in todoList.todos'));
        expect(todoList.count()).toEqual(1);
        expect(todoList.get(0).getText()).toEqual('write first protractor test');

    });

});
circle-check

Cross-Browser & Cross-Device Test Automation with Browserstack

Browserstack is a cloud service with a large set of remotely controllable devices and browsers.

With Browserstack, you can run your Protractor tests on mobile and desktop.

https://www.browserstack.comarrow-up-right

Browserstack records logs, captures screenshots and records testing videos.

circle-info

Apps can also be tested manually on Browserstack.

circle-info

You can open a tunnel with Browserstack to test locally hosted applications.

Cypress

Cypress is another JavaScript End to End Testing Framework.

circle-exclamation

With Cypress, it is easier to have a Test-Driven Development approach as tests can be re-run automatically on every change without having to respawn a browser.

https://www.cypress.io/arrow-up-right

Takeaways

Cross-Browser & Cross-Device E2E Testing Automation Blog Post

https://blog.wishtack.com/2015/05/07/cross-browser-testing-test-automation-with-protractor-and-browserstack/arrow-up-right

Boilerplate to run your first protractor tests

https://github.com/wishtack/wt-protractor-boilerplatearrow-up-right

Useful modules

https://github.com/wishtack/wt-protractor-runnerarrow-up-right

https://github.com/wishtack/wt-protractor-utilsarrow-up-right

Last updated