티스토리 뷰

이번 포스팅에서는, 원격 브라우저 사용 방법에 대해 알아보겠습니다.

이에, WebdriverIO라는 테스트 자동화 프레임 워크를 사용할 것입니다.

테스트 자동화를 위해 WebdriverIO는 Webdriver 프로토콜과 Appium 자동화 기술을 기반으로 하여 테스트를 수행합니다.

 

WebDriver와 관련된 자세한 설명은 아래 링크를 참조 부탁드립니다.



본 포스팅에서 사용하는 테스트 런타임 환경은 아래와 같습니다.

  • OS : Ubuntu 18.04.1 LTS 64bit
  • Node.js Runtime : v10.14.2 LTS
  • Browser : Firefox 64.0 canonical-1.0

 

먼저 Webdriver 가 Firefox와 상호작용을 하기 위해, GeckoDriver를 설치합니다.

Gecko는 모질라 재단에서 개발한 웹브라우저 엔진으로 Firefox는 해당 엔진을 사용합니다.

GeckoDriver는 Webdriver로 작성된 코드를 해석하고 브라우저와 상호작용하여 응답을 주고받는 역할을 합니다. 

 


프로젝트 디렉터리를 생성합니다.


프로젝트 디렉터리 내에 Gecko Driver 설치하기.

1
curl -L https://github.com/mozilla/geckodriver/releases/download/v0.23.0/geckodriver-v0.23.0-linux64.tar.gz | tar xz
c
s


프로젝트 디렉터리 내에 WebDriverIO 설치하기.

이 때, npm init 선행이 필요합니다.


1
npm install webdriverio

cs



js 확장자의 파일 하나를 생성합니다. 여기서는 "app.js" 라고 하겠습니다.

아래와 같이 소스코드를 작성한 후 저장합니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
const { remote } = require('webdriverio');
 
(async () => {
    const browser = await remote({
        logLevel: 'error',
        path: '/',
        capabilities: {
            browserName: 'firefox'
        }
    });
 
    await browser.url('https://webdriver.io');
 
    const title = await browser.getTitle();
    console.log('Title was: ' + title);
 
    await browser.deleteSession();
})().catch((e) => console.error(e));
cs

<출처: https://webdriver.io/docs/gettingstarted.html>


위의 소스 코드는, 설정된 브라우저 객체를 생성하여 url() 를 통해 브라우저 원격 접속을 시도합니다.

접속에 성공한 후, 현재 사이트의 title 값에 해당하는 문자열을 얻어 title 변수에 반환하는 간략한 코드입니다.



이제 실행해봅시다.




현재 디렉터리의 내용물은 아래와 같습니다.

1
2
3
4
5
web-driver-io
├── app.js
├── geckodriver
├── node_modules
├── package.json
cs



이제 firefox에서 원격 제어를 사용하기 위하여 geckodriver를 백그라운드에서 실행합니다.

1
./geckodriver --port 4444

cs


아래와 같이 터미널에 명령을 입력한 후, 로그 및 출력 내용을 확인합니다.

1
2
3
gdyoon@ubuntu:~/project/node/web-driver-io$ node app.js
2019-01-05T06:20:24.642Z DEBUG wdio-config: wdio-sync found, running tests synchronous
Title was: WebdriverIO · Next-gen WebDriver test framework for Node.js
cs



반응형

'JavaScript > 웹 UI 테스트 자동화' 카테고리의 다른 글

테스트 진행하기  (0) 2019.01.11
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함