基于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地址

相关推荐
2501_941881401 小时前
Kubernetes 容器集群资源调度与弹性扩容高可用架构在互联网业务实战经验总结
云原生·容器·kubernetes
究極の法則に通じた野犬1 小时前
k8s设计理念-k8s中哪些服务要部署成StatefulSet哪些部署成Deployment
云原生·容器·kubernetes
wuxingge1 小时前
k8s集群误删node节点,怎么添加回去
云原生·容器·kubernetes
贝锐2 小时前
Docker部署Teemii本地漫画库,并通过花生壳内网穿透实现远程访问
docker
观测云5 小时前
Kubernetes CRD 方式配置容器日志采集最佳实践
容器·kubernetes·日志分析
i***22076 小时前
springboot整合libreoffice(两种方式,使用本地和远程的libreoffice);docker中同时部署应用和libreoffice
spring boot·后端·docker
羑悻的小杀马特8 小时前
轻量跨云·掌控无界:Portainer CE + cpolar 让远程容器运维像点外卖一样简单——免复杂配置,安全直达对应集群
运维·网络·安全·docker·cpolar
EAIReport13 小时前
企业级报表自动化:基于Docker的部署实践
运维·docker·自动化
tianyuanwo15 小时前
多平台容器化RPM构建流水线全指南:Fedora、CentOS与Anolis OS
linux·运维·容器·centos·rpm
敲上瘾17 小时前
【探索实战】:Kurator分布式统一应用分发平台的全面解析与实践指南
分布式·容器·kubernetes·serverless