목차
1. Monkey 소개
2. Monkey의 기본 사용법
3. Monkey 테스트의 예
4、使用monkey help 命令查看命令参数
5. Monkey 테스트 결과 분석
1. 예비 분석 방법
일반적인 문제 원숭이 명령의 용도는 무엇입니까?

원숭이 명령의 용도는 무엇입니까?

Feb 08, 2021 pm 05:23 PM

monkey는 Android의 명령줄 도구입니다. Monkey 명령은 의사 무작위 사용자 이벤트 스트림(예: 키 입력, 터치 스크린 입력, 제스처 입력 등)을 시스템에 보내 개발 중인 애플리케이션의 스트레스 테스트를 구현합니다. .

원숭이 명령의 용도는 무엇입니까?

이 튜토리얼의 운영 환경: Windows 7 시스템, Dell G3 컴퓨터.

1. Monkey 소개

Monkey는 SDK에 포함된 도구입니다. Monkey는 에뮬레이터나 실제 장치에서 실행할 수 있는 Android의 명령줄 도구입니다. 개발 중인 애플리케이션의 스트레스 테스트를 구현하기 위해 의사 무작위 사용자 이벤트 스트림(예: 키 입력, 터치 스크린 입력, 제스처 입력 등)을 시스템에 보냅니다. 원숭이 테스트는 소프트웨어의 안정성과 견고성을 테스트하는 빠르고 효과적인 방법입니다.

이 도구는 스트레스 테스트를 수행하는 데 사용됩니다. 그런 다음 개발자는 Monkey가 인쇄한 로그와 시스템에서 인쇄한 로그를 결합하여 테스트의 문제를 분석합니다.

Monkey 테스트의 특징:

Monkey 테스트에서는 모든 이벤트가 누구의 주관성도 없이 무작위로 생성됩니다.

1. 테스트 대상은 애플리케이션 패키지일 뿐이며 특정 제한 사항이 있습니다.

2. Monky 테스트에서 사용되는 이벤트 데이터 스트림은 무작위이며 사용자 정의할 수 없습니다.

3. MonkeyTest 개체, 이벤트 번호, 유형, 빈도 등을 설정할 수 있습니다.

2. Monkey의 기본 사용법

기본 구문은 다음과 같습니다.

$ adb shell Monkey [옵션]

옵션을 지정하지 않으면 Monkey는 비피드백 모드로 시작하여 누구에게나 이벤트를 보냅니다. 대상 환경에 설치 . 다음은 지정된 애플리케이션을 시작하고 500개의 의사 무작위 이벤트를 전송하는 보다 일반적인 명령줄 예입니다.

$ adb shell Monkey -p your.package.name -v 500
Android 자동 테스트 도구 사용 Monkeyrunner가 애플리케이션을 시작할 때 , 테스트 중인 프로그램의 패키지 이름과 시작된 활동을 입력해야 합니다. 애플리케이션 패키지 이름과 항목 활동 이름을 보는 방법에는 두 가지가 있습니다.

방법 1: aapt 사용 //aapt는 함께 제공되는 도구입니다. sdkbuilds-tools 디렉터리

1에 있는 SDK를 예로 들어 ES 파일 브라우저를 사용하여 명령줄에서 aapt.exe 디렉터리로 전환하고 다음을 실행합니다. aapt dump badging E:apkes3.apk

2.

참고: android sdk 디렉터리에서 aapt.exe를 검색하여 찾으세요. 그렇지 않은 경우 apktool을 다운로드할 수 있습니다.

3. Monkey 테스트의 예

이 예를 통해 우리는 Monkey 테스트의 단계와 Monkey로 테스트할 수 있는 애플리케이션을 아는 방법을 이해할 수 있습니다.

Windows에서(참고: 2~4단계는 테스트할 수 있고 생략할 수 있는 애플리케이션 패키지를 확인하는 것입니다):

1 eclipse를 통해 Android 에뮬레이터를 시작합니다.

2 보려면 명령줄에 adb devices를 입력하세요. 기기 연결 상태

C:문서 및 설정관리자>adb devices

연결된 장치 목록

emulator-5554 device

3. 장치가 연결되어 있다는 전제하에 명령줄에 adb shell을 입력하여 쉘 인터페이스

C:Documents and SettingsAdministrator>adb shell

#

4. data/data 폴더에서 애플리케이션 패키지를 봅니다. 참고: 테스트할 수 있는 애플리케이션 패키지는 모두 이 디렉토리에 있습니다.

C:Documents and SettingsAdministrator>adb shell

