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

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

1年前 (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】” 的相关文章

如何将python3.6.8升级到3.8以上,centos8系统

· 在CentOS 8系统中,可以使用以下步骤将Python 3.6.8升级到3.8以上版本:· 1. 安装依赖项2. 在终端中输入以下命令安装所需的依赖项:复制sudo dnf install -y gcc openssl-devel bzip2-...

VPS常用脚本合集(持续更新中)

系统篇查看Linux内核版本uname -r复制代码 查看本机绑定的IP地址ip a复制代码自动配置IPv6在ens3网卡上(网卡名字修改为自己的网卡)dhclient -6 ens3复制代码测鸡篇融合怪混合VPS测试脚本(10代目)curl -L https://gitlab.com/s...

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

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

在群晖上安装运行Airflow

不知道是什么用,主要是甲骨文占用资源,防ban号。什么是 Airflow ?Apache Airflow 是一个开源平台,用于开发、调度和监控面向批处理的工作流。Airflow 的可扩展 Python 框架使您能够构建与几乎任何技术连接的工作流。Web&nbs...

简约精致的目录浏览程序:Files Photo Gallery

该程序给勿埋我心的感觉就是特别的简单,从头到尾就是一个php文件。但是它能够实现的功能却不容小觑。它用作在线相册是个不错的选择。简单介绍一下  Files是一个单文件的PHP应用程序,可以拖放到任何目录中,从而可以浏览其中的文件和目录。它支持所有文件类型,并允许您预览图像、视频、音频和代码。单个文件...

发表评论

访客

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