阿斯蒂芬是什么意思芬

君,已阅读到文档的结尾了呢~~
阿斯蒂芬很好奇论文,斯蒂芬.阿梅尔,阿斯蒂芬,斯蒂芬.阿梅尔wwe,斯蒂芬阿梅尔wwe打人,阿斯蒂芬规划局快乐,斯蒂芬.阿梅尔肌肉,斯蒂芬阿梅尔生化危机,阿斯蒂芬是什么意思,斯蒂芬.阿梅尔打人
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
阿斯蒂芬很好奇论文
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口阿斯蒂芬_妄想学生会吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0可签7级以上的吧50个
本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:53,467贴子:
参加完WWE的“糖哥”乐在...
我叫斯蒂芬库里,我可能...
20块就抽到的纹身镇
难道不是现役?
一个三个总冠军戒指,另...
这个赛季库里几乎赢得了...
克利夫兰市中心,斯蒂芬...
神挡杀死的很的幸福感瞎...
阿斯顿很开放几个人
楼上什么鬼
阿三的发个好就看了
???????????
阿萨德飞规划局快乐发生了什么,吧主来水经验,还是。。。。。。
大半夜撒比撒比
切莫呢什么东东?
贴吧动漫喊你来China Joy撒欢儿啦~
爱仕达风格很健康了
←_←水笔吧主
贴吧热议榜
使用签名档&&
保存至快速回贴1.androidstudio学习
android studio快捷键
ctrl+shift+N文件查找
ctrl+shift+F查找
ctrl+alt+L格式化&
ctrl+alt+t常用结构语句
ctrl+alt+m封装方法
ctrl+f
ctrl+r替换
alt+shift+代码上下移动
ctrl+y删除一行
alt+insert覆盖父类方法&
double shift查找
as中android项目目录
project=eclipse中的工作空间
module=eclipse中的单个项目(包括可运行项目或者library项目)
androidstudio 更新
settings-》system settings-》updates
androidstudio导入项目
androidstudio导入androidstudio项目
androidstudio导入eclipse单/多项目
导入多项目eclipse工程:1.直接导入
& & & & & & & & & & & &2.分布导入,做成module,在导入
androidstudio调试
F8一步一步执行
F9跳到下一个断点
androidstudio 协作开发&
svn 忽略操作
settings-》versioncontrol-》ignorefiles
gradle配置
运行时使用正式keystore
多渠道打包
manifest声明metedata
&meta-data android:value=&${VALUE}& android:name=&CHANNEL&/&
build.gradle中声明
productFlavors{
& &xiaomi{}
& &wandoujia{}
& &baidu{}
& &yingyongbao{}
productFlavors.all{
& &flavor-&flavor.manifestPlaceholders=[VALUE:name]
gradle中app选项
androidstudio插件
settings-&plugin
GsonFormat & -》根据json字符串生成类(java类里邮件 &generate-gsonformat 输入json数据直接生成类)
butterknife插件-》xml邮件 generate android code
android selector generator-》 由pressed 和normal图片生成selector
as代码检测性能分析
代码检测-》android lint&
工程右键-》analyze-》inspectcode
性能分析-》monitor
传代码jcenter
jcenter相对maven对各个国家的网络访问友好很多
arr相对jar,能打包res和manifest,arr相当于library
注册bintray账号(),
创建包名,配置认证信息,
2.androidUI自动化测试简介与实例
monkeyrunner:
python语言编写
adb链接pc运行
主要用于ui测试
逻辑判断较差
instrumentation:
& & &java编写
adb命令或者手机中直接启动
单个activity测试,需要与应用有相同签名
有时候会需要root
robotium基于instrumentation,代码量相对较少
UIAutomator
主要用于ui自动化测试,模拟人对手机的操作
编写快速,运行简单,无activity限制,无签名限制,几乎可以模拟所有的人为操作
//lib中放入andoroid.jar 和 uiautomator.jar
public class Test extends UiAutomatorTestCase {&
public void testDemo() throws UiObjectNotFoundException{
& &//点击home
UiDevice.getInstance().pressHome();
//获取浏览器按钮
UiObject browser=new UiObject(new UiSelector().text(&浏览器&));
//点击并等待打开新的窗体
browser.clickAndWaitForNewWindow();
//获取输入框
UiObject edit=new UiObject(new UiSelector().className(&android.widget.EditText&));
//点击输入框
edit.click();
//删除输入框内容
UiDevice.getInstance().pressDelete();
//输入输入框新内容
edit.setText(&&);
UiDevice.getInstance().pressEnter();&
android create &uitest-project -n &name& -t 1 -p &工作空间&
生成build.xml
修改build.xml & help改为build
运行build.xml
生成一个jar包&
adb & &.jar &push /data/local/tmp
adb shell uiautomator runtest &.jar -c “包名+类名”
######################################################################################
2.2Android UiAutomator 环境配置与编译运行
/fan2597/UiAutomatorHelper &快速编译于测试
1 、打开Eclipse
2 、新建一个java工程,包
3 、增加build path
4 、 新建测试类,继成UiAutomatorTestCase
5 、 编写用例,方法名必须test开头
6 、 编译与运行&
创建build文件:android create uitest-project -n &jar name& -t 1 -p &workspace path&
修改build文件:进入工作空间,打开build.xml文件将第二行的help修改为build
开始编译:ant –buildfile &build.xml 文件路径&
push文件:adb push &path_to_output_jar& /data/local/tmp/&
运行测试:adb shell uiautomator runtest &jar name&-c &包名&.&类名&[#test name]
###################################################################################
2.3 UIAutomatorAPI介绍
2.3.1 UIDevice
& & & 2.3.1.1介绍
&单例模式,getInstance,getUiDevice(可能获取为空),
&功能:获取设备信息
& & & &设备级别的操作
监听器功能:处理脚本被中断
&2.3.1.2按键与keycode使用
& & & & 手机常见按键
VOLUME_DOWN
RecentApps
api方法 &press***()
& & & & pressKeyCode()
META Key: alt shift caps_lock
& & & & & & 列 & & & & & &激活状态 & & & & & & & &metastate
& & & & & & base & & & & & meta_key未激活 & & & & &0
& & & & & & caps & & & & & shift或者caps_lock激活 &1&
& & & & & & fn & & & & & & alt激活 & & & & & & & & 2
& & & & & & caps_fn & & & shift或者caps_lock和alt 3
例:使用keycode输入字符
UIDevice.getInstance().pressKeyCode(KeyEvent.KeyCode_A);//输入小写a
& & & &UIDevice.getInstance().pressKeyCode(KeyEvent.KeyCode_A,1);//输入大写A
&2.3.1.3获取坐标与坐标点击
& & & & 左上角是(0,0)
dp:设备独立像素,320像素放到640像素要拉升一倍()
boolean &click(x,y);
int getDisplayHeight();
int getDisplayWidth();
Point getDisplaySizeDp();
sdk/tools/uiautomator.bat & 获取屏幕快照
click(x,y);点击某一点
rect,矩形对象
UIObject clock = new UiObject(new UiSelector().resourceId(&***&));//根据id获取,id有快照可得
Rect rect = clock.getBounds();//该对象的矩形区域
int centerX = rect.centerX();
int centerY = rect.centerY();//获取该区域终点,然后再click(centerX,centerY);&
&2.3.1.4拖拽与滑动
& & & & 步长:从一点到另一点滑动的时间
boolean drag(startX,startY,endX,endY,steps);//拖动对象从一个坐标到另一个坐标
boolean swipe(Point[] segments,int segmentSteps);//在点阵中滑动
boolean swipe(startX,startY,endX,endY,steps)//通过坐标滑动屏幕
&2.3.1.5旋转屏幕
& & & & 0&
void setOrientationLeft(); & 通过禁用传感器,模拟设备左转
void setOrientationRight(); & 通过禁用传感器,模拟设备右转
void setOrientationNatural();通过禁用传感器,模拟设备转到默认状态
void unfreeezeRotation(); & & 重启传感器和物理旋转
void freezeRotation(); & & & &冻结
boolean isNaturalOrientation(); 是否是默认方向
int getDisplayOrientation(); & 返货旋转角度 0 1 2 3 对应 0 90 180 270
&2.3.1.6灭屏与唤醒屏幕
& & & & 都是按电源键
void wakeUp();
void sleep();
boolean isScreenOn();检测屏幕是否亮屏
&2.3.1.7截图与等待空闲
& & & & 图片缩放比例:
图片质量:
图片格式:PNG格式
空闲状态:窗口没有动作,界面处于不动的
窗口更新事件:打开窗口为更新,更新完成就是空闲
boolean takeScreenShot(File);
boolean takeScreenShot(File,scale,quality);
等待空闲相关的api
void waitForIdle(timeout);//如果指定事件内还没有完成更新,则报错
void waitForIdle();//默认十秒
boolean waitForWindowUpdate(packagename,timeout)
&2.3.1.8获取包名,开启通知栏,快速设置,获取布局文件
& & & & 获取包名
& & & & & & & & void getCurrentPackageName();
& & & & & & & & &
开启通知栏
& & & & & & & & void openNotification();
& & & & & & & & void openQuickSettings();
获取布局文件 /data/local/tmp文件夹下
& & & & & &void dumpWindowHierachy(filename);&
&2.3.1.9实例演示(打开浏览器输入)
& & & & & & &亮屏-解锁-单机浏览器-单机输入框-输入-按回车
& & & & public void testBrowser() throws RemoteException{
//灭屏-》亮屏-&解锁-&单击浏览器-&单击网址输入框-&输入-&按回车键-&旋转屏幕-&截图
UiDevice.getInstance().sleep();
if(!UiDevice.getInstance().isScreenOn()){
UiDevice.getInstance().wakeUp();
UiDevice.getInstance().swipe(536, , 1496, 20);
//按home键
UiDevice.getInstance().pressHome();
//点击浏览器
UiDevice.getInstance().click(950, 1800);&
//点击输入框
UiDevice.getInstance().click(589, 151);&
UiDevice.getInstance().pressDelete();
UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_W);&
UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_W);&
UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_W);&
UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_PERIOD);&
UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_B);&
UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_A);&
UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_I);&
UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_D);&
UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_U);&
UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_PERIOD);&
UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_C);&
UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_O);&
UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_M);&
//enter确认
UiDevice.getInstance().pressEnter();
//屏幕左转
UiDevice.getInstance().setOrientationLeft();
UiDevice.getInstance().takeScreenshot(new File(&/sdcard/browser.png&));&
2.3.2 UIObject
& & & 2.3.2.1UiObject类介绍
& & & & 代表组件对象,对象有许多模拟操作手机的属性和方法&
&2.3.2.2点击与长按
& & & & rect代表矩形区域[left,top] [right,bottom]
默认的click是点击中点
boolean click();
boolean clickAndWaitForNewWindow(timeout);
boolean clickAndWaitForNewWindow();//默认为5.5秒,超时则异常
boolean clickBottomRight();
boolean clickTopLeft();
boolean longClick();//如果想保持长按效果,可以使用UIDevice的swipe来模拟
boolean longClickBottomRight();
boolean longClickTopLeft();
new UiSelector.resouceId(id);
&2.3.2.3拖拽与滑动
& & & & 拖拽到某点或另一个组件上
boolean drageTo(dest,steps);//速度慢会组合成文件夹,速度慢则会将dest赶走
boolwan dragTo(destX,destY,steps);
boolean swipDown(steps);
& & & & boolean swipUp(steps);
boolean swipLeft(steps);//recentAps 清除
boolean swipRight(steps);
&2.3.2.4输入文本与清除文本
& & & & boolean setText(text);//输入文本 (如果已经有 文字则会先删除)
void clearTextField();//清除文本(先长按再删除:有时候会出错)
& & & & & & &
自定义删除动作
& & & & & & &//移动光标到行尾,使用backspace
& & & & & & &UiObject w = new UiObject(UiSelector.text(&接受者&)); UIDevice.getInstance().pressKeyCode(KeyEvent.KeyCode_Move_end)
while(!w.exsist()) &//逐个删除直到接收者出现
& & & & UIDevice.getInstance().pressKeyCode(KeyEvent.KeyCode_Del);
&2.3.2.5获取对象的属性和属性的判断
& & & & &Rect getBounds();
&int getChildCount();
&String getClassName(); 类名
&String getContentDescription(); 描述
&String getPackageName(); &包名
&String getText(); &
&Rect getVisibleBounds();//获取课件区域&
&2.3.2.6手势操作
& & & & 两指手势 &performTwoPointerGesture(start1,start2,end1,end2,steps);
多指手势 &performMultiPointer(touches);
两指合拢 &boolean &pinchIn(percent,steps);
两指扩张 &boolean &pinchOut(percent,steps); &
&2.3.2.7判断对象是否存在
& & & & & & boolean waitForExists(timeout);等待对象出现
boolean waitForGone(timeout);等待对象消失
boolean exsists();检查对象是否存在&
2.3.4 UICollection
& & & 2.3.4.1介绍
& & & & 元素条目集合,同一种类的合集
先按照一定的条件枚举中符合条件的子元素,然后再通过一定的条件查找
& & & & & & &使用场景1.容器类组件一般作为父类,2.通过UIObject很难定位3.获取某一类集合的数量
&2.3.4.2 集合中查找
& & & & &UiObject getChildByDescription(pattern,text);
&UiObject &getChildByText(pattern,text);
&UiObject getChildByInstance(pattern,instance);
&这三个方法都是先从patter找到一批,再从第二个参数的条件获取到特定的实例
&如果没找到抛出uiobjectnotfoundexception
& & & 2.3.4.3 获取符合条件的object数量 &
& & & & & & & int getChildCount(pattern);
2.3.5 UIScrollable
& & & 2.3.5.1介绍
& & & & UiCollection自类,专门处理滚动事件,提供各种滚动方法
&2.3.5.2快速滚动
& & & & 步长:从一点到另一点滑动的时间
扫动次数:
boolean flingBackword();步长为5向后滚动
boolean flingForward();向前滚动
boolean flingToBegining(swipes);快速扫动到开头
boolean flingToEnd(swipes);快速扫动到结尾
swipes不一定能滚动到最前或这最后,需要根据列表的长短来预估swipes
&2.3.5.3设置列表子元素
& & & & UiObject getChildByDescription(pattern,text,allowScrollSearch);
UiObject getChildByDescription(pattern,text);
& & & & UiObject getChildByText(pattern,text,allowScrollSearch);//是否会滚动,查找
UiObject getChildByText(pattern,text);//默认滚动查找
& & & & UiObject getChildByIntance(pattern,instance);
只找当前页面,不滚动查找 &
&2.3.5.4获取与设置最大滚动次数常量
& & & & int getMaxSearchSwipes();//获取最大扫动次数
UIScrollable setMaxSearchSwipes();//设置最大可扫动次数&
默认是30次,如果列表过长,30次就会找不到,所以需要手动设置一个最大滚动次数
&2.3.5.5滑动区域校准常量设置与获取
& & & & & & &校准常量:滑动操作的偏移量
double getSwipeDeadZonePercentage();
UIScrollable setSwipeDeadZonePercentage();
&2.3.5.6向前与向后滚动
& & & & boolean scrollBackward(int steps);
boolean scrollBackward();
boolean scrollFroward();
boolwan scrollForward(steps);
& & & 2.3.5.7滚动到某个对象
& & & & boolean scrollIntoView(selector);
boolean scrollIntoView(uiObject);
boolean scrollTextIntoView(text);
boolean scrollDescriptionINtoView(desc);
boolean scrollToBeginning(maxSwipes);
boolean scrollToBeginning(swipws,steps);
boolean scrollToEnd(maxSwipes);
boolean scrollToEnd(swipws,steps);
&2.3.5.8设置滚动方向
& & & & setAsHorizentalList();//水平滚动
setAsVerticalList();//纵向滚动&
2.3.6 UIWatcher
&UIWatcher用于处理脚本处理过程中遇到非预想的步骤
&测试过程中打了一个电话
&测试过程中有短信,闹钟等非预想步骤
& & & 中断监听检查条件: & boolean checkForCondition();
&监听器需要在用例之前启动,用例出现过程中出现异常才能调用的监听器处理
&监听器操作
&void registerWatcher(name,watcher);//当uiselector无法匹配到对象时,触发
&void removeWatcher(name);
&void resetWatcherTriggers();
&void runWatchers();
&检查监听器
&boolean hasAnyWathcerTriggered();
&boolean hasWatcherTriggered(name);
2.3.7 UIConfigrator
& & &2.3.7.1介绍
& & & &用于设置脚本动作的默认延时
可调节两个模拟动作之间的间隔
可调节输入文本的默认时间间隔
可调节滚动的时间间隔
可调节等待系统空闲时间间隔
2.3.7.2api演示
动作 默认3秒
setActionAcknowledgeMentTimetout();
getActionAcknowledgmentTimeout();
键盘输入 默认0秒
setKeyInjectionDelay();
getKeyInjectionDelay();
滚动默认200ms
setScrollAcknowledgetmentTimeout();
getScrollAcknowledgementTimetou();
空想默认10s
setWaitForIdleAcknowledgementTimeout();
getWaitFroIdleAcknowledgementTimetout();
查找组件默认10s
setWaitFroSelectorTimeout();
getWaitForSelectorTimeout();
2.3.7.3实例
模拟双击与快速单击
使用keycode输入自定义字符串
改变默认速度
#####################################################################################
3 UIAutomator报告
3.1报告的介绍与查看
numtests运行的用例数量
stream信息流错误流
id运行框架
test用例名字
class用例完整类名
current当前运行第几
code状态码
断言失败报告
AssertionFailedError
运行全部通过
(恢复场景最好是先模拟几次back,再home)
脚本错误中途中断
多用例同时运行
setUp-&testCase-&tearDown
tearDown结束
由多个键值对组成的集合
getAutomationSupport().sendStatus(int,bundle);
通过-e传入电话号码拨打电话
-e key value
Bundle b = getParams();
b.get(key);
4 UIAutomator正则表达式
4.1正则表达式
& &记录文本规则的代码
& &元字符:
& &普通字符:
4.2正则表达式的语法
& &.任意字符
& &\s 空格 tab 换行 换页 回车
& &\S非空格字符[^\s]
& &\D非数字字符[^\d]
& &\w一个单词字符
& &\W一个非单词字符
& &^一行的开始
& &$一行的结尾
& &\b一个单词的边界
& &\B一个非单词的边界
& &*任意次数
& &+一次或多次
& &?零次或一次
& &{n}重复n次
& &{n,}重复n次或更多
& &{n,m}n-m次
& &汉字[\u4E00-\u9FA5]
新建闹钟然后删除闹钟
兼容多语言
联系人|people
同种类型对话按钮
y = textMatches(&是|确定|确认|Y&);
n = textMatches(&否|取消|取消|N&);
4 UIAutomator图像处理
1.BitMap,位图,代表一张图片
& & & & & 获取像素点,获取颜色,截取某个区域,压缩,缩放,修改
2.通过Bitmap获取像素与图像截取
3.嵌入文字
4.图像对比
效果类截图
失败与一场截图
利用图像判断组件
5.UiAotumator辅助apk
1.在测试中弹出提示
& 让apk接收UiAutomator发送的消息
& uiautomator可以发送am命令,apk接收命令进行相应操作
& am broadcast -a com.jkxy.action -e key value
& receiver中
& bundle = intent.getExtras();
& value = bundle.get(key);
2.输入中文
& UiAutomatorUicode助手,将输入的原始字符转换成Unicode文本,
& jutf7输入法,
& 辅助的apk,安装jutf-7输入法,设为默认
& UiObject.setText(Utf7ImeHelper.e(&各种语言&));
3.获取应用信息
&UIAutomator快速调试
&1.ant调试
& &/tools/ant/uibuild.xml
& &target 基本执行单元
& &property 变量
& &project 跟元素
& &copy 复制文件或者目录
& &delete 删除文件目录
& &mkdir 创建
& &clean-&build-&install-&test
& &实现ant调试的步骤
& &1.修改名字为test的target
& &2.建一个新的target为debug
& &3.debug依赖为clean build install test
& &4.定义一个testcase为完整类名#用例名
&2.python调试
&3.java调试
##############################################################
Monkey介绍
1.monkey是什么
& google提供的一个用于稳定性和压力测试的命令行工作
& /system/framework/Monkey.jar
& /system/bin/monkey
2.环境变量
由adb启动,adb配置好即可
3.如何运行
adb shell monkey [option] &count&
monkey [option] &count& & /mnt/sdcard/monkey.txt
1是标准2是错误
monkey [option] &count& &1&mnt/sdcar/monkey.txt 2&mnt/sdcard/error.txt
Monkey的基本参数和事件参数
1.基本参数
& &-v -v 输出信息
2.约束条件
& -p 运行执行的包名列表(只能测试有桌面图标的应用,指定应用,可以使用多个-p)
& -c 意图的种类(category)
& -s 随机数种子,
& --throttle&毫秒&&
& --randomize-throttle随机延迟
3.发送事件的类型和频率
& --pct-touch&percent&调整触摸事件的百分比
& --pct-motion&percent&滑动事件比例
& --pct-nav&percent&
& --pct-majornav&percent&
& --pct-syskeys&percent& 如home back start call ,end call
& --pct-appswitch&percent& 界面切换
& --pct-anyevent&percent&
& --pct-flip&percent&键盘的换出隐藏
& --pct-pinchroom&percent& 两指操作
2.Monkey调试参数
android常见错误
ANR:5庙内界面没响应,receiver10秒内每完成
monkey调试参数控制测试停止还是继续 &
--dbg-no-events 只开应用不进行任何操作
--hprof保存内存报告/data/misc
--ignore-crashes
--ignore-timeouts
--ignore-security-exceptions
ignore不设置遇到这些错误,monkey停止,忽略后,monkey会重启
--wait-dbg启动monkey后,先中断其运行,等待调试器附加上来
3.Monkey的黑白名单
黑名单:不测的应用
白名单:值测的应用
只能使用一个,不能同时设置黑名单和白名单。
--pkg-blacklist-file&
--pkg-whitelist-file
黑白名单文件放在/data/local/tmp目录下
格式是包名一行一行的
4.Monkey的测试策略
例子1:整机测试,不测拨号,忽略所有错误,测100万次
adb shell monkey --ignore-crash --ignore-timeouts&
--pkg-blacklist-file /data/local/tmp/black.txt -v -v
例子2:测试计算器30万次,随机种子100,随机延迟1秒忽略所有错误
adb shell monkey -p com.android.caculator2 -s 100 --throttle 1000 --ignore-crash --ignore-timeouts -v -v 300000
例子3:测试计算器,触摸30%,其他案件50%,错误停止,延时200
adb shell monkey -p com.android.caculator2 --throttle 200 -pch-touch 30 --pct-anyevent 50 -v -v
###################################
monkey脚本编写以及使用monkey检查内存泄露
1.monkey脚本编写
1.1格式(简单快捷不需要任何借助工具)
type= raw events
speed= 1.0
#以下为monkey命令
start data &&
DispatchPress(KEYCODE_HOME)
DispatchPress(KEYCODE_MENU)&
& & LaunchActivity(pkgName,className);//打开&
包名跟类名如何获取?
第一种方式,获取正处於前台的应用信息:
adb shell dumpsys activity| find &mFocusedActivity&
第二种方式
adb shell dumsys package packagename
Tap(x,y,tapDuration);点击&
DispatchPress(keycode);
RotateScreen(degree,peresist);
DispatchFlip(true/false);//键盘开关
LongPress();//长按两秒
PressAndHold(x,y,duration);模拟长按
DispatchString(输入字符串);
Drag(startx,starty,endx,endy,step);拖拽
pinchroom();缩放&
userwait(time);
DeviceWakeUp();唤醒屏幕
RunCmd(cmd);运行命令
ProfileWait延时
1.3实例:打开浏览器输入测试10次
打开浏览器
adb shell monkey -f /data/local/tmp/moneky.txt -v -v --throttle 500 &10
-f指向自己写的monkey脚本
Monkey的服务器
adb shell monkey --port 1080
adb forward tcp:1080 tcp:1080
telnet localhost 1080&
Monkey服务器命令源码
/development/cmds/monkey/src/com/adroid/commands/monkey/MonkeySourceNetWork.java&
flip &open/close 打开关闭键盘
touch down /move/up[x][y]
key & down/up [keycode]
sleep [time]
type &[str] & &键入
wake & & & & & &唤醒
tap & [x][y] 点击&
press [keycode] & 按压
deferreturn [event][time][cmd]
getrootview
打开拨号盘,拨打122
1.打开拨号盘: &press KEYCODE_CALL
2. tap &533 1665
3. tap 111 995
& &tap 211 995&
& &tap 211 995&
4.press 533 1659
&#############################################
&Monkey脚本生成工具
&1.工具理论
&2.工具设计
&3.脚本生成工具代码解读
& & /fan2597/MonkeyCreateScript
&Monkey测试:稳定性压力测试
&应用选取策略+随机种子策略+事件策略+异常策略+延时策略+事件数量
&10万:常规测试
&30万:压力测试
&50万:稳定性测试
&100万:长时间测试
& 事件压力专项:&
& -pct-rotation
& -pct-appswitch
& -pct-pinchroom
& -pct-motion
& -pct-syskeys
& -pct-nav
& -pct-anyevent
& 性能专项: &
& &内存,adb shell dumpsys meminfo&进程名&
& &cpu,adb shell -n 1 top|find &进程名&
& &gpu,adb shell dumpsys gfxinfo&进程名&
& &流量 adb shell cat /proc/net/xt_qtaguid/stats/grep &uid#&
& &电量 adb shell dumpsys battery
&脚本策略&
&Monkey脚本,自带错误监听,一旦出错,可以自动化立马停止
&使用情况:anr和crash异常,低概率很难复现的异常。
&随机脚本自动生成:
&MonkeyScript.jar
&生成monkeyscript.txt
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:23682次
排名:千里之外
转载:120篇
(2)(13)(13)(13)(4)(14)(5)(7)(9)(20)(16)(6)}

我要回帖

更多关于 唐·钱德尔 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信