What is Monkey?
Monkey is a program that can run in the emulator or in the actual device . It sends pseudo-random user event streams (such as key input, touch input, gesture input, etc.) to the system, enabling stress testing of the application under development.
Monkey Introduction
Monkey is a command-line tool that can be run in the emulator or in the actual device. It sends a pseudo-random user event stream to the system, enabling stress testing of the application under development. Monkey includes many options, which are broadly divided into four categories:
· Basic configuration options, such as setting the number of events to try.
· Run constraint options, such as setting to test only a single package.
· The event type and frequency.
· Debugging options.
When the monkey is running, it generates events and sends them to the system. At the same time, monkey also monitors the system under test, and carries out special treatment for the following three cases:
· If Monkey is qualified to run on one or several specific packages, it will monitor and block attempts to move to other packages.
· If the application crashes or receives any runaway exceptions, the monkey will stop and error.
· If the application produces an error that the application does not respond to (application not responding), Monkey will stop and make a mistake.
According to the different levels of feedback you have selected, you can also see their execution process reports and generated events in monkey.
Basic usage of Monkey
You can start monkey by developing a command line or script on the machine. Because the monkey is running in an emulator/device environment, it must be started with the shell in its environment. You can do this by adding the ADB shell to each command, or you can enter the monkey command directly after entering the shell. The basic syntax is as follows:
$ adb shell monkey [options]
If you do not specify Options,monkey will start in a no-feedback mode and send events to all packages installed in the target environment. The following is a more typical command-line example that launches a specified application and sends 500 pseudo-random events to it:
$ adb shell Monkey-p your.package.name-v 500
Command Options Reference
Category |
Option |
Describe |
General Conventional |
--help |
Lists the simple usage. |
-V |
Each-V of the command line increases the level of feedback information. Level 0 (default) provides less information than startup prompts, test completion, and end results. Level 1 provides more detailed testing information, such as events sent individually to the activity. Level 2 provides more detailed setup information, such as the activity that was selected or unchecked in the test. |
Events Event |
-S <seed> |
The seed value of the pseudo-random number generator. If you run monkey again with the same seed value, it will generate the same sequence of events. |
--throttle <milliseconds> |
Inserts a fixed delay between events. This option slows down the execution speed of the monkey. If this option is not specified, the monkey will not be delayed and the event will be produced as soon as possible. |
--pct-touch <percent> |
Adjust percentage of touch events. (Touch events is a down-up event in a and the screen.) Adjusts the percentage of touch events (a touch event is a down-up event that occurs in a single location on the screen). |
--pct-motion <percent> |
Adjusts the percentage of action events (an action event consists of a down event, a series of pseudo-random events, and an up event somewhere on the screen). |
--pct-trackball <percent> |
Adjusts the percentage of track events (the trajectory event consists of one or more random movements, sometimes accompanied by clicks). |
--pct-nav <percent> |
Adjusts the percentage of the basic navigation event (the navigation event consists of the up/down/left/right from the direction input device). |
--pct-majornav <percent> |
Adjust the percentage of primary navigation events (these navigation events usually trigger actions in the graphical interface, such as: 5-way keyboard, Fallback button, menu button) |
--pct-syskeys <percent> |
Adjusts the percentage of the System key event (these keys are usually reserved for use by the system, such as home, back, Start call, End call, and volume control keys). |
--pct-appswitch <percent> |
Adjusts the percentage of startup activity. In a random interval, monkey executes a startactivity () call as a way to maximally cover all activity in the package. |
--pct-anyevent <percent> |
Adjusts the percentage of other types of events. It includes all other types of events, such as keystrokes, other infrequently used device buttons, and so on. |
Constraints Constraint restrictions |
-P <allowed-package-name> |
If you specify one or several packages with this parameter, monkey will only allow the system to start the activity in those packages. If your application also needs to access activity in other packages (such as choosing to take a contact), those packages need to be specified at the same time. If you do not specify any packages, monkey will allow the system to start the activity in all packages. To specify multiple packages, you need to use multiple-p options, and each-p option can be used for only one package. |
|
Using the monkey process
In general, it is relatively simple to test with monkey, but it is necessary to do some more complex preparation work. The following is a detailed test procedure (very simple OH), the content is based on the already configured ADB environment (if this part is not clear, please first configure the environment, this does not describe).
1, ADB connected to Android test equipment.
2. Determine the PackageName of the application you want to test.
3. Use monkey to send a test command.
Detailed steps
The steps are really simple. The reader is not guaranteed to understand how to complete the above steps, and here is how to do each step.
1, ADB connected to Android test equipment.
If you're using an emulator, it's usually connected to the ADB after it's started. Both ways can be used for real machines:
One: use USB to connect the Android device to the PC and then install the driver (use pea pods if you are not looking for a driver).
Mode two: First of all make sure that your Android has successfully root, then you can use WiFi wireless connection. ① download a wifi adb app on your Android device; ② open wifi on Android adb;③ in the command line on the PC, enter the part of the WiFi adb display: ADB connect 192.168. x.x, the command line displays connected 192.168.x.x so the connection is OK.
I prefer the way two, so that you do not have to download the driver (mainly driven a lot of instability), and do not hurt the battery. Long time plugging on the USB is always bad for the battery. Just this way the device may need to be re-connected once it sleeps.
2. Determine the PackageName of the application you want to test.
First of all, the method described here is generic, and other methods on the net to get PackageName is not universal (because he is based on root, I do not guarantee that your device is root).
① on your Android device, click on the device you want to test, and then you don't have to operate the device.
② command Line input on PC: ADB logcat>d:/log.txt *:i
Here d:/log.txt you can change to other paths, but make sure you do not have this file in the path, otherwise your previous files have been changed, must be careful.
③ Press CTRL + C first to stop (to avoid excessive new information). Open the file that you just d:/log.txt. From the bottom of the file, look for information in the following format
I/activitymanager (number): Displayed Package Name/class Name: + Digital ms
For example, my information is as follows:
I/activitymanager (272): Displayed com.vane/.act. Actlauncher: +315ms
But you may find that there is a lot of information in this format, which is exactly what you need, and if you do it exactly as you just did, then it's probably the bottom piece of information, even if it's not so sure it's one of the next few messages, which requires you to identify it according to your application.
④ write down the package name you just got, the package named "Com.vane" in the example. It will be used immediately.
3. Use monkey to send a test command.
This step is relatively simple. command-line input directly on the PC: adb shell monkey-p com.vane-v 50
Note: The Com.vane in the above command is the package name obtained previously, the parameters in the command you can refer to the parameters in the above document to modify.
4. Observe the Android device until monkey stops.
5, if the application crashes, it is good to analyze the information in the monkey.
Summarize
The use of monkey is quite simple, but it does not play a small role in testing, it is worth using.
Android Test command line tool monkey using the tutorial "Go"