Protractor-perf: Testes de performance para aplicações AngularJS

Stella wide view 2

Este material foi escrito como forma de documentação de meu primeiro uso do protractor-perf.

Para instalar o protractor-perf utilize:

npm install -g protractor-perf

Para realização dos testes de performance iniciais irei utilizar os testes funcionais já criados anteriormente neste outro post, o qual utiliza a aplicação todo-mvc versão AngularJS.

No meu caso, criei um branch específico para testar o protractor-perf, chamado fs/perf.

Para utilizar o protractor-perf foi necessário alterar o arquivo conf.js, incluindo o navegador utilizado para os testes. Esta configuração não é necessária no protractor, o qual utiliza o chrome como navegador padrão, porém é necessária no protractor-perf, ao menos até agora. Veja o conf.js:

// conf.js
exports.config = {
  seleniumAddress: 'http://localhost:4444/wd/hub',
  specs: ['spec.js'],
  capabilities: {
    'browserName': 'chrome'
  }
}

Após as configurações, no arquivo spec.js adiciona-se: 1 – a dependência do protractor-perf; 2 – a criação de uma instancia de objeto do tipo ProtractorPerf; 3 – define-se onde a medição inicia e termina); 4 – e por último faz-se a verificação (neste caso de tempo de renderização da página, em milisegundos).

var todomvcHelper = require('./todomvc.helper');
var ProtractorPerf = require('protractor-perf'); // item 1.
describe('angularjs todo mvc homepage', function() {
  var perf = new ProtractorPerf(protractor); // item 2.
  it('should have a title', function() {
  browser.get('http://todomvc.com/examples/angularjs/#/');
  perf.start(); // item 3.
  expect(browser.getTitle()).toEqual('AngularJS • TodoMVC');
  perf.stop(); // item 3.
  if (perf.isEnabled) {
    expect(perf.getStats('meanFrameTime')).toBeLessThan(30);
  }
}); // item 4.

E para executar o novo teste, basta executar o comando abaixo, a partir da pasta onde encontram-se os testes:

protractor-perf conf.js

E no caso da execução do comando protractor conf.js, os códigos referentes a testes de performance são desconsiderados e o protractor executará somente os testes funcionais.

Em breve tem mais!

Deixe seu comentário. =D

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s