Android 自动化测试命令基础入门4-am
am force-stop 原理
am force-stop 原理
am force-stop是一条用于强制停止指定应用程序的Android命令。
原理如下:
1. 首先,am命令是Android系统中的一个命令行工具,用于与Activity Manager交互。
Activity Manager是Android系统的一个核心组件,负责管理应用程序组件的生命周期、任务堆栈和应用程序间的切换。
2. 当执行am force-stop命令时,它会向Activity Manager发送一个停止应用程序的请求。
3. Activity Manager接收到请求后,会先尝试发送一个停止请求给应用程序的进程中的所有组件(如Activities、Services、Broadcast Receivers等)。
4. 如果某个组件正在运行,Activity Manager会触发相应的生命周期方法(如onDestroy())来停止该组件。
5. 如果应用程序的进程中的所有组件都停止了,Activity Manager会终止应用程序的进程,即将其从系统内存中移除。
总结起来,am force-stop命令的原理就是通过与Activity Manager交互,向应用程序发送停止请求,使其进程中的所有组件停止,最终终止应用程序的进程。
自动化常用命令
自动化常用命令
自动化常用命令包括:
1. adb pm:包管理,用于清理特定包缓存数据、权限,强制关掉app。
2. adb shell pm clear 包名:清理特定包缓存数据、权限。
3. adb shell am start -n 包名:重新启动app,但不清除缓存。
4. dumpsys:获取系统/app的性能数据。
5. uiautomator:获得app的页面结构,进行自动化测试。
6. adb shell uiautomator dump:在手机上生成当前app所有的控件
界面到一个xml文件,可以被拉取下来。
7. input:完成简单的自动化指令,如模拟点击事件等。
8. test条件[条件]:用于数值比较和字符串比较的表达式。
9. 逻辑表达式:如命令1&&命令2 (1 成功则执行2)和命令1||命
令2 (1 失败则执行2)等。
10. 文件表达式:-f 判断是否是文件,-d 判断是否是目录等。
如需更多自动化常用命令,建议咨询专业人士获取准确信息。
Android移动端自动化测试实践指南
Android移动端自动化测试实践指南随着移动设备的成熟和普及,Android平台的自动化测试也越来越受到开发人员的关注。
尤其是在具有大量的测试用例和复杂的业务逻辑的情况下,手动测试已经无法满足需求。
本文将介绍Android移动端自动化测试的实践指南,帮助开发人员快速上手。
一、自动化测试框架首先,我们需要选择一个自动化测试框架,对于Android平台,目前比较流行的有UI Automator、Espresso、Appium等。
其中,UI Automator适用于黑盒测试,可以模拟用户对应用程序的交互,实现比较灵活;Espresso是专注于白盒测试,提供了API来访问应用程序的内部状态,支持多个线程同时执行测试;Appium是跨平台的自动化测试框架,支持Android、iOS、Windows等移动设备平台。
二、测试用例设计在开始测试之前,我们需要根据应用程序的功能和特性,制定一些测试用例,并按照测试优先级来安排执行顺序。
测试用例应当覆盖应用程序的所有功能和场景,并包括异常处理、用户交互等方面的测试。
三、测试环境搭建在进行移动端自动化测试之前,需要先搭建好测试环境。
测试环境应当包括测试设备、开发工具、测试框架等。
测试设备需要选择常见的移动设备,覆盖不同版本的Android系统,确保应用程序可以在各种设备上正常运行。
开发工具包括Android Studio、Eclipse等,需要安装相应的插件来支持自动化测试。
测试框架则需要按照相应的步骤来安装和配置。
四、执行测试用例在完成测试环境的搭建之后,我们就可以开始执行测试用例了。
测试用例的执行需要按照预定的顺序进行,并对每个测试用例进行记录和描述。
测试过程中需要注意哪些问题,然后及时通知开发人员进行修复。
五、分析测试结果在测试执行完毕之后,我们需要分析测试结果,查看哪些测试用例执行成功,哪些测试用例执行失败,失败原因是什么。
对于测试失败的用例,需要及时跟进进行定位和修复。
Android系统测试指令大全
*#*#2663#*#*–触控屏幕版本
*#*#2664#*#*–触控屏幕测试
*#*#0588#*#*–接近感应器测试
*#*#3264#*#*–内存版本
发表在 刷机问题|标签为 安卓指令, 测试指令|留下评论
Android系统通用技巧合集
*#*#2222#*#*–FTAHW版本
*#*#44336#*#*–PDA、Phone、csc、buildTime、、Байду номын сангаасhangelistnumber各项硬件测试
*#*#0283#*#*–PacketLoopback
*#*#0*#*#*–LCD测试
*#*#0673#*#*或*#*#0289#*#*–Melody测试
WLAN、GPS及蓝牙测试的代码
*#*#232339#*#*或*#*#526#*#*或*#*#528#*#*–WLAN测试
*#*#232338#*#*–显示WiFiMAC地址
*#*#1472365#*#*–GPS测试
*#*#1575#*#*–其它GPS测试
*#*#232331#*#*–蓝牙测试
4.输入英文时,删除一个词就可以同时按下Menu键和Del键,这样的操作并不是只删除一个字母。
5.在短信菜单中,长按某条短信会调出进阶菜单,选择相应的选项即可将此短信转发或回复。
6.长按接听键,会自动激活系统的语音拨号功能,但是需要注意的是这里的语音仅能识别英文,即使刷了中文操作系统也不行。
7.在SDcard里建立诸 ”Ringtones”"Alarms” ”Notifications”等文件夹,再将将铃声文件(ogg,mp3,wav,mid等)放进去,重启手机,系统选择铃声的选项中就多出了这些音乐文件。
如何进行全面的Android自动化测试
如何进行全面的Android自动化测试随着移动应用的普及,Android平台上的应用数量也急剧增加。
为了保证应用的质量和稳定性,Android自动化测试变得越来越重要。
本文将介绍如何进行全面的Android自动化测试,并提供一些有用的工具和技术。
1. 理解Android自动化测试的重要性Android自动化测试是一种通过脚本或工具自动运行测试用例的方法,以验证应用在不同设备和环境下的功能、性能和稳定性。
它可以有效地减少人工测试的工作量,提高测试的覆盖率和效率,并帮助开发团队及时发现和修复问题。
2. Android自动化测试的分类Android自动化测试可以分为以下几类:2.1 单元测试:通过编写和运行单元测试用例,测试应用中的各个模块和函数的正确性。
2.2 功能测试:通过模拟用户的操作,测试应用的功能是否正常运行。
2.3 性能测试:测试应用在不同设备和场景下的性能表现,包括响应时间、内存占用和电池消耗等。
2.4 压力测试:测试应用在高负载情况下的稳定性和抗压能力。
2.5 兼容性测试:测试应用在不同Android版本和设备上的兼容性。
3. Android自动化测试的工具和技术为了进行全面的Android自动化测试,以下是一些常用的工具和技术:3.1 Appium:一款开源的移动应用自动化测试框架,支持多种编程语言和多个平台,包括Android和iOS。
3.2 UI Automator:Android官方提供的UI测试框架,可以用于编写和运行功能测试和用户界面测试。
3.3 Espresso:Google推出的Android UI测试框架,重点关注应用的用户界面和用户交互。
3.4 Robolectric:一个基于Junit的Android单元测试框架,可以在本地运行快速而可靠的单元测试。
3.5 Monkey:Android平台上的压力测试工具,可以模拟用户的随机操作和事件。
3.6 Jenkins:一个流行的持续集成工具,可以自动化运行Android自动化测试,并生成测试报告和性能指标。
【IT专家】在Android中使用am和input命令在实际使用中的注意事项以及小技巧
本文由我司收集整编,推荐下载,如有疑问,请与我司联系在Android 中使用am 和input 命令在实际使用中的注意事项以及小技巧在Android 使用到am 和进行一些操作是非常方便的,比如一个重复自动的操作,具体用来实现一些什么是看个人需求了,接下来说对于am 和input 的使用。
本文适用于已经大概去了解了am 和input 的朋友,如果暂时不了解,这里推荐两篇文章大家可以去看看,我就不说了,说了也多是抄,当然如果您是大牛,请忽略本文,本文主要是一些使用中的经验,和一些小技巧am:blog.csdn/u010164190/article/details/51384099input:blog.csdn/soslinken/article/details/49587497首先是am:am 命令主要用于让手机去做一些指定的命令,比如打开指定应用或activity而input 命令则是模拟用户的点击。
先对这两个东西有个模糊的概念,这两个命令经常搭配在一起使用,(暂时可以这样去理解它们两个,当然不是很恰当的例子:input 是一步一步的去做某个事情,慢慢的去做,和人手去操作手机一样,一步接一步的,比如拨打10010 查话费就是先点拨号然后点10010 这5 个数字,而am 也可以暂时把它当成是input,但它是一个大的input,指哪打哪的那种,一步到位,比如我要打10010,adb shell am start -a android.intent.action.CALL -d tel:10086 这样一句就可以了,因为am 命令能做到的事情“并不是很多”,而input 可以实现完全像人手一样操作,因此这两个经常搭配使用。
当然不完全是因为这个。
)接下来详细的说明这两个命令:。
Android自动化测试16页
Android 跨平台
不太稳
2.3+ Android+IO 定
S
Instrumentation
Android测试环境的核心是一个Instrumentation框架,在这个 框架下,你的测试应用程序可以精确控制应用程序。 Instrumentation框架通过将主程序和测试程序运行在同一个 进程中来实现控制应用程序的功能。
Android Instrumentation 测试用例流程
例子
Instrumentation如何实现控件点击:instrumentationtest Robotiuim是如何实现点击的? Androidcalculator 完整的持续集成Demo:
Robotium+AndroidJunitReport+Jenkins 实现无人值守的自 动化编译、打包、测试、报告
每次开发代码提交自动全覆盖 回归时间短,基本可以不考虑 指定多个设备同时并发 一致性、可重复性
相同脚本、不同配置、不同环境 代码相对于文字,其复用性更强
为什么自动化测试难开展
测试人员对编程缺乏经验
开发人员对测试缺乏兴 趣
自动化团队对领域知识缺乏深入了解
组织上的支持
产品缺乏可测性
维护成本较高
避免人为出错
很难发现新的问题
为持续集成做准备
不能取代手工测试
解放重复的人力活动,使人能做 手工测试比自动化测试发现的
更有意义的测试
bug要多
手工 VS 自动化
手工
自动化
执行过程中对数据的结果存在怀疑 数据准确性,结果已在设计
用例覆盖率不全 回归时间较长 多用户并发难以模拟 多次执行,其中某一次结果可能与 其它不同 兼容性测试 测试复用性难
Android中使用am命令实现在命令行启动程序详解
Android中使⽤am命令实现在命令⾏启动程序详解在Android中,除了从界⾯上启动程序之外,还可以从命令⾏启动程序,使⽤的是命令⾏⼯具am.复制代码代码如下:usage: am [subcommand] [options]start an Activity: am start [-D]-D: enable debuggingsend a broadcast Intent: am broadcaststart an Instrumentation: am instrument [flags]-r: print raw results (otherwise decode REPORT_KEY_STREAMRESULT)-e : set argument to-p : write profiling data to-w: wait for instrumentation to finish before returningstart profiling: am profile startstop profiling: am profile stopspecifications include these flags:[-a ] [-d ] [-t ][-c [-c ] ...][-e|--es ...][--ez ...][-e|--ei ...][-n ] [-f ] []启动的⽅法为复制代码代码如下:# am start -n 包(package)名/活动(activity)全路径查看包中每个activity的全路径的⽅法: 1、安装并启动“固件⼯具箱” 2、进⼊“App manager”,显⽰系统中所有安装程序,长按想通过命令⾏启动的程序。
3、弹出的窗⼝中选择"Advanced Freeze",该程序所有的activity就会全部显⽰出来 activity有两种显⽰格式,⼀种直接显⽰全路径,另⼀种在括号⾥显⽰相对路径,相对路径加上包名即是全路径。
android基础知识12:android自动化测试04—Robotium:实例(上)
前文已经对基于junit的android测试框架有了一个大概的介绍,下面我们对activity测试进行分析。
本文主要举两个基于Robotium的activity测试例子,一个是测试单个activity,一个测试多个activity。
1、Robotium概述首先,我们来了解一下android的测试类的层次结构:可以看出android中的测试方法主要有AndroidTextCase和InstrumentationTextCase。
在这篇文章中,我将介绍Instrumentation这种测试方法,那么什么是Instrumentation?Instrumentation和Activity有点类似,只不过Activity是需要一个界面的,而Instrumentation并不是这样的,我们可以将它理解为一种没有图形界面的,具有启动能力的,用于监控其他类(用Target Package声明)的工具类。
2、单个activity测试例子2.1普通测试我想大家在安装完robotium后,都会试试noteslist 这个例子吧。
这个是官网提到的例子首先打开noteslist 源码\samples\android-7\NotePad再打开noteslisttest 源码可以从上面下载/p/robotium/downloads/list/ExampleTestProject_v2.3.zip要做一点修改。
因为noteslist是在androidV21开发的,而我的测试代码是V23的。
我们最好要改成一致的。
修改noteslisttest 下的AndroidManifest.xml<uses-sdk android:minSdkVersion="9" />改成<uses-sdk android:minSdkVersion="7" />这两个数字表示什么意思呢?7--androidV21,9--androidV23,最低版本是3--AndroidV15.大家按顺序排就知道哪个数字对应的版本了然后在noteslisttest 右击选中Properties--Android,选中AndroidV21这样noteslisttest 里带的android jar 由android2.3 变为android2.1再说一个配置,我觉得也很重要还是在AndroidManifest.xml 里<instrumentation android:targetPackage="com.example.android.notepad" android:name="android.test.InstrumentationTestRunner" /> 红色加粗的字符串表示我们要测试代码的package这是我们第一个case,主要目的是测试添加文本的功能clickOnMenuItem(String)功能是点击Menu按钮,选择文本描述为String的菜单,如我们的例子是"Add note"assertCurrentActivity(String message,String name)这个是判断当前的activity是否和我预期的一致message是描述性的文字name是指activity的名字关于如何知道activity 名字,我找了半天的文档,目前的方法是得看源码中的AndroidManifest.xml--Application label--Application Nodes,在那里我们可以看到所有的activity的nameenterText(int index,string text)index用来标识写到哪个EditText中。
Android_自动化测试
Android自动化测试初探-1:捕获Activity上的Element第一部分:前言Android系统下应用程序的测试现在应该还算是个新的领域,网上关于这方面的资料很多都是基于白盒测试的,一般都是基于JUnit框架和Android SDK中android.test等命名空间下的内容进行,但是有一个前提,那就是必须要有应用程序的源代码以提供测试接入点,但是这在很多软件公司中是不现实的。
很多测试工程师做的工作是完全黑盒,基本接触不到源代码,白盒测试大部分也是由开发自己完成。
回顾一下Windows下的黑盒测试自动化,先前使用的是微软提供的基于.net framework的UI Automation自动化测试框架(要求版本在.net framework 3.0以上,即 2008 开发环境),对与擅长C#语言的人来说,使用起来确认比较好用。
本人也写了基于UI Automation的轻量级的自动化框架,将在以后的博文中引出。
那在Android操作系统中能不能做类似于UI Automation的事情呢?不幸的是,Android的权限控制分的非常清楚,不同程序之间的数据访问只能通过Intent,content provider类似的功能实现。
也就是说你开发的运行在Android中的自动化程序想要捕获当前运行的AUT (Application under Test) 界面上的控件等Element(该术语引自UI Automation,觉得翻译成元素有点生硬,故不作翻译)基本不可能,你也拿不到当前active activity的引用(截止本文发帖为止,个人暂时没有找到办法获得此引用)。
无路可走了?模拟器里面不能走,外面能不能走?或许可以。
第二部分:捕获Activity上的Element在Android的SDK中自带了一个对自动化测试比较有用的工具:hierarchyviewer(位于SDK的tools目录下)。
在模拟器运行的情况下,使用该工具可以将当前的Activity上的Element以对象树的形式展现出来,每个Element所含的属性也能一一尽显。
android,am,pm命令pm命令
android,am,pm命令pm命令adb shell中的am pm命令,一些自己的见解和大多数官网的翻译。
先说下am命令,am全称activity manager,你能使用am去模拟各种系统的行为,例如去启动一个activity,强制停止进程,发送广播进程,修改设备屏幕属性等等。
当你在adb shell命令下执行am命令:am command你也可以在adb shell前执行am命令:adb shell am start -a android.intent.action.VIEW关于一些am命令的介绍:start [options] INTENT :启动activity通过指定的intent参数。
具体intent参数参照官方表。
startservice [options] INTENT :启动service通过指定的intent 参数。
具体intent跟start命令参数相同。
force-stop ***** :强制停止指定的package包应用。
kill [options] ***** :杀死指定package包应用进程,该命令在安全模式下杀死进程,不影响用户体验。
参数选项:--user USER_ID | all | current: 指定user进程杀死,如果不指定默认为所有users。
(关于USER_ID下面会介绍到)kill-all :杀死所有的后台进程。
broadcast [options] INTENT :发送一个intent。
具体intent参数参照start命令参数。
参数选项:--user USER_ID | all | current: 指定user进程杀死,如果不指定默认为所有users。
instrument [options] *****NT :测试命令,不多作介绍。
profile start ***** FILE :在*****进程中运行profile,分析结果写到FILE里。
Android 自动化测试命令基础入门6-dumpsys
进行过滤以仅显示已停用的软件包
进行过滤以仅显示已启用的软件包
进行过滤以仅显示系统软件包 进行过滤以仅显示第三方软件包 查看软件包的安装程序 包括卸载的软件包
3
权限查询
了解 Android 权限组
正常
危险 电话
电话
shell连接执行
>adb shell # pm <command>
例子
adb shell am list packages
2
包名信息
包状态分类
停用
启用 系统
三方
包状态 分类
卸载
包名查询语法
语法
参数 filter
-f
-d
-e
-s -3 -i -u
list packages [options] [filter]
解冻语法 说明
unsuspend <TARGET-PACKAGE> 解冻指定应用
7
清除数据
清除数据语法
语法 说明
clear <package> 删除与软件包关联的所有数据
8
其他查询
进程
list instrumentation [options] list features list libraries list users path package
仅输出 group 中的权限 按组加以组织
说明
输出所有信息
-s 简短摘要
-d 仅列出危险权限 -u 仅列出用户将看到的权限
4
权限授权取消
权限授权语法
grant <package_name> <permission>
Android 自动化测试命令基础入门2-adb shell常用命令
-a :列出所有文件,包括隐藏文件
ls
-i : 输出文件的 i 节点的索引信息 -l :列出文件的详细信息
列出目录内文件列表
-n :用数字的GUID代替名称
-s :输出该文件的大小
查询命令
命令 grep
含义
指定文件或者输出中搜索特定的内容,并将含有这些内容的 行输出
grep [搜索条件] [文件]
学习任何语言 文件操作都是 基础中的基础
目录命令
命令 cd mkdir rmdir
选项 -
-p : 递归创建目录 -p : 递归删除空目录
含义 进入指定目录
创建目录 删除目录
文件命令
命令
选项
touch
touch <file>
[-beflnstuv] [-B bsize] [-] [file ...]
grep abc a.txt
从a.txt文件中搜索含有adc的行,输出这一行
cat a.txt | grep abc
命令 | grep [搜索条件] 查看a.txt文件内容,从内容中搜索含有abc的行,输出这一
行
2
文件目录
文件操作
新建 查看 复制 剪切 删除
移动 权限 重命名 过滤 ......
mv
-f:强制移动,若已经存在目标则直接覆盖
-i:若目标文件已经存在,会询问是否覆盖
dd
dd [operand ...] dd if= source of=target
md5
md5 file ...
cmp
cmp file1 file2
创建删除文件
移动文件 复制文件 查询文件的md5值 列出两个文件是否存在差异
移动端APP自动化测试超全基础汇总
移动端APP⾃动化测试超全基础汇总 ⽬录⼀.⾯试过程1.⾃动化岗位要求2.⾯试流程,⾯试类型3.沟通技巧,不同级别要求⼆.真实⾯试案例1.⼀个输⼊框的⾯试题(有⼈拿到⾼级岗位,有⼈连初级都没拿到,为什么)三.⾃我分析1.积累的知识决定了初⼊社会的岗位2.什么是好的简历3.需要掌握的基本知识四.技术基础知识1.常见测试理论2.python语⾔常见问题3.python常问算法4.linux基本命令5.计算机⽹络6.操作系统7.数据库相关8.fiddler抓包⼯具9.android系统相关⼯具 10.adb相关问题 11.monkey相关问题五.⾃动化⼯具1.Instrumentation2.UIAutomator3.Selendroid4.Robotium5.Appium6.Selenium六.⾃动化框架1.Unittest框架2.数据驱动DDT3.⾏为驱动Lettuce4.关键字驱动Robot Framework5.测试报告管理6.邮件服务管理七.接⼝⾃动化1.postman2.python requests⼋.持续集成(概念) 九.服务端性能测试 ⼗.兼容性测试 ⼗⼀.调试正⽂⼀.招聘要求 ⼆.⾯试过程(笔试-技术-性格-薪资) 三.⾯试类型 四.问题类型 五.注意事项 六.⾼效沟通 七.岗位级别软件的⽣命周期:定义规划——需求分析——软件设计——编码——测试——维护⾯试案例:⼀个输⼊框的⾯试题(测试以下输⼊框,你会测试哪些内容)⾯试者A:左侧顶部菜单——全部、图⽚切换——右侧顶部⼩⼯具——登陆功能——输⼊框——底部链接⾯试者B:确认题⽬:是仅测试输⼊框,不考虑其他内容吗?回复:是的,仅测试输⼊框 ⾯试者B:⼤范围的话测功能、兼容性、稳定性、性能、安全、接⼝、线上监控、⾃动化⼋⽅⾯;⼩范围的话测功能、兼容性、安全三⽅⾯ 如果时间允许,我想从各⽅⾯说⼀下考虑的内容: 关于功能:①常规:任意字符 ②⾮常规:有含义的字符串 ③边界、空格、超长⽂本(±1个字符,如-1个字符并输⼊中⽂) 关于兼容性:①⽤户分布:机型、分辨率 ②浏览器 ③页⾯布局、渲染,借助firebug调试 关于稳定性:①压⼒下,搜索是否正常返回 ②多次输⼊是否稳定 关于性能:①QPS-每秒处理请求数 ②点击开始到完全加载,平均耗时 ③加载页⾯⼤⼩、资源(js、css)数量 关于安全性:js注⼊、sql注⼊(输⼊框输⼊js代码) 关于接⼝:①接⼝正确性 ②异常数据的容错情况 ③⾮浏览器环境下(绕过页⾯限制输⼊) 关于线上监控:建⽴实时监控保障稳定性、降低影响 关于⾃动化:基于selenium实现UI⾃动化,⽤selenium调⽤⼯具模拟浏览器UA返回页⾯,去做UI⾃动化。
am force-stop 流程
am force-stop 流程流程:am forcestop在Android系统中,am forcestop是一个非常有用的命令,可以强制停止正在运行的应用程序。
当某个应用程序出现问题或者崩溃时,使用这个命令可以快速地关闭应用程序,避免出现进一步的错误或者影响其他应用程序的运行。
本文将详细介绍如何使用am forcestop命令以及其相关流程。
第一步:理解am forcestop命令的作用在开始介绍使用am forcestop命令的流程之前,首先需要理解这个命令的作用。
am forcestop命令是Android系统中的一个命令行工具,用于强制停止指定应用程序的运行。
当某个应用程序出现问题导致无法正常关闭时,使用am forcestop命令可以终止该应用程序的运行,进而解决问题。
第二步:准备工作在使用am forcestop命令之前,需要进行一些准备工作。
首先,确保你的设备已经获取了root权限,因为am forcestop命令需要root权限才能正常使用。
其次,需要安装一个终端模拟器应用程序,例如Termux,在手机上打开一个终端窗口。
第三步:找到应用程序的包名在准备工作完成之后,接下来需要找到需要强制停止的应用程序的包名。
可以通过在Google Play商店中搜索该应用程序,然后在应用程序的页面中找到包名信息。
或者在设备的设置-应用程序中找到需要停止的应用程序,并在应用程序信息页面中找到包名。
第四步:打开终端窗口在找到应用程序的包名之后,打开终端模拟器应用程序,并输入以下命令:su这个命令用于获取root权限,然后输入下面的命令:am force-stop 包名将“包名”替换为实际的应用程序包名。
执行该命令后,系统会立即尝试强制停止该应用程序的运行。
第五步:确认应用程序已停止在执行了am forcestop命令之后,需要确认目标应用程序已经停止运行。
可以通过返回到设备的主屏幕,或者在设置-应用程序中查看该应用程序的运行状态。
01.Android自动化测试(基础篇)
•
• • • • • •
mksdcard 1024M ~/名称.img
7. AVD(模拟器)所在位置: Linux(~/.android/avd) 8. 启动DDMS: ddms 9. 显示当前运行的全部模拟器: adb devices Windows(C:\Documents and Settings\Administrator\.android\avd)
•
• • • • • • • • • CLASSPATH 设置系统变量名为:CLASSPATH 变量值为:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar 。 注意变量值字符串前面有一个"."表示当前目录,设置CLASSPATH 的目的,在于告诉Java执行环境,在哪些目录下可以找到您所要执行的Java程序所需要的类 或者包。 Path PATH属性已存在,可直接编辑,在原来变量头增加:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin; 。 JAVA_HOME 先设置这个系统变量名称,变量值为JDK在你电脑上的安装路径,创建好后则可以利用%JAVA_HOME%作为JDK安装目录的统一引用路径。
的版本下载。
• 1.5 为Eclipse安装ADT插件
• 前面我们已经配置好了java的开发环境,安装了开发Android的IDE,下载安装了Android SDK,但是Eclipse 还没有和Android SDK进行关联,也就是它们现在是互相独立的。为了使得Android应用的创建,运行和调试
Software』,如下图:
•
点击『Add』,如下图:
•
点击『Local...』选择ADT-23.0.6.zip所在目录,在点击『Archive...』进入目录,选择ADT-23.0.6.zip,
Android 命令行下的am命令
在Android中,除了从界面上启动程序之外,还可以从命令行启动程序,使用的是命令行工具am.am全称activity manager,你能使用am去模拟各种系统的行为,例如去启动一个activity,强制停止进程,发送广播进程,修改设备屏幕属性等等。
usage:am[subcommand][options]usage:am start[-D][-W][-P<FILE>][--start-profiler<FILE>][--R COUNT][-S][--opengl-trace]<INTENT>am startservice<INTENT>am force-stop<PACKAGE>am kill<PACKAGE>am kill-allam broadcast<INTENT>am instrument[-r][-e<NAME><VALUE>][-p<FILE>][-w][--no-window-animation]<COMPONENT>am profile start<PROCESS><FILE>am profile stop[<PROCESS>]am dumpheap[flags]<PROCESS><FILE>am set-debug-app[-w][--persistent]<PACKAGE>am clear-debug-appam monitor[--gdb<port>]am screen-compat[on|off]<PACKAGE>am display-size[reset|MxN]am to-uri[INTENT]am to-intent-uri[INTENT]am start:start an Activity.Options are:-D:enable debugging-W:wait for launch to complete--start-profiler<FILE>:start profiler and send results to<FILE>-P<FILE>:like above,but profiling stops when app goes idle-R:repeat the activity launch<COUNT>times.Prior to each repeat, the top activity will be finished.-S:force stop the target app before starting the activity--opengl-trace:enable tracing of OpenGL functionsam startservice:start a Service.am force-stop:force stop everything associated with<PACKAGE>.am kill:Kill all processes associated with<PACKAGE>.Only kills. processes that are safe to kill--that is,will not impact the user experience.am kill-all:Kill all background processes.am broadcast:send a broadcast Intent.am instrument:start an Instrumentation.Typically this target<COMPONENT> is the form<TEST_PACKAGE>/<RUNNER_CLASS>.Options are:-r:print raw results(otherwise decode REPORT_KEY_STREAMRESULT). Use with[-e perf true]to generate raw output for performance measurements.-e<NAME><VALUE>:set argument<NAME>to<VALUE>.For test runners acommon form is[-e<testrunner_flag><value>[,<value>...]].-p<FILE>:write profiling data to<FILE>-w:wait for instrumentation to finish before returning.Required for test runners.--no-window-animation:turn off window animations will running.am profile:start and stop profiler on a process.am dumpheap:dump the heap of a process.Options are:-n:dump native heap instead of managed heapam set-debug-app:set application<PACKAGE>to debug.Options are: -w:wait for debugger when application starts--persistent:retain this valueam clear-debug-app:clear the previously set-debug-app.am monitor:start monitoring for crashes or ANRs.--gdb:start gdbserv on the given port at crash/ANRam screen-compat:control screen compatibility mode of<PACKAGE>.am display-size:override display size.am to-uri:print the given Intent specification as a URI.am to-intent-uri:print the given Intent specification as an intent:URI.<INTENT>specifications include these flags and arguments:[-a<ACTION>][-d<DATA_URI>][-t<MIME_TYPE>][-c<CATEGORY>[-c<CATEGORY>]...][-e|--es<EXTRA_KEY><EXTRA_STRING_VALUE>...][--esn<EXTRA_KEY>...][--ez<EXTRA_KEY><EXTRA_BOOLEAN_VALUE>...][--ei<EXTRA_KEY><EXTRA_INT_VALUE>...][--el<EXTRA_KEY><EXTRA_LONG_VALUE>...][--ef<EXTRA_KEY><EXTRA_FLOAT_VALUE>...][--eu<EXTRA_KEY><EXTRA_URI_VALUE>...][--ecn<EXTRA_KEY><EXTRA_COMPONENT_NAME_VALUE>][--eia<EXTRA_KEY><EXTRA_INT_VALUE>[,<EXTRA_INT_VALUE...]] [--ela<EXTRA_KEY><EXTRA_LONG_VALUE>[,<EXTRA_LONG_VALUE...]][--efa<EXTRA_KEY><EXTRA_FLOAT_VALUE>[,<EXTRA_FLOAT_VALUE...]][-n<COMPONENT>][-f<FLAGS>][--grant-read-uri-permission][--grant-write-uri-permission][--debug-log-resolution][--exclude-stopped-packages][--include-stopped-packages][--activity-brought-to-front][--activity-clear-top][--activity-clear-when-task-reset][--activity-exclude-from-recents][--activity-launched-from-history][--activity-multiple-task][--activity-no-animation][--activity-no-history][--activity-no-user-action][--activity-previous-is-top][--activity-reorder-to-front][--activity-reset-task-if-needed][--activity-single-top][--activity-clear-task][--activity-task-on-home][--receiver-registered-only][--receiver-replace-pending][--selector][<URI>|<PACKAGE>|<COMPONENT>]常用用法:启动应用的方法为#am start-n包(package)名/包名.活动(activity)名称启动的方法可以从每个应用的AndroidManifest.xml的文件中得到Music和Video(音乐和视频)的启动方法为:#am start-n com.android.music/com.android.music.MusicBrowserActivity #am start-n com.android.music/com.android.music.VideoBrowserActivity #am start-n com.android.music/com.android.music.MediaPlaybackActivityCamera(照相机)的启动方法为:#am start-n com.android.camera/com.android.camera.CameraBrowser(浏览器)的启动方法为:#am start-n com.android.browser/com.android.browser.BrowserActivity启动浏览器:am start-a android.intent.action.VIEW-d /拨打电话:am start-a android.intent.action.CALL-d tel:10086这里-a表示动作,-d表述传入的数据,还有-t表示传入的类型注意:4.2以上的模拟器,要在start后加上--user 0才可以am start --user 0 -a android.intent.action.VIEW -d /。
Android自动化测试学习文档
Android自动化测试学习文档1Robotium简介2知识准备1、java基础知识基本的数据结构、语法结构、类、继承等2、了解Android系统四大组件,会编写简单的Android应用程序✧Activity✧Service服务✧Content Provider内容提供者✧BroadcastReceiver广播接收器学习网站:/bravestarrhu/archive/2012/05/02/2479461.html 3、熟悉Eclipse IDE使用方法注:在16上有java学习资料,可以查看学习3环境搭建安装和配置Android开发环境:1)安装jdk,配置环境变量2)下载安装Android SDK,并更新3)下载Eclipse,并安装ADT插件,集成Android SDK注:在16上有Android开发环境的Eclipse安装包,直接安装配置环境变量即可4测试对象✧Android的安装包(apk包)✧Android源码项目5测试apk包5.1生成签名文件一、生成签名文件1、cd androidSdk目录2、keytool -genkey -v -keystore debug.keystore -alias androiddebugkey -keyalg RSA -validity 10000输入keystore密码:再次输入新密码:您的名字与姓氏是什么?[Unknown]:luozhongyan您的组织单位名称是什么?[Unknown]:nationsky您的组织名称是什么?[Unknown]:nationsky您所在的城市或区域名称是什么?[Unknown]:BJ您所在的州或省份名称是什么?[Unknown]:BJ该单位的两字母国家代码是什么[Unknown]:86CN=luozhongyan,OU=nationsky,O=nationsky,L=haidian,ST=BJ,C=86 正确吗?[否]:Y输入<android.keystore>的主密码(如果和keystore 密码相同,按回车):其中参数-validity为证书有效天数,这里我们写的大些10000天。
Android 自动化测试命令基础入门1- adb常用命令
客户端:client 通过客户端完成需要的指令操作 服务器:service 运行在电脑端的服务器 守护进程:adbd(adb daemon) 运行在手机后台的服务
adb 介绍 adb 模型
cmd1
服
cmd2
务
使用adb命
器
令的工具
adb d
2
环境配置
环境要求
物件准备
物件1:Android SDK (Android 软件开发工具包)
命令 说明
adb get-serialno 打印adb服务状态
命令 说明
adb wait-for-device
阻止执行,直至设备处于在线状态,即直至此实例状态 为 device。
11
adb 更新
adb 帮助与版本
命令 说明
adb help 显示帮助信息
命令 说明
adb version 显示版本信息
➢ unauthorized —未授权USB调试
Hale Waihona Puke 4指定设备命令说明
命令 adb [-e | -d | -s <serial_number>] < command>
-e 说明 -d
-s
仅运行在模拟器中 仅运行在真实的设备中 运行在指定的设备中
5
应用安装
命令说明
命令 说明
参数
adb install [-rsdg] PACKAGE
下载地址:https:///studio/
环境配置
SDK配置
记忆:platform-tools
1、解压 SDK 2、更新 platform tools >cd [解压tools目录] >sdkmanager "platform-tools"
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
10068 procstate CRE seq 0
10068 idle
10068 gone
//10068从最近使用程序删除
10
异常监听
语法
monitor
启动对崩溃或 ANR 的监控。
crash <PACKAGE|PID> 在指定的包或进程中引发VM崩溃
否则,此工具假定参数是一个软件包名称。
3
启动页面
命令行语法
旧语法 新语法
adb shell am start [options] intent adb shell am start-activity [options] intent
-D -W -P file -R count -S
启用调试 等待启动完成 类似于 --start-profiler,但当应用进入空闲状态时分析停止 重复 Activity 启动 count 次数。在每次重复前,将完成顶部 Activity 启动 Activity 前强行停止目标应用
4
启动服务
命令行语法
旧语法 adb shell am startservice <intent> 新语法 adb shell am start-service <intent>
5
发送广播
命令行语法
语法
adb shell am broadcast [options] intent
6
进程操作
语法
浮点型
--eu extra_key extra_uri_value --ecn extra_key extra_component_name_value
添加 URI 数据作为键值对。
添加组件名称,将其作为 ComponentName 对 象进行转换和传递
URI COMPONENT
--eia extra_key extra_int_value[,extra_int_value...] 添加整数数组。
FLAGS
将标志添加到 setFlags() 支持的 intent。
参数
-n -a -d -c -t -e -f
Intent EXTRA
Intent
-e|--es extra_key extra_string_value --esn extra_key --ez extra_key extra_boolean_value --ei extra_key extra_int_value --el extra_key extra_long_value
content://contacts/people/1
CATEGORY 指定 intent 类别
android.intent.category.APP_CONTACTS
MIME_TYPE
传递给Intent的额外数据,以Bundle的形式定 义,就是一些键值对
image/png
EXTRA
添加字符串数据作为键值对
说明
添加字符串数据作为键值对 添加一个 null extra。URI intent 不支持此选项。 添加布尔型数据作为键值对。 添加整数型数据作为键值对。 添加长整型数据作为键值对。
数据类型
字符串 null 布尔型 整型 长整型
--ef extra_key extra_float_value
添加浮点型数据作为键值对。
Intent
说明
例子
COMPONENT
指定带有软件包名称前缀的组件名称以创建显 式 intent
com.example.app/.ExampleActivity
ACTION 指定 intent 操作,比如调用拨打电话组件
android.intent.action.VIEW
DATA_URI 指定 intent 数据 URI
10068 uncached
10068 procstate TOP seq 0
10025 procstate BFGS seq 0 //以上打开10068应用
10025 procstate TOP seq 0
10068 cached
10068 procstate LAST seq 0 //10068 按home键回到主屏幕
9
UID监听
语法
watch-uids [--oom <uid>]
监听uid状态变化 --oom 指定监听的uid详细变化信息
不加参数:adb shell am watch-uids
10068 idle
10068 cached
10068 procstate CEM seq 0
10068 active
说明
包含标志 FLAG_ACTIVITY_BROUGHT_TO_FRONT 包含标志 FLAG_ACTIVITY_CLEAR_TOP 包含标志 FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET 包含标志 FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS 包含标志 FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY 包含标志 FLAG_ACTIVITY_MULTIPLE_TASK 包含标志 FLAG_ACTIVITY_NO_ANIMATION 包含标志 FLAG_ACTIVITY_NO_HISTORY 包含标志 FLAG_ACTIVITY_NO_USER_ACTION 包含标志 FLAG_ACTIVITY_PREVIOUS_IS_TOP 包含标志 FLAG_ACTIVITY_REORDER_TO_FRONT 包含标志 FLAG_ACTIVITY_RESET_TASK_IF_NEEDED 包含标志 FLAG_ACTIVITY_SINGLE_TOP 包含标志 FLAG_ACTIVITY_CLEAR_TASK 包含标志 FLAG_ACTIVITY_TASK_ON_HOME
Android 自动化测试命令基础入门 am 常用命令
目录
1 命令介绍 2 intent 说明 3 启动页面 4 启动服务 5 发送广播
6 进程操作 7 内存快照 8 CPU性能
10 UID监听 11 异常监听
1
命令介绍
命令介绍
Activity Manager (am)
启动页面
停止进程
发送广播 启动服务
说明
包含标志 FLAG_GRANT_READ_URI_PERMISSION
包含标志 FLAG_GRANT_WRITE_URI_PERMISSION 包含标志 FLAG_DEBUG_LOG_RESOLUTION 包含标志 FLAG_EXCLUDE_STOPPED_PACKAGES 包含标志 FLAG_INCLUDE_STOPPED_PACKAGES 包含标志 FLAG_RECEIVER_REGISTERED_ONLY 包含标志 FLAG_RECEIVER_REPLACE_PENDING 需要使用 -d 和 -t 选项以设置 intent 数据和类型
8
CPU性能
语法
profile start <process> <file> 启动 process 的分析器,将结果写入 file
profile stop <process>
停止 process 的分析器。
基本使用步骤:
1、开始性能文件:am profile start com.android.calculator2 /data/local/tmp/profile1 2、停止性能文件:am profile stop com.android.calculator2 3、pull到本地:adb pull /data/local/tmp/profile1 d:\1 4、使用traceview打开:traceview d:\1\profile1
整数数组
--ela extra_key extra_long_value[,extra_long_value...]
添加长整型数组。
长整型数组
--efa extra_key extra_float_value[,extra_float_value...]
添加浮点型数组。
浮点型数组
Intent activity FLAG
dumpheap [options] <process> <file>
转储 process 的堆,写入 file。
-n:转储原生堆,而非托管堆。 -g: 转储之前,强制执行GC
使用基本步骤:
1、执行命令:am dumpheap com.android.calculator2 /data/local/tmp/1.hprof 2、pull到计算机:adb pull /data/local/tmp/1.hprof d:\1 3、转换格式:hprof-conv 1.hprof 2.hprof (hprof-conv 工具位于platform-toos) 4、使用MAT打开
Intent FLAG
Intent
--grant-read-uri-permission
--grant-write-uri-permission --debug-log-resolution --exclude-stopped-packages --include-stopped-packages --receiver-registered-only --receiver-replace-pending --selector
系统操作
启动测试 内存快照
命令行语法
adb 直接发出 adb shell am <command>
sh>
2
intent 说明
intent 功能
Activity
service
intent
向程序表达某种请求或者意愿 系统根据意愿的内容完成请求