Node.js→모차→WebDriver→BrowserStack→Internet Explorer로 사이트 자동 테스트

https://www.browserstack.com/를 사용하여 Internet Explorer 테스트를 수행합니다.
BrowserStack은 100분 동안 무료로 시험해 볼 수 있다.Automate Pro 프로그램은 월 99달러입니다.
Mac 개발용 IE로 시도하고 싶을 때 인터넷 익스플로어 드라이브를 스스로 준비하는 환경은 번거롭다.
테스트 스크립트를 작성할 때 Selenium Standalone Server를 사용하는 경우에도
사이트 주체의 개발, 운용 중의 테스트는 Browser Stack에 의존하는 것이 매우 간단한 것 같다.

관련 보도: Node.js→Mocha→WebDriver→Selenium→Chrome 사이트 자동 테스트

(1) 웹 driverio 설치

npm install webdriverio wdio-mocha-framework wdio-browserstack-service 

(2) BrowserStack 계정을 만들고 사용자 키를 받는 그룹


(3) wdio.conf.js 쓰기

exports.config = {
  specs: ['./test/specs/**/*.js'],

  capabilities: [{
    'browserName': 'IE',
    'os': 'Windows',
    'os_version': '7',
    'resolution': '1024x768',
    'browserstack.debug': true
  }],

  services: ['browserstack'],
  browserstackLocal: true,

  // https://www.browserstack.com/accounts/settings
  user: 'xxxx',
  key: 'xxxx',

  mochaOpts: {
    timeout: 6000000 // 10分間
  },

  logLevel: "verbose"
};

(4) ./test/specs/yahoo.쓰다

const assert = require("assert");

describe("Test", () => {
  it("Yahoo!検索", () => {
    browser.url("https://search.yahoo.co.jp/");

    assert.equal(browser.getTitle(), "Yahoo!検索");

    $("input[name=p]").setValue("webdriver.io");

    $("input[type=submit]").click();

    browser.waitForExist("h3 a", 5000);

    assert.equal($("h3 a").getText(), "WebdriverIO - WebDriver bindings for Node.js");

    assert.equal($("h3 a").getAttribute("href"), "http://webdriver.io/");
  });
});
※ 지난번구글에서 검색할 때. DOM 구조 때문에 excute()가 필요합니다.
IE라면 잘 안 맞는 것 같으니 야후 해보세요!시험을 개작하다.

(5) 테스트 수행

./node_modules/.bin/wdio wdio.conf.js
다음verbose 로그에서 처리 내용을 확인할 수 있습니다.
화면에 포착된 정지화·애니메이션도 브라우저를 통해 확인할 수 있다.
[20:26:22]  COMMAND POST     "/wd/hub/session"
[20:26:22]  DATA        {"desiredCapabilities":{"javascriptEnabled":true,"locationC
ontextEnabled":true,"handlesAlerts":true,"rotatable":true,"browserName":"IE","o
s":"Windows","os_version":"7","resolution":"1024x768","loggingPrefs":{"browser"
:"ALL","driver":"ALL"},"requestOrigins":{"url":"http://webdriver.io","version":
"4.9.11","name":"webdriverio"}}}
[20:26:26]  INFO    SET SESSION ID xxxx
[20:26:26]  RESULT      {"browserAttachTimeout":0,"enablePersistentHover":false,"
ie.forceCreateProcessApi":false,"pageLoadStrategy":"normal","ie.usePerProcessPr
oxy":false,"ignoreZoomSetting":false,"handlesAlerts":true,"version":"10","platf
orm":"WINDOWS","nativeEvents":false,"ie.ensureCleanSession":false,"elementScrol
lBehavior":0,"ie.browserCommandLineSwitches":"","webdriver.remote.sessionid":"x
xxx","requireWindowFocus":false,"browserName":"internet explorer","initialBrows
erUrl":"about:blank","takesScreenshot":true,"javascriptEnabled":true,"ignorePro
tectedModeSettings":false,"enableElementCacheCleanup":true,"cssSelectorsEnabled
":true,"unexpectedAlertBehaviour":"dismiss"}
[Browserstack] Windows 7 IE session: https://www.browserstack.com/automate/buil
ds/xxxx/sessions/xxxx
[20:26:27]  COMMAND POST     "/wd/hub/session/xxxx/url"
[20:26:27]  DATA        {"url":"https://search.yahoo.co.jp/"}
[20:26:39]  COMMAND GET      "/wd/hub/session/xxxx/title"
[20:26:39]  DATA        {}
[20:26:39]  RESULT      "Yahoo!検索"
[20:26:39]  COMMAND POST     "/wd/hub/session/xxxx/element"
[20:26:39]  DATA        {"using":"css selector","value":"input[name=p]"}
[20:26:40]  RESULT      {"ELEMENT":"0"}
[20:26:40]  COMMAND POST     "/wd/hub/session/xxxx/element/0/clear"
[20:26:40]  DATA        {}
[20:26:40]  COMMAND POST     "/wd/hub/session/xxxx/element/0/value"
[20:26:40]  DATA        {"value":["w","e","b","d","r","i","v","e","r",".","(2 more items)"],"text":"webdriver.io"}
[20:26:41]  COMMAND POST     "/wd/hub/session/xxxx/element"
[20:26:41]  DATA        {"using":"css selector","value":"input[type=submit]"}
[20:26:41]  RESULT      {"ELEMENT":"1"}
[20:26:41]  COMMAND POST     "/wd/hub/session/xxxx/element/1/click"
[20:26:41]  DATA        {}
[20:26:46]  COMMAND POST     "/wd/hub/session/xxxx/elements"
[20:26:46]  DATA        {"using":"css selector","value":"h3 a"}
[20:26:47]  RESULT      [{"ELEMENT":"2"},{"ELEMENT":"3"},{"ELEMENT":"4"},{"ELEMENT":"5"},{"ELEMENT":"6"},{"ELEMENT":"7"},{"ELEMENT":"8"},{"ELEMENT":"9"},{"ELEMENT":"10"},{"ELEMENT":"11"}]
[20:26:47]  COMMAND POST     "/wd/hub/session/xxxx/element"
[20:26:47]  DATA        {"using":"css selector","value":"h3 a"}
[20:26:47]  RESULT      {"ELEMENT":"2"}
[20:26:47]  COMMAND GET      "/wd/hub/session/xxxx/element/2/text"
[20:26:47]  DATA        {}
[20:26:48]  RESULT      "WebdriverIO - WebDriver bindings for Node.js"
[20:26:48]  COMMAND POST     "/wd/hub/session/xxxx/element"
[20:26:48]  DATA        {"using":"css selector","value":"h3 a"}
[20:26:48]  RESULT      {"ELEMENT":"2"}
[20:26:48]  COMMAND GET      "/wd/hub/session/xxxx/element/2/attribute/href"
[20:26:48]  DATA        {}
[20:26:48]  RESULT      "http://webdriver.io/"
[20:26:49]  COMMAND DELETE   "/wd/hub/session/xxxx"
[20:26:49]  DATA        {}

1 passing (37.10s)

좋은 웹페이지 즐겨찾기