当前位置:首页 > 网站笔记 > 正文内容

在Docker中安装安卓11、12+Appium【web端android】

2年前 (2023-06-11)网站笔记

Docker-Android是一个docker镜像,建立在与移动网站测试和安卓项目有关的一切。

仿真器--三星设备仿真器--Nexus设备真实设备
image.pngimage.pngimage.png

目标

  1. 使用 appium为移动网站运行UI测试

  2. 用最新的构建工具构建Android项目并运行单元测试

  3. 使用不同的框架为Android应用程序运行UI测试 (appiumespressorobotium, etc.)

  4. 运行猴子/压力测试

  5. 短信测试

与其他docker-android项目相比的优势

  1. 没有VNC,可以看到docker容器内发生的一切

  2. 不同设备/皮肤的仿真器,如三星Galaxy S6、LG Nexus 4、HTC Nexus One等。

  3. 连接到Selenium Grid的能力

  4. 能够通过使用adb connect从外部容器控制仿真器。

  5. 支持真实设备的屏幕镜像

  6. 能够在测试执行过程中录制视频以进行调试

  7. 与其他云解决方案集成,例如 Genymotion Cloud

  8. 开放源代码,更多功能即将推出

Docker图像列表

OSAndroidAPI浏览器浏览器版本Chromedriver图像
Linux6.023browser44.02.18budtmo/docker-android-x86-6.0
Linux7.024chrome51.02.23budtmo/docker-android-x86-7.0
Linux7.1.125chrome55.02.28budtmo/docker-android-x86-7.1.1
Linux8.026chrome58.02.31budtmo/docker-android-x86-8.0
Linux8.127chrome61.02.33budtmo/docker-android-x86-8.1
Linux9.028chrome66.02.40budtmo/docker-android-x86-9.0
Linux10.029chrome74.074.0.3729.6budtmo/docker-android-x86-10.0
Linux11.030chrome83.083.0.4103.39budtmo/docker-android-x86-11.0
Linux12.031chrome93.093.0.4577.15budtmo/docker-android-x86-12.0
All-----budtmo/docker-android-real-device
AllAllAllAllAllAllbudtmo/docker-android-genymotion

List of Devices

TypeDevice Name
PhoneSamsung Galaxy S10
PhoneSamsung Galaxy S9
PhoneSamsung Galaxy S8
PhoneSamsung Galaxy S7 Edge
PhoneSamsung Galaxy S7
PhoneSamsung Galaxy S6
PhoneNexus 4
PhoneNexus 5
PhoneNexus One
PhoneNexus S
TabletNexus 7

要求

Docker已经安装在你的系统中。

快速启动

  1. 你的机器需要支持虚拟化。要检查它。

    复制代码sudo apt install cpu-checker kvm-ok

  2. 运行Docker-Android

    • 对于Linux操作系统,请使用包含 "x86 "的镜像名称。

      css复制代码 docker run --privileged -d -p 6080:6080 -p 5554:5554 -p 5555:5555 -e DEVICE="Samsung Galaxy S6" --name android-container budtmo/docker-android-x86-8.1

    • 对于OSXWindows操作系统,请使用支持Ubuntu操作系统的虚拟化的虚拟机。

  3. 确认docker主机的IP地址。

    • 对于OSX,你可以通过使用以下命令找到。

      arduino复制代码docker-machine ip default

    • 对于不同的操作系统,localhost应该可以。

  4. 从网络浏览器打开***http://docker-host-ip-address:6080***。注意:添加?view_only=true将给予用户只能查看的权限。

自定义配置

本文包含了你可能需要的Docker-Android的自定义配置,例如代理,在飞行中改变语言,等等。

构建Android项目

Docker-Android可以用来构建Android项目并执行其单元测试。下面的步骤将说明如何构建Android项目。

  1. 克隆这个样本测试项目

    bash复制代码git clone git@github.com:android/testing-samples.git

  2. 建立该项目

    bash复制代码docker run -it --rm -v $PWD/testing-samples/ui/espresso/basicSample:/tmp -w /tmp budtmo/docker-android-x86-8.1 /tmp/gradlew build

  3. 用这个命令创建一个docker容器

    yaml复制代码$ docker run --privileged -d -p 6080:6080 -p 5554:5554 -p 5555:5555 -p 4723:4723 --name android-container-appium budtmo/docker-android-real-device

  4. 打开noVNC http://localhost:6080

  5. noVNC窗口上点击右键打开终端,>>终端模拟器

  6. 连接到主机的adb(确保你的主机有adb并连接到设备上。)

    csharp复制代码$ adb -H host.docker.internal devices

    要指定端口,只需添加-P port_number

    csharp复制代码$ adb -H host.docker.internal -P 5037 devices

  7. 现在你的容器可以访问你的主机设备。但是,你需要添加 "remoteAdbHost "和 "adbPort "所需的能力,以使Appium能够识别这些设备。

