Monkey is a command-line tool provided by the Android SDK that can be easily and conveniently run on any version of the Android emulator and physical device. Monkey will send a pseudo-random stream of user events for the app to do stress testing
Reading Table of Contents
- Environment construction
- What is Monkey
- What monkey used to do?
- Monkey Program Introduction
- Monkey Architecture
- Monkey weakness
- Monkey parameter Daquan
- Introduction to basic parameters of Monkey command
- Monkey instance
- Monkey View Package Name
- Monkey Log Analysis
- Must pay attention to crash
Environment construction
Install the Android SDK and configure environment variables
Http://pan.baidu.com/s/1jIlifbS
What is Monkey
As the name suggests, Monkey is a monkey, monkey test, just like a monkey, in front of the computer, knock on the keyboard in the test. Monkeys don't know anything, they just knock.
Through the monkey program to simulate the user touch screen, sliding trackball, buttons and other operations to the device on the test of the program, the test program how long time will occur abnormal
What monkey used to do?
Monkey is primarily used for automated pressure test gadgets for Android, the main purpose of which is to test whether the app will crash.
Monkey Program Introduction
(1) The Monkey Program is brought by the Android system, written in Java astonished, and stored in the Android file system:/system/framework/monkey.jar;
(2) The Monkey.jar program is a shell script called "monkey" to launch execution, the shell script in the Android file system is stored in the path:/system/bin/monkey;
(3) Monkey command start mode:
A) can be performed through the PC cmd window: adb shell Monkey {+ command parameters} for monkey testing
b the ADB shell enters the Android system on the PC and performs monkey testing by executing monkey {+ command parameters}
C Execute the monkey command directly on the Android or emulator to install the Android terminal emulator on the Android machine
Monkey Architecture
Monkey is run on the device or emulator and can be run off the PC (the common practice is to use monkey as a test tool for sending random key messages like applications to be tested.) Verify that the application being tested will flash or crash in front of these random inputs
Monkey weakness
Monkey Although the key message can be sent according to a specified command script, it does not support conditional judgment, nor does it support reading the information of the interface to be tested to perform the validation operation.
Monkey parameter Daquan
Introduction to basic parameters of Monkey command
-P < allowable list of package names >
Specify one or more packages with this parameter. After the package is specified, monkey will only allow the system to start the specified app. If you do not specify a package, Monkey will allow the system to start all the apps in the device.
Specify a package: adb shell monkey-p com.shjt.map 100
Specify multiple packages: adb shell monkey-p fishjoy.control.menu–p com.shjt.map 100
-V
To specify the level of feedback information (information level is the degree of detail of the log), a total of 3 levels, the corresponding parameters are as shown in the following table:
Level 0:adb Shell monkey-p com.shjt.map-v 100//default, only provides a small amount of information such as startup prompts, test completion, and final results
Level 1:adb Shell monkey-p com.shjt.map-v-V 100//provides more detailed logs, including each event information sent to the activity
Level 2:adb Shell monkey-p com.shjt.map-v-v-v 100//The most detailed log, including selected/unchecked activity information in the test
-S (random number of seeds)
Specifies the seed value of the pseudo-random number generator, and if seed is the same, the sequence of events generated by the two monkey test is the same. Example:
Monkey test 1:adb Shell monkey-p com.shjt.map–s 10 100
Monkey test 2:adb Shell monkey-p com.shjt.map–s 10 100
--throttle < ms >
Specifies the time delay between the specified user action (that is, the event), in milliseconds, and if this parameter is not specified, monkey will generate and send the message as soon as possible. Shown
Example: adb shell monkey-p com.shjt.map--throttle 3000 100
Monkey instance
Performance test of Shanghai public transport app with monkey command
adb shell monkey–p com.shjt.map–throttle 100–pct-touch 50–pct-motion 50–v–v 1000 >c:\monkey.txt
Monkey View Package Name
Install APK package name Viewer in mobile phone
Androidmanifest.xml file view under the source code
AAPT Command View
Monkey Log Analysis
Normally, if the monkey test completes successfully, at the end of the log, it prints out the current number of execution events and the time spent;//Monkey finished representative execution completed \
Unusual situation
After the monkey test error, the general analysis steps
Look at the Monkey log (note the first Swith and exception information, etc.)
1. The program is not responding to the problem: in the log search "ANR"
2. Crash problem: Search for "Exception" in the log (if null pointer appears, nullpointerexception) there must be a bug
Monkey execution interrupt, at the end of log can also see the current execution times
Must pay attention to crash
Although there are some flaws in the monkey test, we can not accurately know the recurrence steps, monkey test appears nullpointexception, are available in the user's use, when it is only a matter of time
Theoretically, all monkey crash need to be repaired before they are released.
The above is on the Android Monkey pressure test article collation, follow-up continue to add, thank you for your support!