appium uiautomator 移动端自动化测试工具
我们之前讲了很多抓包软件
比如fiddler https://www.cnblogs.com/zichliang/p/16067941.html
比如mitmproxy https://www.cnblogs.com/zichliang/p/16965902.html
这些工具都是用来抓包的,但是如果有些数据我们抓不到包怎么办
在电脑上 我们可以使用selenium来爬取
拿手机上 是不是也有selenium
是的 有,这里就介绍一款 app selenium appium
appium 移动端自动化测试工具
- appium 是哟个自动化测试开源工具 支持ios和安卓平台的应用 以及web应用和混合应用
- appium 是一个跨平台的工具:它允许测试人员在不同的平台(ios,Android)使用同一套API来编写自动化测试脚本,这样大大的增加了ios和Android测试套件间的复用性。
selenium
appium类库封装了标准Selenium客户端的类库
appium 客户端类库实现了Mobile Json write protocal,W3C WebDriver spec(自动化协议)
appium 服务端定义了官方协议的扩展,位appium 用户提供了方便的接口来执行各种设备动作
通用
Appium特点
- 多平台
- appium 选择了Client/Server 的设计模式
- appium 扩展了WebDrive的协议
- 多语言
Appium 工作原理
Appium 移动测试工具安装
下载地址 : http://appium.io/
https://github.com/appium/appium-desktop/releases
这个链接下载下来的是服务端
客户端 通过pip 来安装
** 还有一种方式安装 Appium
通过node.js 来安装
bug巨多!!!!! 尽量不要选择这种方式
可以自行百度查询(通过npm 安装)
还需要安装https://github.com/appium/appium-inspector/releases/tag/v2022.2.1
启动
host 默认是所有网卡 都可以访问
port 是端口
uiautomator 工具的使用
什么是 uiautomator
Android4.3 发布的测试工具
uiautomator是用来做ui测试的,也就是普通的手工测试,嗲家每个控件元素,看输出结果是否符合预期,比如登陆页面分别输入正确和错误的用户名密码,然后点击登录按钮看看是否能登录以及是否有错误等等
uiautomator工具的组成
uiautomatorviewer——一个图形界面工具来扫描和分析应用的ui控件,存放在tools目录下
uiautomator——一个测试的Java库,包含了创建ui测试的各种API和执行自动化测试的引擎
打开tools > uiautomatorviewer.bat 这个批处理文件
相当于 网页中定位某个元素
由于 uiautomatorviewer 的功能非常的少 所以我们需要给他升级一下
下载 lazyuiautomatorviewer
https://github.com/lazytestteam/lazyuiautomatorviewer
appium 使用
appium 架构
Desired Capability
desired capability的功能是配置Appium会话,他们告诉Appium服务器您想要的自动化的平台和应用程序
我们知道Capability是一个字典之后我们是否需要知道他的作用呢?我们在appium中配置app后我们能够通过log看出里面的信息都是启动的一些必要配置,通过上面的配置信息我么也能够看出capability配置的就是我们做自动化的一些必要信息。他主要是告诉server我们本次测试是浏览器还是app,是ios还是android以及android的版本信息等。如果capability不告诉server,那么server就不认识你,也就无法完成我们的自动化测试。
appium Inspector 的使用
音译:英斯派克特尔
使用命令添加配置
aapt dump badging C:\Users\13689\Downloads\com.tal.kaoyan.apk
如下图
appPackage
或者可以通过命令:
aapt dump badging C:\Users\13689\Downloads\com.tal.kaoyan.apk find "launchable-activity"
另外一种方法:
adb shell
logcat |grep cmp=
然后打开 软件 就能查看到信息了
!!! 注意
进入界面是这样的
Inspector详细功能介绍
详细配置见下图
当然我们做手机端测试 或者爬虫 一般不适用这个工具
我们使用另一款uiautomator
注意:
不能同时启动uiautomator 和 appium 不然会报错 因为端口冲突了
有可能仍会报错
可能需要手动导入信息 完成连接
- 截取uix文件
adb shell uiautomator dump /sdcard/sc.uix
adb pull /sdcard/sc.uix
注明:新手机地址改成:/data/local/tmp/.uix**
- 截取截图
adb shell screencap -p /sdcard/sc.png
adb pull /sdcard/sc.png
打开sdk tools目录下的uiautomatorviewer.bat,导入从机器获取的截图和资源文件
此外 我们可以把输入细节打开方便我们观察和操作
开发者选项——> 输入 ✔
开发者选项——> 输入 ✔
效果如下
注: 文章中的所有代码都在我的github之中
https://github.com/hybpjx/JS_encryption-and-App_replite/tree/master/App_code
可以在这个上面找到,但是不保证可以运行,因为这个是之前学习时候写的代码