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

发布时间 2023-03-22 19:08:14作者: 始識

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

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

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 移动测试工具安装

下载地址 : 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 不然会报错 因为端口冲突了

有可能仍会报错
可能需要手动导入信息 完成连接

  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,导入从机器获取的截图和资源文件

此外 我们可以把输入细节打开方便我们观察和操作
开发者选项——> 输入 ✔

开发者选项——> 输入 ✔

效果如下

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

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