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

相关推荐
yuguo.im1 分钟前
Docker 两大基石:Namespace 和 Cgroups
运维·docker·容器
会飞的土拨鼠呀8 分钟前
docker部署 outline(栗子云笔记)
笔记·docker·容器
致Great25 分钟前
Nano Banana提示语精选
人工智能·gpt·chatgpt·开源·agent
Jelly-小丑鱼1 小时前
Linux搭建syslog日志服务器
linux·服务器·docker·日志服务器·syslog服务器
没有bug.的程序员1 小时前
高频IO服务优化实战指南
java·jvm·spring·容器
lisanmengmeng3 小时前
docker 方式安装部署禅道zentao(五)
运维·docker·容器
程序员老赵3 小时前
AdguardHome Docker 容器化部署指南
docker·dns
露临霜4 小时前
Docker安装nginx
nginx·docker·容器
CAFEBABE 346 小时前
安装完docker之后怎么使用
运维·docker·容器
AI大模型学徒7 小时前
大模型应用开发(十五)_知识库1
人工智能·chatgpt·大模型·llm·知识库·deepseek