View a markdown version of this page

지원되는 기능 및 버전 - AWS Device Farm

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

지원되는 기능 및 버전

원격 액세스 세션 중에 디바이스에서 실행되는 Appium 서버의 메이저 버전을 선택할 수 있습니다. 테스트에 필요한 Appium 기능을 지원하는 버전을 선택합니다.

Device Farm Appium 엔드포인트는 몇 가지 예외를 제외하고 로컬 디바이스에서 사용하는 것과 동일한 대부분의 명령과 원하는 기능도 지원합니다. 다음 섹션에서는 지원되지 않는 기능과 명령을 나열합니다.

지원되는 Appium 서버 버전

다음 표에는 원격 액세스 세션에서 지원되는 Appium 서버 메이저 버전과 각 버전에서 지원하는 디바이스 운영 체제(OS) 버전이 나열되어 있습니다.

Appium 서버 버전 지원되는 Android 버전 지원되는 iOS 버전

3

모든 버전

15 이상

2

모든 버전

15 이상

참고

지원되는 버전 세트는 시간이 지남에 따라 변경될 수 있습니다. 이 페이지에서 현재 목록을 확인하는 것이 좋습니다.

버전 27 이상을 실행하는 iOS 디바이스에서 Appium 서버 버전을 설정해야 합니다. 이전 디바이스에서 버전 선택은 선택 사항입니다. 버전을 지정하지 않으면 Device Farm은 해당 디바이스에서 서버 버전 2를 사용합니다.

서버 버전 선택

버전을 선택하려면 요청의 appium:version 파라미터를 원하는 메이저 버전으로 값으로 설정합니다. 디바이스에서 해당 버전을 사용할 수 없는 경우 Device Farm은 요청을 거부합니다.

Console
선택한 Appium 서버 버전으로 원격 액세스 세션을 생성하려면
  1. https://console.aws.amazon.com/devicefarm에서 Device Farm 콘솔에 로그인하세요.

  2. Device Farm 탐색 패널에서 모바일 디바이스 테스트를 선택한 다음 프로젝트를 선택하세요.

  3. 프로젝트가 이미 있는 경우 프로젝트 페이지에서 선택하세요. 프로젝트를 만들려면, AWS Device Farm에서 프로젝트 생성의 지침을 따르십시오.

  4. 원격 액세스 탭에서 원격 액세스 세션 생성을 선택합니다.

  5. 사용 가능한 디바이스 목록에서 디바이스를 선택하거나 목록 상단의 검색 창을 사용하여 디바이스를 찾습니다.

  6. 세션 이름에 세션 이름을 입력하세요.

  7. (선택 사항) 애플리케이션 선택에서 자체 앱을 포함하거나 Device Farm 샘플 앱을 세션의 일부로 선택합니다. 새로 업로드된 앱 또는 이전에이 프로젝트에 업로드된 앱일 수 있습니다. 앱 업로드는 30일 후에 만료됩니다.

  8. 고급 구성의 Appium 서버 버전에서 사용할 메이저 버전을 선택합니다. 버전을 선택하지 않으면 Device Farm 콘솔은 디바이스에 대해 미리 선택된 버전을 사용합니다. 이 사전 선택한 버전은 시간이 지남에 따라 변경될 수 있습니다.

  9. 확인 및 세션 시작을 선택하세요.

AWS CLI

다음 예시에서는 선택한 Appium 서버 버전으로 원격 액세스 세션을 생성합니다.

이 예제에서는 AWS CLI v2를 사용합니다.

$ aws devicefarm create-remote-access-session \ --project-arn "arn:aws:devicefarm:us-west-2:111122223333:project:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" \ --device-arn "arn:aws:devicefarm:us-west-2::device:EXAMPLE123DEVICE456" \ --configuration '{"parameters":{"appium:version":"3"}}'
Node.js

다음 예시에서는 선택한 Appium 서버 버전으로 원격 액세스 세션을 생성합니다.

이 예제에서는 Node.js 18 이상의 JavaScript v3용 AWS SDK를 사용합니다.

import { DeviceFarmClient, CreateRemoteAccessSessionCommand } from "@aws-sdk/client-device-farm"; const client = new DeviceFarmClient({ region: "us-west-2" }); const command = new CreateRemoteAccessSessionCommand({ projectArn: "arn:aws:devicefarm:us-west-2:111122223333:project:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", deviceArn: "arn:aws:devicefarm:us-west-2::device:EXAMPLE123DEVICE456", configuration: { parameters: { "appium:version": "3" } }, }); const resp = await client.send(command);
Python