Appium和Selenium Grid

如果你想使用Appium和Selenium Grid,你可以按照该文档。它还包含样本和用例。

控制容器外的安卓模拟器

arduino复制代码adb connect <docker-machine-ip-address>:5555

**注意:**你需要在主机上安装Android调试桥(adb)。

短信模拟

  1. 使用telnet

    bash复制代码docker exec -it android-container cat /root/.emulator_console_auth_token

    css复制代码telnet <docker-machine-ip-address> 5554

    复制代码auth <auth_token

    xml复制代码sms send <phone_number> <message>(短信)。

    • 发送短信

    • 使用1.步骤中给定的auth_token登录

    • 使用telnet访问模拟器,用auth_token登录

    • 找到auth_token并复制它。

  2. 使用adb

    perl复制代码docker exec -it android-container adb emu sms send <phone_number> <message>。

  3. 你也可以使用adb库将其集成到项目中。

谷歌游戏服务和谷歌游戏商店

目前没有安装。

Jenkins

这个文件给你提供了关于支持Docker-Android的自定义插件的信息。

VMWARE

这个文档告诉你如何在VMWARE上配置虚拟机,以便能够运行Docker-Android。

这个文档包含关于在云服务上部署Docker-Android的信息。

Genymotion

对于没有资源维护模拟器或购买机器或需要不同设备配置文件的人来说,你需要尝试一下Genymotion Cloud。Docker-Android与Genymotion集成在不同的云服务上,例如Genymotion云、AWS、GCP、阿里巴巴云。请关注本文档本博客以了解更多细节。

故障排除

容器内的所有日志都存储在**/var/log/supervisor文件夹下。你可以通过使用docker exec**打印出日志文件。例子。

bash复制代码docker exec -it android-container tail -f /var/log/supervisor/docker-android.stdout.log

仿真器皮肤

仿真器皮肤取自Android Studio IDE三星开发者网站

监控

你可以使用cadvisor结合influxdb / prometheus和grafana(如果需要的话)来监控每个正在运行的容器。


GitHub - budtmo/docker-android: Android in docker solution with noVNC supported and video recording


扫描二维码推送至手机访问。

版权声明:本文由私人专用发布,如需转载请注明出处。

本文链接:http://zb.openface.cc/?id=52

分享给朋友:

“在Docker中安装安卓11、12+Appium【web端android】” 的相关文章

centos7新系统——基础配置(包括常用软件包安装、打开最大文件数、修改机器名、防火墙、时间同步、修改dns和ip、免密码使用sudo、创建新用户并授权)

一、下载必要软件包再安装操作系统的时候使用的最小化安装,有很多包没有安装,使用时发现好多命令没有如{vim、wget、tree…等},下面就安装命令,可以根据需求自行调整yum -y install wget net-tools screen lsof tcpdump nc mtr openssl-...

痛风以后第一次喝酒

今天是痛风以来第一次喝酒,十二点钟左右老于叫我到翰典商k喝酒...

Oracle Cloud/甲骨文云 下Centos 7拓展硬盘操作

首先是rootecho root:tss1******** |sudo chpasswd rootsudo sed -i 's/^#\?PermitRootLogin.*/PermitRootLogin yes/g' /etc/ssh/sshd_config;sudo sed -i...

centos系统如何安装squid,并设置开机启动,以及如何检测squid是否正常启动服务

在CentOS系统中安装Squid并设置开机启动,可以按照以下步骤进行操作:· 打开终端,输入以下命令安装Squid: 复制sudo yum updatesudo yum install squid安装完成后,可以通过以下命令检查Squid是否已经安装成功:复制squid -v输...

Virtual DSM – 在 Docker 里安装黑群晖 DSM 7.2

Virtual DSM 是一个可以在 Docker 里安装黑群晖的项目,甚至可以在 DSM 中再安装一个 DSM,无限套娃。@Appinn首先需要明确一下,群晖本身就可以在其系统内虚拟一个 DSM,就在 Virtual Machine Manager 套件中,新建虚拟机...

大麦网自动购票, 支持docker一键部署。

特别声明本项目内所有资源文件,禁止任何公众号、自媒体进行任何形式的转载、发布。编写本项目主要目的为学习和研究Rust,无法保证项目内容的合法性、准确性、完整性和有效性。本项目涉及的数据由使用的个人或组织自行填写,本项目不对数据内容负责,包括但不限于数据的真实性、准确性、合法性。使用本项目所造成的一切...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。