Airtest에서 UI 테스트 수행

7867 단어 AirtestUnity

개시하다


업무상 에어테스트를 도입하고 싶다는 요구를 수용해 시험이 진행되는 곳을 잠정 시험해 본 만큼 도입 절차 등을 총결산하고자 한다.

사용된 버전


Airtest IDE 1.0.1
Poco-SDK versionCode 4
Unity 2018.2.14f1

설치하다.


공식 사이트의 다운로드 버튼에서 Zip 파일을 다운로드합니다.

임의의 위치에서 ZIP 파일의 압축을 풉니다.
압축을 푼 폴더의 AirtestIDE입니다.exe가 실행하는 프로그램이 됩니다.

최초 시작


처음 시작할 때 계정 인증 창이 표시됩니다.
스킵 버튼이 있어서 스킵.
다음에 시작하면 계정 인증 창이 표시되지 않습니다.
일정 시간이 지나면 계정 인증 창이 다시 표시될 수 있습니다.

계정 인증 창을 건너뛰면 Airtest IDE가 시작됩니다.

Poco SDK 가져오기


이미지 인식을 위한 UI 테스트를 만들려면 Airtest IDE가 필요합니다.
[Unity] "Airtest IDE"를 사용하여 안드로이드 게임에서 이미지 인식을 통해 UI의 자동 테스트를 시도했습니다. - Kogane 블로그.
그러나 하나의 UI 테스트는 여러 PC에서 사용하기 어려워 애플리케이션에서 직접 조작할 수 있는 대상Poco SDK을 가져왔다.
PocosDK 창고에서 Poco SDK의 ZIP 파일을 다운로드합니다.
임의의 위치에서 ZIP 파일의 압축을 풉니다.
내부 폴더Unity3D를 Unity 프로젝트에 복사합니다.


오류가 발생했다고 생각했기 때문에 다음과 같은 어떤 대응을 해야 하는가.
  • UGUI를 사용하는 경우Unity3D/ngui 폴더 삭제
  • NGUI를 사용하는 경우Unity3D/ugui 폴더 삭제
  • 빈 GameObject를 만들고 첨부PocoManager합니다.
    (실행 시DontDestroyOnLoad(this).

    새 테스트


    다음 화면의 테스트를 해보고 싶습니다.



    제목 장면에서 아웃 게임으로 옮길 수 있는지 테스트를 하고 싶습니다.
    Airtest IDE를 시작하여 메뉴 표시줄의 File > New 또는 New Project에서 프로젝트를 만듭니다.
    Script Editor 창에 표시된 스크립트를 Poco SDK로 테스트하는 초기화 프로세스로 덮어씁니다.
    GotoOutgame.py
    # -*- encoding=utf8 -*-
    from poco.drivers.unity3d import UnityPoco                  # Unity用のインポート.
    
    # Windows用の初期化処理.
    from poco.drivers.unity3d.device import UnityEditorWindow   # UnityEditor用のインポート.
    dev = UnityEditorWindow()                                   # デバイスにUnityEditorを指定.
    addr = ('', 5001)                                           # 接続先のIPアドレスを指定.
    poco = UnityPoco(addr, device=dev)                          # Unity用のPocoを生成.
    
    이렇게 하면 테스트를 수행할 때 Unity의 Hierrarchy에 있는 객체에 액세스할 수 있습니다.
    Unity에 액세스한 Hierrarchy의 객체에 대한 테스트를 여기서부터 기록합니다.
  • Airtest IDE의 Devices 창Windows App Connection > Search Window에서 UnityEditor와 연결합니다.
  • 가져온 UnityEditor에서 Play 버튼을 눌러 실행합니다.
  • Airtest IDE의 Poco Assistant 창에서Stop 드롭다운 메뉴Unity를 선택합니다.
  • Unity와 유사한 Hierrarchy 컨텐트가 Poco Assistant 창에 표시됩니다.
  • Poco Assistant 창의 객체를 두 번 클릭하거나 마우스 오른쪽 버튼 메뉴에서 UI path-code를 선택하여 스크립트 옆에 객체를 가져오는 스크립트를 추가합니다.
  • 위 단계를 수행한 후 생성된 스크립트는 다음과 같습니다.
    GotoOutgame.py
    # ~さっき作成した初期化処理~
    
    # テスト実行.
    import time                         # 処理を止めるメソッド用のインポート.
    poco("GotoOutgameButton").click()   # GotoOutgameボタンをクリックする.
    
    time.sleep(1)                       # 画面遷移を待つため1秒間処理を止める.
    
    text = poco("OutgameText")          # Outgameと表示しているテキストオブジェクトを取得.
    assert(text.exists())               # テキストが存在しているか確認.
    

    실행 테스트


    Devices 창에서 UnityEditor에 연결된 상태에서 테스트가 실행될 때 연결 처리에 실패하고 테스트가 실패하므로 미리 차단해야 합니다.
    Devices 창의 Phone Assistant > Disconnect Current Device를 선택하여 해제합니다.
    테스트를 수행하려면 다음 절차를 따르십시오.
  • UnityEditor에서 Play 상태가 됩니다.
  • Airtest IDE에서 Run Script 버튼을 누릅니다.
  • Airtest IDE의 Log Viewer에 로그를 표시합니다.

  • 총결산


    에어테스트의 도입 방법과 포코 SDK를 이용한 테스트 제작 방법을 총괄했다.
    Poco SDK를 사용한 테스트는 운영 환경에 영향을 받지 않으며 테스트가 가능합니다.
    이미지 인식도 테스트를 만들 수 있지만 다른 PC에서 같은 테스트를 할 때 테스트가 실패하고 불안정하기 쉽다.
    Poco SDK만 가져오면 발표된 앱에도 Poco SDK가 포함됩니다.
    게시할 때 Poco SDK는 응용 프로그램에 포함되지 않아야 합니다.

    참조 링크


    공식 사이트
    AirtestIDE — airtest-ide documentation
    PocoSDK Integration Guide — poco 1.0 documentation
    PocosDK 창고
    [Unity] "Airtest IDE"를 사용하여 안드로이드 게임에서 이미지 인식을 통해 UI의 자동 테스트를 시도했습니다. - Kogane 블로그.
    [Unity] "Airtest IDE"와 "Poco"를 사용하여 Unity에서 개발한 안드로이드 게임에서 UI의 자동 테스트를 시도했습니다. - 코네 블로그.

    좋은 웹페이지 즐겨찾기