다음 예시에서는 선택한 Appium 서버 버전으로 원격 액세스 세션을 생성합니다.

import boto3 client = boto3.client("devicefarm", region_name="us-west-2") resp = client.create_remote_access_session( projectArn="arn:aws:devicefarm:us-west-2:111122223333:project:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", deviceArn="arn:aws:devicefarm:us-west-2::device:EXAMPLE123DEVICE456", configuration={"parameters": {"appium:version": "3"}}, )
Java

다음 예시에서는 선택한 Appium 서버 버전으로 원격 액세스 세션을 생성합니다.

이 예제에서는 Java v2용 AWS SDK를 사용합니다.

import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.devicefarm.DeviceFarmClient; import software.amazon.awssdk.services.devicefarm.model.CreateRemoteAccessSessionConfiguration; import software.amazon.awssdk.services.devicefarm.model.CreateRemoteAccessSessionRequest; import software.amazon.awssdk.services.devicefarm.model.CreateRemoteAccessSessionResponse; import java.util.Map; public class SelectAppiumVersionExample { public static void main(String[] args) { try (DeviceFarmClient client = DeviceFarmClient.builder() .region(Region.US_WEST_2) .build()) { CreateRemoteAccessSessionConfiguration configuration = CreateRemoteAccessSessionConfiguration.builder() .parameters(Map.of("appium:version", "3")) .build(); CreateRemoteAccessSessionRequest request = CreateRemoteAccessSessionRequest.builder() .projectArn("arn:aws:devicefarm:us-west-2:111122223333:project:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111") .deviceArn("arn:aws:devicefarm:us-west-2::device:EXAMPLE123DEVICE456") .configuration(configuration) .build(); CreateRemoteAccessSessionResponse resp = client.createRemoteAccessSession(request); } } }
Ruby

다음 예시에서는 선택한 Appium 서버 버전으로 원격 액세스 세션을 생성합니다.

require 'aws-sdk-devicefarm' client = Aws::DeviceFarm::Client.new(region: 'us-west-2') resp = client.create_remote_access_session( project_arn: "arn:aws:devicefarm:us-west-2:111122223333:project:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", device_arn: "arn:aws:devicefarm:us-west-2::device:EXAMPLE123DEVICE456", configuration: { parameters: { "appium:version" => "3" } } )

지원되는 기능

Device Farm에서 Appium 세션을 생성할 때는 로컬 디바이스와 관련된 기능을 제외하는 고유한 기능 세트를 사용하는 것이 좋습니다. Device Farm에서 지원되지 않는 특정 기능이 설정된 경우 세션 생성이 실패할 수 있습니다. 여기에는 udid 및와 같은 디바이스별 기능이 포함됩니다platformVersion. 또한 Android의 ChromeDriver 및 iOS의 WebDriverAgent와 관련된 특정 기능은 지원되지 않으며 에뮬레이터 및 시뮬레이터에서만 지원되는 기능도 지원되지 않습니다.

지원되는 명령

실제 Android 및 iOS 디바이스에서 제대로 실행되는 대부분의 Appium 명령은 Device Farm에서 예상대로 실행되며 다음과 같은 예외가 있습니다.

Appium 디바이스 명령(/appium/device)

  • install_app

  • finger_print

  • send_sms

  • gsm_call

  • gsm_signal

  • gsm_voice

  • power_ac

  • power_capacity

  • network_speed

  • shake

Appium 실행 메서드 및 스크립트(/execute)

  • installApp

  • execEmuConsoleCommand

  • fingerprint

  • gsmCall

  • gsmSignal

  • sendSms

  • gsmVoice

  • powerAC

  • powerCapacity

  • networkSpeed

  • sensorSet

  • injectEmulatorCameraImage

  • isGpsEnabled

  • shake

  • clearApp

  • clearKeychains

  • configureLocalization

  • enrollBiometric

  • getPasteboard

  • installXCTestBundle

  • listXCTestBundles

  • listXCTestsInTestBundle

  • runXCTest

  • sendBiometricMatch

  • setPasteboard

  • setPermission

  • startAudioRecording

  • startLogsBroadcast

  • startRecordingScreen

  • startScreenStreaming

  • startXCTestScreenRecording

  • stopAudioRecording

  • stopLogsBroadcast

  • stopRecordingScreen

  • stopScreenStreaming

  • stopXCTestScreenRecording

  • updateSafariPreferences