执行monkey APK 制作
一.主布局文件 activity_main.xml
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<EditText
android:id="@+id/edit_monkeyPackage"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/monkeypackage"
android:maxLines="" >
</EditText> <EditText
android:id="@+id/edit_monkeytime"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/monkeytime"
android:maxLines="" >
</EditText> <EditText
android:id="@+id/edit_monkeycount"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/monkeycount"
android:maxLines="" >
</EditText>
<Button
android:id="@+id/button_submit"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/button_submit" /> <TextView
android:id="@+id/TextView_01"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/TextView_01" /> </LinearLayout>
二. res/values/strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">MonkeyTest</string>
<string name="action_settings">Settings</string>
<string name="hello_world">Hello world!</string>
<string name="monkeypackage">Input monkeyPackage</string>
<string name="monkeytime">Input monkeyTime</string>
<string name="monkeycount">Input monkeyCount</string>
<string name="button_submit">Submit</string>
<string name="TextView_01">Log Out</string> </resources>
三.主Activity文件 MainActivity.java
package com.example.runmonkeytest; import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader; import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.Button;
import android.widget.EditText; import android.widget.TextView;
import android.widget.Toast; @SuppressLint("NewApi")
public class MainActivity extends Activity { private EditText monkeyPackage;
private EditText monkeyTime;
private EditText monkeyCount;
private TextView LogOut; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main); monkeyPackage = (EditText) findViewById(R.id.edit_monkeyPackage);
monkeyTime = (EditText) findViewById(R.id.edit_monkeytime);
monkeyCount = (EditText) findViewById(R.id.edit_monkeycount);
LogOut = (TextView) findViewById(R.id.TextView_01);
Button button1 =(Button) findViewById(R.id.button_submit); button1.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// Toast.makeText(MonkeyTestActivity.this, "You clicked Button Submit", Toast.LENGTH_SHORT).show();
String monkeyPackageContext = monkeyPackage.getText().toString();
String monkeyTimeContext = monkeyTime.getText().toString();
String monkeyCountContext = monkeyCount.getText().toString(); if(monkeyPackageContext.isEmpty()){
Toast.makeText(MainActivity.this, "input packageName", Toast.LENGTH_SHORT).show();
}else if(monkeyTimeContext.isEmpty()){
Toast.makeText(MainActivity.this, "input pauseTime", Toast.LENGTH_SHORT).show();
}else if(monkeyCountContext.isEmpty()){
Toast.makeText(MainActivity.this, "input Count", Toast.LENGTH_SHORT).show();
}else{
int T = Integer.parseInt(monkeyTimeContext) ;
int C = Integer.parseInt(monkeyCountContext);
String acctionText = "monkey -p "+monkeyPackageContext+" --throttle "+
T + " -s 1000 " + " -v -v -v " + C;// + ">/sdcard/aaaaaa_monkey.log"; Log.d("MonkeyTestActivity", "Toast");
Log.d("MonkeyTestActivity", acctionText);
Toast.makeText(MainActivity.this, acctionText, Toast.LENGTH_SHORT).show(); do_exec(acctionText);
Log.d("MonkeyTestActivity", "Toast2");
} }
}
);
} protected String do_exec(String cmd) {
String s = "\n";
try {
Process p = Runtime.getRuntime().exec(cmd);
BufferedReader in = new BufferedReader(
new InputStreamReader(p.getInputStream()));
String line = null;
while ((line = in.readLine()) != null) {
s += line + "\n";
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
LogOut.setText(s);
return cmd; } }
四.AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.runmonkeytest"
android:versionCode=""
android:versionName="1.0" > <uses-permission android:name="android.permission.ACCESS_SUPERUSER"/>
<uses-permission android:name="andorid.permission.WRITE_EXTERNAL_STORAGE"/> <application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.runmonkeytest.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<uses-sdk
android:minSdkVersion=""
/> </manifest>
执行monkey APK 制作的更多相关文章
- 对当前目录下的所有APK包执行Monkey测试,并自动保存Crash日志
适用平台:Android,代码几个月前写的,有问题请及时回复.本代码会依次安装当前目录下的APK安装包,之后执行Monkey测试,然后卸载掉换下一个,继续重复执行,如出现Cransh,会自动保存在当前 ...
- IOS操作系统上执行monkey测试
IOS操作系统上执行monkey测试 IOS操作系统不像Android系统那么方便,各种限制也比较多,目前我的建议还是直接在模拟器上执行monkey测试.如果需要在真机上面执行,可以参考文档: htt ...
- dofile执行ANDROID APK里面的文件
我使用dofile执行APK文件是不行的,比如 dofile("assets/res/flist")只能先拷贝到writablePath然后再dofile拿到数据后再清除这个临时文 ...
- Android 使用DexClassLoader要执行其他apk方法
Android在apk文件dex文件是java编译出来.class次打包,当然在打包之前会利用自己的协议做一些数据处理,比如优化函数表和变量表.在java程序中是使用classloader来载入这些编 ...
- monkey测试跑多个apk|monkey命令
1.如何跑多个apk的monkey? 黑名单:执行除了黑名单中以外的apk: 白名单:只执行在白名单中的apk. 黑名单的设置方法: a.创建一个名称为blacklist的txt文档,在文件中输入应用 ...
- 如何保存不连着电脑跑monkey?如何跑多个APK的monkey?
哈喽,大家有没有遇到用真机跑monkey的时候,跑到一半结果小手一抖不小心把线碰掉了,结果报告就没获取到啦~ 今天就来解决这个问题 1.如何保存不连着电脑跑monkey? 1).输入命令进入shell ...
- Android插件化开发---执行未安装apk中的Service
欢迎各位增加我的Android开发群[257053751] 假设你还不知道什么叫插件化开发.那么你应该先读一读之前写的这篇博客:Android插件化开发,初入殿堂 上一篇博客主要从总体角度分析了一下 ...
- 老李推荐:第5章7节《MonkeyRunner源码剖析》Monkey原理分析-启动运行: 循环获取并执行事件 - runMonkeyCycles
老李推荐:第5章7节<MonkeyRunner源码剖析>Monkey原理分析-启动运行: 循环获取并执行事件 - runMonkeyCycles poptest是国内唯一一家培养测试开 ...
- Android APP压力测试(二)之Monkey信息自动收集脚本
Android APP压力测试(二) 之Monkey信息自动收集脚本 前言: 上一篇Monkey介绍基本搬抄官方介绍,主要是为了自己查阅方便.本文重点介绍我在进行Monkey时如何自动收集相关信息 ...
随机推荐
- Git常用命令及使用,GitLab/GitHub初探,Git/Svn区别
Git安装配置及常用命令 0 Git本地分支管理 1 Git远程分支管理 2 Git Tag标签管理 3 Git Log日志 4 其它高级命令 5 常规使用及介绍 6 角色权限 7 分支定义 8 一般 ...
- XML文档的简易增删查改
dom4j解析一.利用dom4j操作元素节点 1.查询第一本书的书名,并输出到控制台 2.给第一本书添加一个特价节点, 并修改第一本书的售价节点的内容为19.8元 3.删除第二本书的作者节点二.利用d ...
- python(列表2)
1.remove(删除指定值的元素) x = ['to','be','or','not','to','be'] x.remove('be') x ['to','or','not','to','be'] ...
- 《程序设计入门——C语言》翁恺老师 第四周编程练习记录
1 奇偶个数(5分) 题目内容: 你的程序要读入一系列正整数数据,输入-1表示输入结束,-1本身不是输入的数据.程序输出读到的数据中的奇数和偶数的个数. 输入格式: 一系列正整数,整数的范围是(0,1 ...
- python简介和python工具的选择
Python 简介 Python 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言. Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有 ...
- Python爬虫——西刺
一直对爬虫这块蛮感兴趣的,所以花了点时间看了看,写了个小脚本 代码可能有点乱,毕竟Python小白,勿喷…… 嗯,话不多说,放码出来 # -*- coding: UTF-8 -*- import re ...
- 【转载】Excel 三维地图入门
三维地图入门(office 2016) https://support.office.com/zh-cn/article/%E4%B8%89%E7%BB%B4%E5%9C%B0%E5%9B%BE%E5 ...
- 【转载】如何查看Mysql是否已经安装
原文地址: https://jingyan.baidu.com/article/fd8044fa2ecaf35030137a42.html MySQL是关系型数据库管理系统,是目前最流行的关系型数据库 ...
- 解决flask的502错误:upstream prematurely closed connection while reading response header from upstream
我在使用 tiangolo/uwsgi-nginx-flask 部署flask应用的时候,经常运行一会儿就出现502错误,重新启动容器后,就恢复. 且经常会出现数据更新后,刷新结果不一致. docke ...
- Lumen框架使用Redis与框架Cache压测比较
使用命令 ab -c 20000 -n 100000 'http://127.0.0.1:9050/v1/api.store.xxx'进行压测,并同时进行了交叉测试,结果如下: 高并发情况下数据目前没 ...