[RealWorld Test Automation. Day 12] correct UI test automation by Ranorex

6696 단어 testautomationranorex

Outline


이번에는 Ranorex를 사용해 WEB의 E2Etest를 제작할 때 UI를 정확하게 진행하는 테스트에 대해 기술했다.
이는 Ranorex에 국한되지 않습니다.특히 웹드라이브에서 자바 등으로 만들 때는 빠지기도 한다.
UI 테스트에서 테스트 자동화 스크립트를 사용자 시각으로 썼습니까?
사용자가 할 수 없는 일은 테스트 자동화된script를 통해 할 수 있습니다.
따라서 사용자의 처리는 NG였지만 테스트 자동화에서는 OK였다.

Example


https://keirin.kdreams.jp/
샘플 사이트로 K몽을 사용하는 사이트.
scenario는 다음과 같다.
1. 投票ボタンを押す
2. 競輪場一覧のボタンを押す
3. 競輪場一覧から”宇都宮”を選ぶ
4. レース番号の変更のボタンを押す
5. レース一覧から”5R"を選ぶ
6. 投票方法の変更のボタンを押す
7. 投票方法から、”通常投票”、”ベーシック投票”を選び、設定する
조작영상은 다음과 같다↓

이 사이트의 특징으로서
  • AJAX 비동기식 정보
  • CSS 디스플레이 제어 부품
  • 사용자 프로세싱 필드가 올바르지 않음, 자동화 성공 테스트 예제 LOADR 편


    사용자 처리장이 부정확하고 자동화 성공의 예를 테스트하는 애니메이션↓

    너무 빨라서 왜 정확하지 않은지 알기 어려울지도 몰라요.
    예를 들어, 경기 번호의 장면을 선택합니다.
    아래 그림과 같이 마우스 클릭이 불가능한 LOADER 아이콘도 표시됩니다.
    그러나script의 기술 방법에 따라direct에서 레이스 번호'6R'을 선택할 수 있습니다.

    따라서 처리는 정상적으로 진행된다.
    다만, 로더 등의 처리에 문제가 있어 사용자가 마우스로 클릭할 수 없는 상태라면 어떤가?
    원래는 시험에 실패했어야 했다.
    테스트 자동화된script가 성공하더라도 사용자 조작(수동 테스트)이 실패하기 때문이다.
    정확히 말하면 로더가 사라질 때까지 기다려야 한다.
    Ranorex에 기술할 때 "Wait for-Not exists"사용

    사용자 처리장 부정확, 테스트 자동화 성공의 예 CSS 제어편


    CSS에 디스플레이를 숨긴 상태에서 테스트 자동화도 성공했고 사용자 조작이 실패한 예도 있다.
    경기 번호를 선택하는 모드 예시
    이 모드는 CSS의 스타일로 디스플레이를 제어합니다.(display;blick;표시 모드)
    선택한 번호판의 모드 숨기기

    선택한 번호판의 모드를 표시합니다

    Ranorex SPY에서 XPath 확인
    선택한 번호판의 모드 숨기기

    선택한 번호판의 모드 숨기기

    SPY에서는 Xpath 중 어느 화면에서든 Reporitory it em이 제거되었음을 확인할 수 있습니다.
    그러나 선택한 차량 번호의 모드가 표시되지 않을 때 Xpath는 회색입니다.
    이것은 Xpath가 존재하지만 표시되지 않음을 나타냅니다.
    이 Reporitoy item에 대해script가direct에서 선택한 기술을 사용하면 모드가 표시되지 않아도 선택할 수 있고 처리가 성공할 수 있습니다.
    Ranorex 마우스로 클릭한 처리에서 script를 시작하는 예는 다음과 같다.
    Ranorex는 위의 Xpath에 존재하지만 표시되지 않는 reporitory item의 경우 예상치 못한 위치(0.0 position)를 마우스 버튼으로 클릭합니다.이러면 실패할 거야.

    이러한 상황을 피하는 예로 Ranorex의 SPY에 Vissible 옵션을 추가하면 Reporitory item이 나타나기 전에 사용할 수 있습니다.
    물론 timeout을 표시하지 않으면 스크립트가 실패합니다. (정확한 동작)

    Summary


    위에서 말한 바와 같이 사용자의 시점에서 테스트 자동화를 조작할 수 있는지를 테스트로 설명하는 것은 매우 중요하다.
    이번 예에서 Ranorex를 사용한 경우는 다음과 같다.
  • LOADER 등 사용자의 조작을 방해하는 상태에서wait
  • CSS에서 디스플레이를 제어할 때visible 확인
  • 라노렉스 이외의 스크립팅에서도 같은 생각으로 이뤄진다면 대응이 가능하다.

    Finally


    다음엔 11월??금요일쯤에 발표할 예정입니다.
    테스트 자동화 리얼 월드 tips 계속 고려

    back number

  • [Lesson Test Automation. Day 01] What's Test Automation
  • [Lesson Test Automation. Day 02] Test Layer and Tool
  • [Lesson Test Automation. Day 03] introduce test automation
  • [Lesson Test Automation. Day 04] Test Automation Code Design vol.01
  • [Lesson Test Automation. Day 05] Test Automation Code Design vol.02
  • [Lesson Test Automation. Day 06] Test Automation Code Design vol.03
  • [Lesson Test Automation. Day 07] Test Automation Code Design vol.04
  • [Lesson Test Automation. Day 08] Test Automation Operation
  • [RealWorld Test Automation. Day 09] To reduce Jenkins operation set disable/enable in bulk
  • [RealWorld Test Automation. Day 10] create test automation script for Travel booking by Ranorex
  • [RealWorld Test Automation. Day 11] choose nice XPath for durable and speedy test automation by Ranorex
  • 좋은 웹페이지 즐겨찾기