前言
前面三篇文章(见下文列表)已经把最基本的 Appium 自动化操作 Android 系统的流程跑通了。
接下来就是进阶部分的内容了,先来优化一下 Appium Server。毕竟它的本质是一个网络服务,那么用云技术来优化一下还是很有必要的。
注:本文高度参考了 B 站的这个视频:【环境搭建】docker部署appium-server
安装 Docker
如果是 Linux 或者 Mac 系统,Docker 的安装很好解决,用命令行就行,可以参考我之前写的文章《Ubuntu 一行命令装软件——Docker》。但是如果是 Windows 系统的话,就需要安装 Docker Toolbox 了,注意系统要求,必须 64位 win7 以上,且开启了虚拟化功能。
To run Docker, your machine must have a 64-bit operating system running Windows 7 or higher. Additionally, you must make sure that virtualization is enabled on your machine. To verify your machine meets these requirements, do the following:
更具体的要求和验证方法,可点击前文的链接查看,下载地址在 这里。安装过程中会让你选择安装哪些依赖,因为之前安装过 VirtualBox 了,所以这里就不需要选择了,否则可能发生老版本替代新版本的问题。
安装完之后,推荐直接运行它提供的 Kitematic (Alpha) 快捷方式,会帮你初始化虚拟机和登录 Docker Hub 账号。登录这一步可以跳过,但是早晚要弄的,还是注册一个吧。
然后运行 Docker Quickstart Terminal,其实启动的是安装目录下的 start.sh 脚本,看到下面的页面,就代表准备就绪了,注意记住 IP,会经常用到,通常都是 192.168.99.100。
然后运行一下 docker run hello-world 命令,如果看到了 Hello from Docker! 的字样,那就没问题了。
注意:这时候我们要是启动了 VirtualBox,应该会看到一个名字为 default 的虚拟机在后台运行。这个就是 Docker Toolbox 的载体,千万不要删除。
启动 Appium 及测试
Docker 安装完之后,就是拉 appium 的镜像(如果是国内的同学,估计需要修改一下 docker hub 的源,参考《Ubuntu 一行命令装软件——Docker》的内容。),然后启动即可,相关命令如下:
docker pull appium/appium
# 参数:最高权限、后台启动、端口映射、重命名
docker run --privileged -d -p 4723:4723 --name appium appium/appium
# Check
docker ps -a
# 容器内运行命令,如果是 win 系统,前面有可能需要加上 winpty
docker exec -it appium <CMD>
接下来就是参考《APP 自动化(三)——连接 Appium 和 Android》的内容了,大概步骤是:
- 启动 VirtualBox 的 Android 系统(注意查看 IP 是否变化);
- 运行
docker exec -it appium adb connect 192.168.6.192:5555连接 Android; - 启动 Appium Inspector,修改配置后运行;
- (可选)修改测试脚本并运行。
结语
之前原生安装 Appium 可真是挺费劲的,现在换成了 Docker,真的是方便太多了。但是会多占用一些系统资源,所以我自己在本地开发的时候还是会选择原生的方式。
不过这个服务早晚是要放到服务器上的,有了 Docker 模式,无疑方便了很多。接下来就是考虑如何在远程服务器上连接 Android 了。目前想到的要么是用内网穿透,要么试试云手机。目前更倾向于后者,毕竟内网穿透又是一个完整技术问题了,复杂度相对高一些。
总之,线下开发测试应该会采用「Script + Appium + Appium Inspector + Android 虚拟机」的组合。线上运行会采用「云函数 + Appium Server + 云手机」的组合,各位同学请拭目以待。