Appium을 사용하여 여러 기기에서 동일한 스크립트를 실행하는 방법

모바일 애플리케이션의 자동화 테스트는 이미 오래전부터 시작되었습니다. 앱에 대한 자동화된 테스트 스위트를 가지는 것이 초기에는 럭셔리를 느끼곤 했지만, 지금은 DevOps의 필수적인 부분이 되었습니다.

자동화 테스트의 이점은 많지만, 다음 세 가지가 가장 중요합니다:

  • 테스트 커버리지 증가: 자동화 테스트를 통해 더 적은 시간 안에 더 많은 기능을 테스트할 수 있습니다. 이는 테스트 예산을 늘리지 않고 테스트 커버리지를 증가시킬 수 있다는 것을 의미합니다.
  • 인간 오류의 위험성 감소: 자동화된 테스트는 수동으로 앱을 테스트할 때 엣지 케이스를 놓치거나 다른 오류를 내는可能性가 더 적습니다.
  • 더 빨리 피드백: 자동화된 테스트는 수동 테스트보다 훨씬 빨리 실행할 수 있습니다. 이는 앱에 대한 피드백을 더 빨리 받을 수 있으며, 이는 문제가 큰 문제가 되기 전에 해결할 수 있게 도울 수 있습니다.

모바일 애플리케이션 자동화 테스트는 더 빨리 더高质量的 앱을 출시하는 데 도움이 되는 유价值的 과정입니다.

하지만 여기서 질문이 rises: 你是 足够的 기기를 涵蓋하고 있으며 그 quality를 위cuts를 하고 있을까? 単独 기기나 다양한 기기에 应用程序을 테스트하는 것은 기기 특성적인 문제, 다양한 해상도에서 UI 문제, 다양한 OS 버전에서 기능적인 문제를 일으키게 될 수 있습니다.

同 scripts를 다양한 기기에서 실행하는 이유가 무엇?

여러 장치에서 응용 프로그램을 테스트는 QA 과정에서 중요한 단계입니다. 우리의 응용 프로그램이 다른 장치, OS 버전, 화면 크기에서 작동하는지 확신해야 합니다.

응용 프로그램을 여러 장치에서 테스트하는 것이 중요한 이유가 많습니다. 가장 중요한 이유 중 하나는 사용자가 같은 앱에 접근할 때 다른 유형의 장치를 사용할 수 있기 때문입니다. 사용자가 앱에 접근할 때 어떤 장치를 사용할지 예측할 수 없기 때문에, 우리는 그것이 작동하는지 확실하게 만들어야 합니다. 여러 장치에서 자동화 스크립트를 쉽게 실행할 수 있도록 보장하기 위해입니다.

Appium을 사용하여 여러 장치에서 같은 스크립트를 실행하는 방법?

Appium 스크립트를 실행할 때 우리는 Appium 기원능력을 전달해야 합니다. 그러나 이에는 platformName, platformVersion, deviceName이 포함됩니다.

{
"platformName": "iOS",
"platformVersion": "11.0",
"deviceName": "iPhone 9",
"automationName": "XCUITest",
"app": "/path/to/my.app"
}

Copied

다른 장치에 yours test script를 실행하려면, 우리는 자신의 test script의 желаемые 기능을 변경해야만 하며, 그렇게 해당 특정 장치에 test script를 실행할 수 있습니다. 다른 장치에서 test script를 실행하기 위해 자신의 test script를 바꿀 필요가 없습니다. 그러나, Android과 iOS 장치에서 test script를 실행하는 것과 달리, Android과 iOS 장치에서 element locators가 다르게 나올 수 있습니다. 하지만, Android 또는 iOS 장치에 为目标으로 写得 test script는 desired capabilities를 변경하여 같은 OS를 가진 모든 장치에서 실행할 수 있습니다.

다양한 장치 관리 도전

자신의 script를 다양한 장치에 실행하는 것은 자동화 테스트 과정에서 쉽게 할 수 있는 것이지만, 이러한 장치를 관리하고 여러 장치를 가지는 것은 자동화 과정에서 가장 힘들고 비용이 많은 일입니다. iPhone에 대해서는, iPhone6에서 iPhone13까지가 사용자들이 iOS11에서 iOS16로 사용하는 것을 생각하십시오. 그리고 Android의 경우, 이러한 숫자가 매우 커지었습니다. 모든 团队은 시장에서 나오는 다양한 OS 버전의 인기 있는 장치를 관리하거나 소유할 수 있지는 않습니다.

에뮬레이터/시мулятор 대신

