① android 手机自动化测试工具有哪几种
1、MonkeyAndroid SDK自带测试工具测试程向系统发送伪随机用户事件流按键输入、触摸屏输入、手势输入等)实现发应用程序进行压力测试志输实际该工具能做程序做些压力测试由于测试事件数据都随机能自定义所局限性
2、MonkeyRunnerAndroid SDK提供测试工具严格意义说MonkeyRunner其实Api工具包比Monkey强编写测试脚本自定义数据、事件缺点脚本用Python写测试员说要求较高比较习本
3、Instrumentation早期Google提供Android自化测试工具类虽候JUnitAndroid进行测试Instrumentation允许应用程序做更复杂测试甚至框架层面通Instrumentation模拟按键按、抬起、屏幕点击、滚等事件Instrumentation通主程序测试程序运行同进程实现些功能Instrumentation看类似Activity或者Service并且带界面组件程序运行期间监控主程序缺点测试员说编写代码能力要求较高需要Android相关知识定解需要配置AndroidManifest.xml文件能跨App
4、UiAutomatorAndroid提供自化测试框架基本支持所Android事件操作比Instrumentation需要测试员解代码实现细节(用UiAutomatorviewer抓App页面控件属性看源码)基于java测试代码结构简单、编写容易、习本编译所设备或模拟器都能运行测试能跨App(比:App选择相册、打相机拍照跨App测试)缺点支持SDK 16(Android 4.1)及支持Hybird App、WebApp
5、EspressoGoogle源自化测试框架相于RobotiumUIAutomator特点规模更、更简洁API更加精确编写测试代码简单容易快速手基于Instrumentation所能跨App配合Android Studio编写测试简单例
6、Selendroid:基于Instrumentation测试框架测试Native App、Hybird App、Web App网资料较少社区跃度
7、Robotium基于Instrumentation测试框架目前内外用比较资料比较社区比较跃缺点测试员说要定Java基础解Android基本组件能跨App
8、Athrun淘宝移测试框架/平台同支持iOSAndroidAndroid部基于InstrumentationAndroid原类基础进行扩展提供整套面向象API详细介绍
9、Appium近比较热门框架社区跃框架应该功能强
-
② android中monkeyrunner如何实现drag()
使用此方法:com.android.monkeyrunner.MonkeyDevice.drag
模拟设备屏幕上拖动(触摸,持有和移动)参数:
开始
-
拖动起点(以像素为单位元组(X,Y))
结束
-
阻力终点(以像素为单位元组(X,Y)
时间
-
在几秒钟内拖时间(默认为1.0秒)
步骤
-
插值点时要采取的步骤。
(默认是10)返回:返回任何内容。
使用adb命令:详细的adb命令,可以通过adb
-h来查询.而Monkeyrunner中对设备的操作如下: from
com.android.monkeyrunner
import
MonkeyRunner,MonkeyDevice
device
=
MonkeyRunner.waitForConnection(5,"emulator-5554")
device.shell("am
start
-an
com.xxx.xxx/.MainActivity")
device.touch(250,
450,
'DOWN_AND_UP')
device.drag((1080/2,
1700),(1080/2,
400),0.5,1)
③ 手机app测试有哪些工具盒方法
手机app测试有可以利用以下几种工具:
1、安卓黑盒测试工具
1)包括本身自带的monkey,Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中;
2) robotium与appium,这些工具用于黑盒的自动化测试。可以在有源码或者只有APK的情况下对目标应用进行测试。
2、白盒测试,Android在SDK中集成了JUnit框架。所以,你可以基于JUNIT框架进行安卓的白盒测试代码开发;
3、安卓的测试方法其实与web测试方法大多类似,只是多了一些特殊的测试场景;
4、兼容性测试,一是可以利用虚拟机来保证系统间的兼容性,但更多的还需要依靠真机来测试;
(3)androidmonkey源码扩展阅读:
APP测试要点:
1、功能测试
最基本的测试,主要是测试软件app的功能点、业务逻辑;关联性(主要是测试客户端和PC的交互,客户端处理完后,保证PC端数据同步且一致)
2、性能测试
cpu,占用不超过10%,响应时间(包括app启动和退出),满足258原则,2秒以内用户感觉很快,2-5秒感觉一般,5-8秒感觉很慢,但是能接受,8秒以上用户无法接受,选择离开,或者再次发送请求;
3、兼容性测试
手机app需要重点关注的,不同操作系统:android、iOS不同手机厂商,小米,华为等不同的手机屏幕分辨率,与其他第三方app的兼容;
4、安装卸载更新测试
也是手机app比较特别的测试点,安装的路径,手机还是sd卡上,高低版本的覆盖安装,内存不足时的安装,安装过程中出现中断情况,第三方管理软件中卸载app,卸载过程中出现中断情况;
5、中断或崩溃测试
中断测试主要是测试app是否会出现crash情况。来电、短信、闹钟、低电量等,网络环境突然改变,或者网络中断,例如隧道、电梯(离线支持),切换网络,例如数据连接切换到wifi外部设备。
比如充电,插耳机内存不足改变设备方向改变手机语言,例如英文多后台程序切换长时间开机并且长时间开启app也可以用monkey来测试apk的稳定性,也能检查出一些crash的问题;
6、安全测试
7、UI测试
④ 如何跑android手机的monkey
需要PC有adb的程序 一般mokey脚本都是开发写好了 如果你是白盒测试人员 可能需要自己写monkey脚本 用adb把脚本push进去 然后可以执行:
在运行中输入cmd,进入命令行,输入adb shell monkey -p <包名> -c android.intent.category.LAUNCHER -s 100 --hprof --ignore-crashes --ignore-timeouts --ignore-security-exceptions --monitor-native-crashes --throttle 15 -v -v 1960 >c:\monkey_test.txt ,操作执行的log保存在c盘
注意:这只是monkey的执行log 如果开发需要其他log 还需要用adb抓
只是很简单的流程…具体问题具体分析 希望你得了些帮助
⑤ android源代码idreammanager在什么地方定义的
Google提供的Android包含了原始Android的目标机代码,主机编译工具、仿真环境,下载的代码包经过解压后(这里是Android2.2的源码包),源代码的第一层目录结构如下:
|-- Makefile
|-- bionic (bionic C库)
|-- bootable (启动引导相关代码)
|-- build (存放系统编译规则及generic等基础开发包配置)
|-- cts (Android兼容性测试套件标准)
|-- dalvik (dalvik JAVA虚拟机)
|-- development (应用程序开发相关)
|-- external (android使用的一些开源的模组)
|-- frameworks (核心框架——java及C++语言)
|-- hardware (主要保护硬解适配层HAL代码)
|-- libcore
|-- ndk
|-- device
|-- out (编译完成后的代码输出与此目录)
|-- packages (应用程序包)
|-- prebuilt (x86和arm架构下预编译的一些资源)
|-- sdk (sdk及模拟器)
|-- system (文件系统库、应用及组件——C语言)
`-- vendor (厂商定制代码)
bionic 目录
|-- libc (C库)
| |-- arch-arm (ARM架构,包含系统调用汇编实现)
| |-- arch-x86 (x86架构,包含系统调用汇编实现)
| |-- bionic (由C实现的功能,架构无关)
| |-- docs (文档)
| |-- include (头文件)
| |-- inet
| |-- kernel (Linux内核中的一些头文件)
| |-- netbsd (?netbsd系统相关,具体作用不明)
| |-- private (?一些私有的头文件)
| |-- stdio (stdio实现)
| |-- stdlib (stdlib实现)
| |-- string (string函数实现)
| |-- tools (几个工具)
| |-- tzcode (时区相关代码)
| |-- unistd (unistd实现)
| `-- zoneinfo (时区信息)
|-- libdl (libdl实现,dl是动态链接,提供访问动态链接库的功能)
|-- libm (libm数学库的实现,)
| |-- alpha (apaha架构)
| |-- amd64 (amd64架构)
| |-- arm (arm架构)
| |-- bsdsrc (?bsd的源码)
| |-- i386 (i386架构)
| |-- i387 (i387架构?)
| |-- ia64 (ia64架构)
| |-- include (头文件)
| |-- man (数学函数,后缀名为.3,一些为freeBSD的库文件)
| |-- powerpc (powerpc架构)
| |-- sparc64 (sparc64架构)
| `-- src (源代码)
|-- libstdc++ (libstdc++ C++实现库)
| |-- include (头文件)
| `-- src (源码)
|-- libthread_db (多线程程序的调试器库)
| `-- include (头文件)
`-- linker (动态链接器)
`-- arch (支持arm和x86两种架构)
bootable 目录
|-- bootloader (适合各种bootloader的通用代码)
| `-- legacy (估计不能直接使用,可以参考)
| |-- arch_armv6 (V6架构,几个简单的汇编文件)
| |-- arch_msm7k (高通7k处理器架构的几个基本驱动)
| |-- include (通用头文件和高通7k架构头文件)
| |-- libboot (启动库,都写得很简单)
| |-- libc (一些常用的c函数)
| |-- nandwrite (nandwirte函数实现)
| `-- usbloader (usbloader实现)
|-- diskinstaller (android镜像打包器,x86可生产iso)
`-- recovery (系统恢复相关)
|-- edify (升级脚本使用的edify脚本语言)
|-- etc (init.rc恢复脚本)
|-- minui (一个简单的UI)
|-- minzip (一个简单的压缩工具)
|-- mttils (mtd工具)
|-- res (资源)
| `-- images (一些图片)
|-- tools (工具)
| `-- ota (OTA Over The Air Updates升级工具)
`-- updater (升级器)
build目录
|-- core (核心编译规则)
|-- history (历史记录)
|-- libs
| `-- host (主机端库,有android “cp”功能替换)
|-- target (目标机编译对象)
| |-- board (开发平台)
| | |-- emulator (模拟器)
| | |-- generic (通用)
| | |-- idea6410 (自己添加的)
| | `-- sim (最简单)
| `-- proct (开发平台对应的编译规则)
| `-- security (密钥相关)
`-- tools (编译中主机使用的工具及脚本)
|-- acp (Android "acp" Command)
|-- apicheck (api检查工具)
|-- applypatch (补丁工具)
|-- apriori (预链接工具)
|-- atree (tree工具)
|-- bin2asm (bin转换为asm工具)
|-- check_prereq (检查编译时间戳工具)
|-- dexpreopt (模拟器相关工具,具体功能不明)
|-- droiddoc (?作用不明,java语言,网上有人说和JDK5有关)
|-- fs_config (This program takes a list of files and directories)
|-- fs_get_stats (获取文件系统状态)
|-- iself (判断是否ELF格式)
|-- isprelinked (判断是否prelinked)
|-- kcm (按键相关)
|-- lsd (List symbol dependencies)
|-- releasetools (生成镜像的工具及脚本)
|-- rgb2565 (rgb转换为565)
|-- signapk (apk签名工具)
|-- soslim (strip工具)
`-- zipalign (zip archive alignment tool)
dalvik目录 dalvik虚拟机
.
|-- dalvikvm (main.c的目录)
|-- dexmp (dex反汇编)
|-- dexlist (List all methods in all concrete classes in a DEX file.)
|-- dexopt (预验证与优化)
|-- docs (文档)
|-- dvz (和zygote相关的一个命令)
|-- dx (dx工具,将多个java转换为dex)
|-- hit (?java语言写成)
|-- libcore (核心库)
|-- libcore-disabled (?禁用的库)
|-- libdex (dex的库)
|-- libnativehelper (Support functions for Android's class libraries)
|-- tests (测试代码)
|-- tools (工具)
`-- vm (虚拟机实现)
development 目录 (开发者需要的一些例程及工具)
|-- apps (一些核心应用程序)
| |-- BluetoothDebug (蓝牙调试程序)
| |-- CustomLocale (自定义区域设置)
| |-- Development (开发)
| |-- Fallback (和语言相关的一个程序)
| |-- FontLab (字库)
| |-- GestureBuilder (手势动作)
| |-- NinePatchLab (?)
| |-- OBJViewer (OBJ查看器)
| |-- SdkSetup (SDK安装器)
| |-- SpareParts (高级设置)
| |-- Term (远程登录)
| `-- launchperf (?)
|-- build (编译脚本模板)
|-- cmds (有个monkey工具)
|-- data (配置数据)
|-- docs (文档)
|-- host (主机端USB驱动等)
|-- ide (集成开发环境)
|-- ndk (本地开发套件——c语言开发套件)
|-- pdk (Plug Development Kit)
|-- samples (演示程序)
| |-- AliasActivity ()
| |-- ApiDemos (API演示程序)
| |-- BluetoothChat (蓝牙聊天)
| |-- BrowserPlugin (浏览器插件)
| |-- BusinessCard (商业卡)
| |-- Compass (指南针)
| |-- ContactManager (联系人管理器)
| |-- CubeLiveWall** (动态壁纸的一个简单例程)
| |-- FixedGridLayout (像是布局)
| |-- GlobalTime (全球时间)
| |-- HelloActivity (Hello)
| |-- Home (Home)
| |-- JetBoy (jetBoy游戏)
| |-- LunarLander (貌似又是一个游戏)
| |-- MailSync (邮件同步)
| |-- MultiResolution (多分辨率)
| |-- MySampleRss (RSS)
| |-- NotePad (记事本)
| |-- RSSReader (RSS阅读器)
| |-- SearchableDictionary (目录搜索)
| |-- **JNI (JNI例程)
| |-- SkeletonApp (空壳APP)
| |-- Snake (snake程序)
| |-- SoftKeyboard (软键盘)
| |-- Wiktionary (?维基)
| `-- Wiktionary**(?维基例程)
|-- scripts (脚本)
|-- sdk (sdk配置)
|-- simulator (?模拟器)
|-- testrunner (?测试用)
`-- tools (一些工具)
⑥ android monkey测试需要调用源代码么
monkey测试是随机调用app的各个功能,不调用源代码。
⑦ android 源码 怎么只编译 systemui
Google提供的Android包含了原始Android的目标机代码,主机编译工具、仿真环境,下载的代码包经过解压后(这里是Android2.2的源码包),源代码的第一层目录结构如下: -- Makefile -- bionic (bionic C库) -- bootable (启动引导相关代码) -- build (存放系统编译规则及generic等基础开发包配置) -- cts (Android兼容性测试套件标准) -- dalvik (dalvik JAVA虚拟机) -- development (应用程序开发相关) -- external (android使用的一些开源的模组) -- frameworks (核心框架——java及C++语言) -- hardware (主要保护硬解适配层HAL代码) -- libcore -- ndk -- device -- out (编译完成后的代码输出与此目录) -- packages (应用程序包) -- prebuilt (x86和arm架构下预编译的一些资源) -- sdk (sdk及模拟器) -- system (文件系统库、应用及组件——C语言) `-- vendor (厂商定制代码) bionic 目录 -- libc (C库) -- arch-arm (ARM架构,包含系统调用汇编实现) -- arch-x86 (x86架构,包含系统调用汇编实现) -- bionic (由C实现的功能,架构无关) -- docs (文档) -- include (头文件) -- inet -- kernel (Linux内核中的一些头文件) -- netbsd (?netbsd系统相关,具体作用不明) -- private (?一些私有的头文件) -- stdio (stdio实现) -- stdlib (stdlib实现) -- string (string函数实现) -- tools (几个工具) -- tzcode (时区相关代码) -- unistd (unistd实现) `-- zoneinfo (时区信息) -- libdl (libdl实现,dl是动态链接,提供访问动态链接库的功能) -- libm (libm数学库的实现,) -- alpha (apaha架构) -- amd64 (amd64架构) -- arm (arm架构) -- bsdsrc (?bsd的源码) -- i386 (i386架构) -- i387 (i387架构?) -- ia64 (ia64架构) -- include (头文件) -- man (数学函数,后缀名为.3,一些为freeBSD的库文件) -- powerpc (powerpc架构) -- sparc64 (sparc64架构) `-- src (源代码) -- libstdc++ (libstdc++ C++实现库) -- include (头文件) `-- src (源码) -- libthread_db (多线程程序的调试器库) `-- include (头文件) `-- linker (动态链接器) `-- arch (支持arm和x86两种架构) bootable 目录 -- bootloader (适合各种bootloader的通用代码) `-- legacy (估计不能直接使用,可以参考) -- arch_armv6 (V6架构,几个简单的汇编文件) -- arch_msm7k (高通7k处理器架构的几个基本驱动) -- include (通用头文件和高通7k架构头文件) -- libboot (启动库,都写得很简单) -- libc (一些常用的c函数) -- nandwrite (nandwirte函数实现) `-- usbloader (usbloader实现) -- diskinstaller (android镜像打包器,x86可生产iso) `-- recovery (系统恢复相关) -- edify (升级脚本使用的edify脚本语言) -- etc (init.rc恢复脚本) -- minui (一个简单的UI) -- minzip (一个简单的压缩工具) -- mttils (mtd工具) -- res (资源) `-- images (一些图片) -- tools (工具) `-- ota (OTA Over The Air Updates升级工具) `-- updater (升级器) build目录 -- core (核心编译规则) -- history (历史记录) -- libs `-- host (主机端库,有android “cp”功能替换) -- target (目标机编译对象) -- board (开发平台) -- emulator (模拟器) -- generic (通用) -- idea6410 (自己添加的) `-- sim (最简单) `-- proct (开发平台对应的编译规则) `-- security (密钥相关) `-- tools (编译中主机使用的工具及脚本) -- acp (Android "acp" Command) -- apicheck (api检查工具) -- applypatch (补丁工具) -- apriori (预链接工具) -- atree (tree工具) -- bin2asm (bin转换为asm工具) -- check_prereq (检查编译时间戳工具) -- dexpreopt (模拟器相关工具,具体功能不明) -- droiddoc (?作用不明,java语言,网上有人说和JDK5有关) -- fs_config (This program takes a list of files and directories) -- fs_get_stats (获取文件系统状态) -- iself (判断是否ELF格式) -- isprelinked (判断是否prelinked) -- kcm (按键相关) -- lsd (List symbol dependencies) -- releasetools (生成镜像的工具及脚本) -- rgb2565 (rgb转换为565) -- signapk (apk签名工具) -- soslim (strip工具) `-- zipalign (zip archive alignment tool) dalvik目录 dalvik虚拟机 . -- dalvikvm (main.c的目录) -- dexmp (dex反汇编) -- dexlist (List all methods in all concrete classes in a DEX file.) -- dexopt (预验证与优化) -- docs (文档) -- dvz (和zygote相关的一个命令) -- dx (dx工具,将多个java转换为dex) -- hit (?java语言写成) -- libcore (核心库) -- libcore-disabled (?禁用的库) -- libdex (dex的库) -- libnativehelper (Support functions for Android's class libraries) -- tests (测试代码) -- tools (工具) `-- vm (虚拟机实现) development 目录 (开发者需要的一些例程及工具) -- apps (一些核心应用程序) -- BluetoothDebug (蓝牙调试程序) -- CustomLocale (自定义区域设置) -- Development (开发) -- Fallback (和语言相关的一个程序) -- FontLab (字库) -- GestureBuilder (手势动作) -- NinePatchLab (?) -- OBJViewer (OBJ查看器) -- SdkSetup (SDK安装器) -- SpareParts (高级设置) -- Term (远程登录) `-- launchperf (?) -- build (编译脚本模板) -- cmds (有个monkey工具) -- data (配置数据) -- docs (文档) -- host (主机端USB驱动等) -- ide (集成开发环境) -- ndk (本地开发套件——c语言开发套件) -- pdk (Plug Development Kit) -- samples (演示程序) -- AliasActivity () -- ApiDemos (API演示程序) -- BluetoothChat (蓝牙聊天) -- BrowserPlugin (浏览器插件) -- BusinessCard (商业卡) -- Compass (指南针) -- ContactManager (联系人管理器) -- CubeLiveWall** (动态壁纸的一个简单例程) -- FixedGridLayout (像是布局) -- GlobalTime (全球时间) -- HelloActivity (Hello) -- Home (Home) -- JetBoy (jetBoy游戏) -- LunarLander (貌似又是一个游戏) -- MailSync (邮件同步) -- MultiResolution (多分辨率) -- MySampleRss (RSS) -- NotePad (记事本) -- RSSReader (RSS阅读器) -- SearchableDictionary (目录搜索) -- **JNI (JNI例程) -- SkeletonApp (空壳APP) -- Snake (snake程序) -- SoftKeyboard (软键盘) -- Wiktionary (?维基) `-- Wiktionary**(?维基例程) -- scripts (脚本) -- sdk (sdk配置) -- simulator (?模拟器) -- testrunner (?测试用) `-- tools (一些工具)