目录
移动端环境搭建
获取移动端数据的作⽤?
- 数据分析
- ⽤户画像
- 商业竞争
- 统计系统
UIAutomator的介绍
UIAutomator是google提供的⽤来做安卓⾃动化测试的⼀个java库
UIAutomator的缺陷
- 测试脚本只能⽤Java语⾔开发
- 测试脚本要打包成jar包或者apk包上传到设备上才能实现
UIAutomato2的优势
- UI⾃动化编写采⽤Python,学习成本低
- UI控件识别有专⻔的⼯具 weditor
- 环境搭建简单
- UI⾃动化脚本运⾏稳定
UIAutomator2的执⾏流程
- 在PC端来编写脚本(相当于发送HTTP请求到移动设备的server端)
- 移动设备通过wifi或usb接收到了PC上发来的HTTP请求,执⾏定制的操作
- 在移动设备上安装atx-agent(守护进程),随后atx-agent启动ui2服务(默认 7912端⼝)进⾏监听
adb的简介和u2的基本操作
adb的安装与使⽤
Adb⼜称Android调试桥,⽤于通过电脑端与模拟器或者是设备之间的交互的⼀个 ⼯具
- Adb client 命令⾏程序‘adb’⽤于从shell或脚本中运⾏adb命令
- Adb server adb server 是运⾏在PC的的⼀个后台程序
- Adbd 程序adbd作为⼀个后台进程在Android设备或模拟器系统中运⾏
adb有什么作⽤?
- 安装卸载apk⽂件
- 移动设备和PC之间拷⻉⽂件
- 查看设备上安装的应⽤信息
- ⽂件管理
- 按键操作
adb如何使⽤?
把adb的bin⽬录添加到环境变量当中
adb devices 查看链接的移动设备
adb kill-server 关闭链接的移动设备
adb install apk⽂件路径 安装app应⽤
adb shell pm list packages 查看应⽤包名
adb uninstall 应⽤包名 卸载应⽤
UIAutomator2快速⼊⻔
python -m uiautomator2 init 初始化移动设备
- Uiautomator-server: 就是⾕歌原声的 uiautomator
- Atx-agent: uiautomator的守护进程
- minicap和minitouch 中2个包是atx-agent增加远程控制功能的依赖
UIAutomator2控制移动设备
u2.connect_wifi('172.17.100.15') 通过wifi
u2.connect_usb('127.0.0.1:62025') 通过usb(⼿机序列号)
u2.connect_adb_wifi('172.17.100.15:5555') 通过adb wifi
UIAutomato2启动⼿机app
使⽤aapt⼯具进⼊这个路径输⼊
aapt dump badging apk的⽂件名
找到包名 d.app_start('包名')
停⽌ d.app_stop('包名')
UIAutomator2⾃动化⼯具基本操作
d.service('uiautomator').running() uiautomator运⾏状态
d.service('uiautomator').start() 启动uiautomator
d.service('uiautomator').stop() 停⽌uiautomator
d.app_install(data='apk地址') 安装app
d.app_current() 获取当前前台app的信息
d.app_stop('包名') 停⽌当前app
d.app_clear('包名') 清除缓存
d.app_uninstall('包名') 卸载app
d.app_list() 获取所有app的信息
d.app_stop_all() 停⽌所有app
d.app_uninstall_all() 卸载所有app
weditor的基本操作
什么是Activity?
Activity是Android系统中的四⼤组件之⼀,可以⽤于显示View。Activity是⼀个与 ⽤户交互的系统模块。
An activity is a single, focused thing that the user can do. Almost all
activities interact with the user, so the Activity class takes care of
creating a window for you in which you can place your UI with
setContentView(View).
Activity的控件
TextView 显示⽂字
EditText 输⼊框
ImageView 显示图⽚
Button 按钮
CheckBox 复选框
RadioButton 单选按钮
weditor的使⽤
1.安装:
pip install weditor -i https://pypi.douban.com/simple
在命令⾏输⼊ weditor
2.weditor的界⾯包括
移动设备选择区
控件属性区域
代码展示区
层级关系和结果展示区域
3. UiSelector和控件定位
定位⽅式 :
1 UiSelector
2 Xpath
Andrid基本布局
线性布局 linearLayout
相对布局 RelativelLayout
帧布局 FrameLayout
表格布局 TableLayout
绝对布局 AbsoluteLayout
控件的属性
index | int | 索引 | 0 |
instance | int | 实例 | 5 |
class | String | 类名 | android.widget.TextVi ew |
package | String | 包名 | com.tl.kaoyan |
check | boolean | 控件勾选状态 | false/true |
enable/clickable | boolean | 控件可点击 | false/true |
focused/focusable | boolean | 焦点 | false/true |
Scrollable | boolean | 滚动条 | false/true |
Long-clickable | boolean | 长按 | false/true |
selected | boolean | 选择状态 | false/true |
⽂本定位的⽅式
Text 全⽂本匹配
textContains ⽂本包含
textMatches 正则表达式
textStartsWith 起始⽂本
ClassName定位的⽅式:
className classNmae的值
classNameMatches 正则表达式匹配 classNmae的值
资源id进⾏定位
resourcdId 资源id
混合定位的⽅式
⽂本定位 资源id ClassName等可以配合使⽤来进⾏定位
坐标点定位法
坐标点定位法分为2种⽅式 ⼀种是通过原始的坐标点来呈现。⼀种是通过%号的⽅
式来呈现
xpath定位的方式
d.xpath('xpath语句')
fiddler抓包⼯具的使⽤
常⻅App抓包软件对⽐
抓包软件名称 | 支持的操作系统 | 适用平台 | 调试难易程度 | 软件功能程度 |
fiddler | windows/linux | 网页端、APP端 | 一般 | 多 |
windows/linux/mac | 网页端、APP端 | 一般 | 多 | |
packetCapture | 安卓 | App端 | 简单 | 少 |
什么是fiddler?
Fiddler是⼀个http协议调试代理⼯具,它能够记录并检查所有你的电脑和互联⽹之 间的http通讯
fiddler功能:
⽀持IE、Chrome、FireFox等等浏览器
可以在phone、pad等移动设备进⾏连接