# ls data/data

ls data/data

5. MonkeyTest

#monkey -p com.android.calculator2 -v 500

를 수행하려면 com.android.calculator2를 개체로 사용하세요. -p 개체 패키지를 나타냅니다. -v는 피드백 정보 수준을 나타냅니다.

실행 프로세스 중에 에뮬레이터의 응용 프로그램은 지속적으로 화면을 전환합니다.

선택한 다양한 수준의 피드백 정보에 따라 실행 프로세스 보고서와 Monkey에서 생성된 이벤트도 볼 수 있습니다.

4、使用monkey help 命令查看命令参数

C:Userschenfenping>adb 쉘 원숭이 -help
사용법: 원숭이 [-p ALLOWED_PACKAGE [-p ALLOWED_PACKAGE] ...]
[-c MAIN_CATEGORY [-c MAIN_CATEGORY] ...]
[--ignore-crashes] [--ignore-timeouts]
[ --ignore-security-Exceptions]
[--monitor-native-crashes] [--ignore-native-crashes]
[--kill-process-after-error] [--hprof]
[--pct- 터치 PERCENT] [--pct-motion PERCENT]
[--pct-trackball PERCENT] [--pct-syskeys PERCENT]
[--pct-nav PERCENT] [--pct-majornav PERCENT]
[--pct -appswitch PERCENT] [--pct-flip PERCENT]
[--pct-anyevent PERCENT] [--pct-pinchzoom PERCENT]
[--pkg-blacklist-file PACKAGE_BLACKLIST_FILE]
[--pkg-whitelist-file PACKAGE_WHITELIST_FILE ]
[--wait-dbg] [--dbg-no-events]
[--setup 스크립트 파일] [-f 스크립트 파일 [-f 스크립트 파일] ...]
[--port 포트]
[-s SEED ] [-v [-v] ...]
[--throttle MILLISEC] [--randomize-throttle]
[--profile-wait MILLISEC]
[--device-sleep-time MILLISEC]
[-- 무작위 스크립트]
[--script-log]
[--bugreport]
[-- periodic-bugreport]
COUNT

1 参数: -p

用于约束限数此参数指定一个或多个包(패키지, 即앱).指定包之后,monkey将只允许系统启动指定的APP, 如果不指定包,将允许系统启动设备中的所有APP.

*一个包: adb 쉘 원숭이 -p cn .emoney.acg 10

* 指定多个包:adb 쉘 원숭이 -p cn.emoney.acg –p cn.emoney.wea -p cn.emoney.acg 100

* 不指定包:adb shell Monkey 100

2 参数: -v

用于指反馈信息级别(信息级别就是日志详细程degree),总共分3个级别,分别对应的参数如下表所示:

日志级别 Level0

示例 adb shell Monkey -p cn.emoney.acg –v 100

说明缺省值,仅提供启动提示、测试完成和最终结果等少weight信息

日志级别 Level 1

示例 adb shell Monkey -p cn.emoney.acg –v -v 100

说明提供较为详细的日志,包括每个发送到Activity事件信息

日志级别 레벨 2

示例 adb shell Monkey -p cn.emoney.acg –v -v –v 100

说明最详细的日志,包括了测试中选中/未选中的Activity信息

3参数: -s

사용 于指정伪随机数生成器的seed值,如果seed상동,则两次Monkey测试所产生的事件序列也次同的.

Monkey 测试1:adb shell Monkey -p cn.emoney.acg -s 10  100

Monkey 测试2:adb 쉘 원숭이 -p cn.emoney.acg –s 10 100…序列)是一样的。

4 参数: --throttle< | 5000 100

5 参数: --ignore-crashes

apply即使应用程序崩溃,Monkey依然会发送事件,直到事件计数完成。

adb shellmonkey -p cn.emoney.acg --ignore-crash 1000

测试过程中即使程序崩溃,Monkey依然会继续发送事件直到事件数目达到1000为止

adb shellmonkey -p cn.emoney.acg 1000

测试过程中,如果acg程序崩溃|使用此参数,即使应用程序发生ANR错误,Monkey依然会发送事件,直到事件计数完成。


adb shellmonkey -p cn.emoney.acg --ignore-timeouts 1000

7 参数: --ignore-security-Exceptions

用于指정当应용程序发生许可错误时(如证书许可,网络许可等),Monkey是否停止运行。如果使用此参数,即使应用程序发生许可错误,Monkey依然会发送事件,直到事件计数完成。

adb shellmonkey -p cn.emoney.acg --ignore-security-Exception 1000

