appium uiautomator 移动端自动化测试工具

时间:2022-12-26 17:09:03

我们之前讲了很多抓包软件
比如fiddler https://www.cnblogs.com/zichliang/p/16067941.html
比如mitmproxy https://www.cnblogs.com/zichliang/p/16965902.html

这些工具都是用来抓包的,但是如果有些数据我们抓不到包怎么办
在电脑上 我们可以使用selenium来爬取
拿手机上 是不是也有selenium
是的 有,这里就介绍一款 app selenium appium

  1. appium 是哟个自动化测试开源工具 支持ios和安卓平台的应用 以及web应用和混合应用
  2. appium 是一个跨平台的工具:它允许测试人员在不同的平台(ios,Android)使用同一套API来编写自动化测试脚本,这样大大的增加了ios和Android测试套件间的复用性。

selenium

appium类库封装了标准Selenium客户端的类库
appium 客户端类库实现了Mobile Json write protocal,W3C WebDriver spec(自动化协议)
appium 服务端定义了官方协议的扩展,位appium 用户提供了方便的接口来执行各种设备动作

通用

Appium特点

  1. 多平台
  2. appium 选择了Client/Server 的设计模式
  3. appium 扩展了WebDrive的协议
  4. 多语言

Appium 工作原理

appium uiautomator 移动端自动化测试工具

Appium 移动测试工具安装

下载地址 : http://appium.io/
https://github.com/appium/appium-desktop/releases

appium uiautomator 移动端自动化测试工具

这个链接下载下来的是服务端
客户端 通过pip 来安装

** 还有一种方式安装 Appium
通过node.js 来安装
bug巨多!!!!!  尽量不要选择这种方式
可以自行百度查询(通过npm 安装)

还需要安装https://github.com/appium/appium-inspector/releases/tag/v2022.2.1
启动
appium uiautomator 移动端自动化测试工具

host 默认是所有网卡 都可以访问
port 是端口

uiautomator 工具的使用

什么是 uiautomator

Android4.3 发布的测试工具
uiautomator是用来做ui测试的,也就是普通的手工测试,嗲家每个控件元素,看输出结果是否符合预期,比如登陆页面分别输入正确和错误的用户名密码,然后点击登录按钮看看是否能登录以及是否有错误等等

uiautomator工具的组成

uiautomatorviewer——一个图形界面工具来扫描和分析应用的ui控件,存放在tools目录下

uiautomator——一个测试的Java库,包含了创建ui测试的各种API和执行自动化测试的引擎

打开tools > uiautomatorviewer.bat 这个批处理文件

appium uiautomator 移动端自动化测试工具
appium uiautomator 移动端自动化测试工具
相当于 网页中定位某个元素

由于 uiautomatorviewer 的功能非常的少 所以我们需要给他升级一下
下载 lazyuiautomatorviewer
https://github.com/lazytestteam/lazyuiautomatorviewer

appium uiautomator 移动端自动化测试工具

appium 使用

appium 架构
appium uiautomator 移动端自动化测试工具

Desired Capability

desired capability的功能是配置Appium会话,他们告诉Appium服务器您想要的自动化的平台和应用程序
appium uiautomator 移动端自动化测试工具
我们知道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
如下图
appium uiautomator 移动端自动化测试工具

appPackage
appium uiautomator 移动端自动化测试工具

或者可以通过命令:
aapt dump badging C:\Users\13689\Downloads\com.tal.kaoyan.apk find "launchable-activity"
appium uiautomator 移动端自动化测试工具
另外一种方法:

adb shell
logcat |grep cmp=

然后打开 软件 就能查看到信息了

appium uiautomator 移动端自动化测试工具

appium uiautomator 移动端自动化测试工具

!!! 注意
appium uiautomator 移动端自动化测试工具
appium uiautomator 移动端自动化测试工具

进入界面是这样的
appium uiautomator 移动端自动化测试工具

Inspector详细功能介绍

详细配置见下图
appium uiautomator 移动端自动化测试工具
appium uiautomator 移动端自动化测试工具
appium uiautomator 移动端自动化测试工具
当然我们做手机端测试 或者爬虫 一般不适用这个工具
我们使用另一款uiautomator
注意:
不能同时启动uiautomator 和 appium 不然会报错 因为端口冲突了
appium uiautomator 移动端自动化测试工具
有可能仍会报错
可能需要手动导入信息 完成连接

  1. 截取uix文件
adb shell uiautomator dump /sdcard/sc.uix
adb pull /sdcard/sc.uix

注明:新手机地址改成:/data/local/tmp/.uix**

  1. 截取截图
adb shell screencap -p /sdcard/sc.png

adb pull /sdcard/sc.png

打开sdk tools目录下的uiautomatorviewer.bat,导入从机器获取的截图和资源文件
appium uiautomator 移动端自动化测试工具

此外 我们可以把输入细节打开方便我们观察和操作
开发者选项——> 输入 ✔
appium uiautomator 移动端自动化测试工具
开发者选项——> 输入 ✔

效果如下
appium uiautomator 移动端自动化测试工具

注: 文章中的所有代码都在我的github之中

https://github.com/hybpjx/JS_encryption-and-App_replite/tree/master/App_code
可以在这个上面找到,但是不保证可以运行,因为这个是之前学习时候写的代码