우선 이 문제를 해결하기 위해 생각나는 것은 다양한 장치용 에뮬레이터와 시뮬레이터의 사용입니다. 그러나 에뮬레이터/시뮬레이터上进行하는 테스트는 실제 기기上进行하는 테스트와 같지 않습니다. 시뮬레이터와 에뮬레이터는 모방을 근접시키는데 있어 효과적입니다만, 실제 기기와 같은 수준으로 작동시키는 것은 불가능합니다. 이는 에뮬레이터가 실제 기기에서 수행되는 모든 환경 요소, 기능, 또는 사용자 동작을 신호할 수 없기 때문입니다. 실제 기기의 장점은 이름 그대로입니다. 실제 물리적 기기上进行의 테스트는 사용자가 기기를 操作하는 방식과 동일하게 테스트하는 것을 의미합니다.

실제 기기上进行 테스트: 장점

여기서 BrowserStack가 기기 혼돈을 해결하는 살사가 되어 옵니다. BrowserStack App AutomateAppium을 사용하여 응용 프로그램을 자동으로 테스트할 수 있는 다양한 OS 버전의 기기를 모두 제공합니다. BrowserStack를 프레임워크에 쉽게 통합하여 다양한 기기에서 스크립트를 테스트할 수 있습니다.

BrowserStack를 사용하여 여러 기기에 동시에 Appium 스크립트 실행하기

BrowserStack을 사용하여 다양한 기기에 Unit 테스트 스크립트를 실행하기は App Automate를 사용하여 매우 간편하게 이뤄집니다. 기존 구성을 변경하기 위해 몇 가지 단계를 이동하면 됩니다. 이러한 변경은 현재의 자동 테스트 도구를 BrowserStack에 통합시키는 것입니다.

Schritt 2: .apk 또는 .ipa 파일을 BrowserStack에 업로드하십시오. 대시보드에서 ‘Your App upload’ 탭을 사용하여 이를 하거나, BrowserStack API를 사용하여 자동으로 업로드 할 수 있습니다. 应用程序 업로드 후에는 应用程序 주소가 나타집니다.

{
"app_url":"bs://f7c874f21852ba57957a3fdc33f47514288c4ba4"
}

Copied

Step 3:
테스트할 어플리케이션을 app 기능을 사용하여 지정합니다. app_url 값을 어플리케이션 업로드(Step 2) 시 반환 받은 것을 사용하여 이 기능을 설정합니다.

  • 테스트할 실제 안드로이드 또는 iOS 기기를 device 기능을 사용하여 지정합니다.
  • 앱리움 드라이버를 초기화하려면, BrowserStack 접근 자격 증명(단계 1에서 언급)과 함께 다음과 같이 remote BrowserStack URL을 사용하세요 :

https://YOUR_USERNAME:[email protected]/wd/hub

이렇게 보입니다:

userName = "YOUR_USERNAME"
accessKey = "YOUR_ACCESS_KEY"
desired_caps = { "build": "Android",
"device": "Samsung Galaxy S8 Plus",
platformVersion": "11.0",
"app": "<app_url>"
}
driver = webdriver.Remote("https://" + userName + ":" + accessKey +
"@hub-cloud.browserstack.com/wd/hub", desired_caps)

Copied

이렇게 하면 앱리움 스크립트가 클라우드 상의 BrowserStack 실제 기기에서 실행됩니다.

 디바이스 이름과 플랫폼 버전을 desired caps에서 변경하면 간단하게 디바이스를 변경할 수 있습니다. BrowserStack에서는 병렬로 테스트를 실행하여 자동화를 더 빨리 완료할 수 있습니다. BrowserStack는 디버깅을 위한 비디오, 디바이스 로그, 네트워크 로그, 앱리움 로그를 제공하며, 대시보드에서 테스트 실행을 확인할 수 있습니다. BrowserStack은 다중 기기에서 테스트 스크립트를 실행하는 데 도움을 줄 수 있으며, 이러한 기기를 직접 관리할 필요는 없습니다.

결론으로,

BrowserStack의 App Automate는 다양한 실제 장치에 대한 테스트를 간편하게 합니다. Desired Capabilities을 간단하게 변경하면 사용자는 천하의 장치에 대한 테스트를 실행하고 자신의 应用程序이 릴리스 준비 상태인지 구체적으로 deterine할 수 있습니다. QA 团队은 결과 대시보드를 사용하여 직접 이슈를 찾고 디버깅할 수 있는 것을 발견할 것입니다.

Appium 테스트를 무료로 실행하세요

Source:
https://www.browserstack.com/guide/how-to-run-same-script-in-multiple-devices-using-appium