8 매개변수: --kill-process-after-error

는 오류 발생 시 애플리케이션을 중지할지 여부를 지정하는 데 사용됩니다. 이 매개변수를 지정하면 애플리케이션에 오류가 발생하면 애플리케이션 실행이 중지되고 현재 상태가 유지됩니다

(참고: 애플리케이션은 오류가 발생한 상태만 유지되며 시스템은 애플리케이션 프로세스를 종료하지 않습니다. ).

adb shellmonkey -p cn.emoney.acg --kill-process-after-error 1000

9 매개변수: --monitor-native-crashes

는 애플리케이션을 충돌시키는 네이티브 코드를 모니터링하고 보고할지 여부를 지정하는 데 사용됩니다.

adb shellmonkey -p cn.emoney.acg --monitor-native-crashes 1000

10 매개변수: --pct-{+event Category}{+event Category Percentage}

는 각 이벤트 범주의 수와 백분율을 지정하는 데 사용됩니다(Monkey 이벤트 시퀀스에서, 이 유형의 이벤트는 전체 이벤트 수에 대한 백분율로 표시됨)
예:
--pct-touch{+percent}
터치 이벤트의 백분율을 조정합니다(터치 이벤트는 발생하는 다운업 이벤트입니다. 화면의 단일 위치에서 )

adb shell Monkey -p cn.emoney.acg --pct-touch 10 100

--pct-motion {+percentage}
액션 이벤트의 비율을 조정합니다(action events는 화면 어딘가의 다운 이벤트, 일련의 의사 무작위 이벤트, 및 up 이벤트로 구성)

adb shell Monkey -p cn.emoney.acg --pct-motion 20 1000

--pct-trackball{+percent}
트랙 이벤트의 비율을 조정합니다(트랙 이벤트는 하나 또는 여러 개의 무작위 움직임으로 구성되며 때로는 클릭이 동반되기도 함)

adb 쉘 원숭이 -p cn.money.acg --pct-trackball 30 1000

--pct-nav {+percentage}

"기본" 탐색 이벤트의 비율을 조정합니다(탐색 이벤트는 방향 입력 장치의 위/아래/왼쪽/오른쪽으로 구성됨)

adb 쉘 원숭이 -p cn.emoney.acg --pct-nav 40 1000

--pct-majornav {+percentage}
"기본" 탐색 이벤트의 비율을 조정합니다(이러한 탐색 이벤트는 일반적으로 그래픽 인터페이스에서 작업을 트리거합니다. 예: 5의 중간 키 -방향 키보드, 뒤로 버튼, 메뉴 버튼)

adb 쉘 원숭이 -p cn.emoney.acg --pct-majornav 50 1000

7. Monkeylog 출력

monkey를 실행하거나 프로그램 로그를 캡처하고 내보내려는 경우 때때로 다음 메시지가 표시됩니다: D:monkeytest.txt를 만들 수 없습니다: 읽기 전용 파일 시스템

왜 때로는 그럴 수 있고 때로는 그렇지 않습니까?

나중에 보니 제 사용 습관과 다르다는 걸 한 번은 먼저 adb 쉘에 들어가서 명령어를 사용하고, 다른 때는 직접 명령어를 입력하기도 하더군요.

adb 쉘에 진입한 후 명령어를 사용하면 실패합니다~

올바른 방법: 쉘을 종료하거나 명령어를 실행하기 전에 쉘에 들어가지 마세요

C:Documents and SettingsAdministrator>adb shell Monkey -p package name

-v 300 >e:text.txt

adb shell을 입력하는 것은 파일 생성 권한 없이 Linux의 루트를 입력하는 것과 같습니다~

5. Monkey 테스트 결과 분석

1. 예비 분석 방법

Monkey 테스트에서 오류가 발생한 후 일반적인 오류 확인 단계는 다음과 같습니다.

1. Monkey에서 오류가 발생한 위치를 찾습니다.

2. 오류가 발생하기 전에 조치를 취하고 수동으로 조치를 실행합니다

3. 위 단계를 찾을 수 없는 경우 이전에 실행한 원숭이 명령을 사용하여 다시 실행할 수 있습니다. 주의할 점은 시드 값이 동일해야 한다는 것입니다.-Reproduction

일반적인 테스트 결과 분석:

1 , ANR 문제: 로그에서 "ANR" 검색

2. 충돌 문제: 로그에서 "Exception" 검색 강제 종료

더 많은 관련 글을 보려면 PHP를 방문하세요. 중국사이트! !

위 내용은 원숭이 명령의 용도는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)