基于Docker+模拟器的Appium自动化测试(一)

获取Appium Docker镜像并启动Appium

在讲解这部分内容之前,先对作者的演示环境做一个简单的说明。作者宿主机为Windows 10 64位操作系统,宿主机上已安装夜神模拟器及其Python等开发环境,其IP地址为192.168.0.104。在宿主机上有一个CentOS 7的Vmware虚拟机,虚拟机已安装Docker,其对应的IP地址为192.168.45.130。

如图8-204所示,进入CentOS虚拟机,输入"systemctl start docker"命令启动Docker。

图8-204 启动Docker

如图8-205所示,输入"docker search appium"查找关于"appium"已有的镜像信息。

图8-205 查找关于"appium"的已有镜像信息

如图8-206所示,这里我们要拉取的是"appium/appium"镜像,输入"docker pull appium/appium"命令。

图8-206 拉取"appium/appium"镜像

镜像下载完成后,您可以输入"docker images"来查看该镜像的相关信息,如图8-207所示。

图8-207 查看本机已有镜像

如图8-208所示,输入"docker run --privileged -d -p 4723:4723 --name appium1 appium/appium"命令,即:启动appium服务,将端口映射为4723、容器命名为appium1。

图8-208 启动容器的appium

下面对该命令中主要的参数做一个简单说明:

  • privileged:使用该参数,容器内的root拥有真正的root权限,否则容器内的root只是外部的一个普通用户权限。

-d:以分离模式启动容器,分离模式指的是在后台运行,而前景模式指的是在前台运行。默认分离模式设置为假。

-p:指定要映射的p和端口。

--name:为容器指定一个名字,方便记忆和对其进行操作。

如图8-209,输入"docker ps"命令,查看正在运行的容器。

图8-209 启动容器的appium

模拟器的设置

打开"夜神模拟器"的系统设置,切换到"手机与网络"页,选中网络设置下的"开启网络连接"和"开启网络桥接模式"复选框,而后选择"静态IP"单选框,在IP地址中输入"192.168.0.105",网关等内容不再赘述,请参见图8-210。

图8-210 "夜神模拟器"的系统设置配置项内容

使用"adb connect 127.0.0.1:62001"连接到设备,而后应用"adb --s 127.0.0.1:62001 tcpip 9000"命令,设置模拟器的连接方式为tcpip方式并指定使用端口为9000,如图8-211所示。

图8-211 设置模拟器tcpip连接方式

容器连接模拟器

切换到CentOS虚拟机,使用"docker exec --it appium1 adb connect 192.168.0.105:9000"连接夜神模拟器,再使用"docker exec --it appium1 adb devices"命令来查看设备情况,若出现"192.168.0.105:9000 device"信息,则表明连接成功,如图8-212所示。

图8-212 容器连接模拟器相关命令

输入"docker inspect --format='{{.NetworkSettings.IPAddress}}' appium1"命令来查看appium1容器的IP地址,其IP地址为"172.17.0.2",如图8-213所示。

图8-213 appium1容器IP地址

相关推荐
IT二叔9 小时前
Kubernetes(K8s)-01-简介
云原生·容器·kubernetes
暖和_白开水9 小时前
数据分析agent(十三_3):docker mysql容器镜像服务的异常错误
mysql·docker·容器
爱小黄11 小时前
使用docker搭建集群-使用 Docker 搭建 KingbaseES 集群
运维·docker·容器
余—笙13 小时前
Docker安装rabbitmq并安装延迟队列插件
docker·容器·rabbitmq
心念枕惊14 小时前
Docker--Docker Swarm集群
运维·docker·容器
敖行客 Allthinker14 小时前
docker容器安装Python反推镜像步骤(适用于临时调试用)
python·docker·容器
tonydf16 小时前
传统老手艺之容器编排
后端·容器·aiops
张忠琳16 小时前
【NVIDIA】NVIDIA k8s-device-plugin v0.19.3 配置API模块深度分析之二
云原生·容器·架构·kubernetes·nvidia
摇曳的精灵17 小时前
dify的docker部署
运维·docker·容器·dify
蒸鱼Yuzheng17 小时前
游戏性能测试完整回答:场景、设备、指标、基线与回归判定
软件测试·性能测试·帧率·游戏测试·qa面试