自动化测试中不同uid 之UI touch操作
来源:互联网 发布:michael angelo知乎 编辑:程序博客网 时间:2024/06/11 16:56
在自动化测试中touch组件的操作,一般有以下几个方法
x,y代表横纵坐标
1.MonkeyRunner
在其Python脚本或者monkeyrunner命令行中调用
device.touch(x,y,'')
2.Instrumentation
try { Instrumentation inst=new Instrumentation(); inst.sendPointerSync(MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis(), MotionEvent.ACTION_DOWN, x, y, 0)); inst.sendPointerSync(MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis(), MotionEvent.ACTION_UP, x, y, 0)); } catch(Exception e) { Log.e("Exception when sendPointerSync", e.toString()); }
3.Solo
需导入robotium库,robotium是一套黑盒测试工具
solo.clickOnScreen(x,y);
4.利用runtime运行shell命令
Runtime.getRuntime.exc("sendevent /dev/input/event0 3 0 x")Runtime.getRuntime.exc("sendevent /dev/input/event0 3 1 y")Runtime.getRuntime.exc("sendevent /dev/input/event0 1 330 1")Runtime.getRuntime.exc("sendevent /dev/input/event0 0 0 0") Runtime.getRuntime.exc("sendevent /dev/input/event0 1 330 0")Runtime.getRuntime.exc("sendevent /dev/input/event0 0 0 0")以上六句缺一不可
以上方法中,2、3只能touch当前的线程的UI,如果超越界限将拒绝访问,比如你在当前Activity发送对statusBar的点击事件,那么将报错。虽然二者同时存在于同一界面,但属于不同UID线程。1、4方法有点像第三者的操作,所以屏幕任何地方均可用于。但是MonkeyRunner仅适用于黑盒测试,在大部分基于白盒的自动化测试,都是采用创建Instrumentation的APK的方法,所以个人觉得4方法比较巧妙
- 自动化测试中不同uid 之UI touch操作
- UI自动化测试系列之-----TestNg中使用继承
- UI自动化测试,模拟用户操作。
- UI自动化测试的初始化操作。
- android自动化测试之monkeyrunner中touch参数坐标的获取方法
- iOS自动化测试之UI自动化测试学习笔记
- iOS自动化测试之UI自动化测试大纲
- 自动化测试之Python + selenium = Web UI自动化测试
- 自动化测试之Python + selenium = Web UI自动化测试
- 自动化测试之元素操作
- Android UI 自动化测试之UiDevice
- Android UI 自动化测试之UiSelector
- Android UI 自动化测试之UiObject
- Android UI 自动化测试之UiCollection
- iOS自动化测试之UI自动化框架调研
- UI自动化测试浅析
- UI自动化测试
- Android UI自动化测试
- new/delete 与 malloc/free 的区别
- [Android环境搭建] INSTALL_FAILED_MISSING_FEATURE
- 二叉搜索树
- 企业家最困难的事就是“开始”
- 使用MAVEN构建并管理项目
- 自动化测试中不同uid 之UI touch操作
- java得到年月日小时分秒
- MSSQL日期时间函数大全
- 简单的socket通讯
- 怎样从文本文件执行SQL语句--MySql数据库
- 给tomcat指定一个默认JDK,使不同tomcat使用不同的JDK
- Linux下修改mysql默认最大连接数(转)
- 对于irrlicht由ISceneManager创建出来的对象dynamic_cast失效的看法RuntimeError: Access violation - no RTTI data
- PHP header()