protractorを使ってみる

はじめに

使ったことないE2Eフレームワークを色々試すの巻。 Angularでないプロダクトでも使えるらしいの挑戦。

Protractor - end-to-end testing for AngularJS

触ってみたメモ

# Global Install
$ npm install -g protractor

$ protractor --version

$ webdriver-manager version

# ProtractorのSetupにはUpdateをしろって書いてあるので試しにやってみる
$ webdriver-manager update

# SleniumServerの起動しておく
$ webdriver-manager start

conf.js

exports.config = {
   // こう書いておくとangular以外でも使用できる
  onPrepare: function () {
    browser.ignoreSynchronization = true;
  },
  seleniumAddress: 'http://localhost:4444/wd/hub',
  specs: ['specs/*']
};

spec.js

describe('My First Test', function() {
  it('Search riririusei99', function() {
    browser.get('http://teamspirit.hatenablog.com/');
    
    element(by.css('input[type=text')).sendKeys('riririusei99');
    element(by.css('input[type=submit]')).click();

    // Waits for the title to be 'riririusei99'.
    var EC = protractor.ExpectedConditions;
    browser.wait(EC.titleContains('riririusei99'), 5000);

    expect(browser.getTitle()).toEqual('riririusei99 の検索結果 - TeamSpirit Developer Blog');

  });
});

テスト実行

protractor conf.js

使ってみた感想

  • webdrive-managerが入っているのでドライバの管理が簡単そうに見える
  • 設定が色々できるので拡張性高そう(ブラウザ変えたり、テストフレームワーク変えたり…)

今回触ったもの

github.com