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

在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】” 的相关文章

使用云服务器搭建Socks5最详细教程

近期有比较多的小伙伴在问如何搭建Socks5代理实现游戏加速,这里就给大家放出一个详细教程,截图全部都是亲自测试有效的。1、开通云服务器,要做游戏加速的话,可以开通香港或者美国的云服务器,服务器安装centos7以上的系统。这里就以蓝米云的云服务器为例,测试蓝米云的香港和美国服务器都可以使用教程正常...

Docker部署NextCloud

集成环境CentOS7+Docker CE(社区版)+NextCloud社区版Docker安装(已安装可跳过)yum update //安装yum-utils yum install -y yum-utils device-mapper-pe...

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

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

部署Pandora,让ChatGPT更好用

Pandora简介Pandora不愧是这三个月以来最为突出的项目之一,它完美解决了ChatGPT使用中经常遇到的种种问题,而且部署是相当简单,方便。项目地址:https://github.com/pengzhile/pandora另外,今天(5.28)GPT再一次大范围风控,这似乎与sentry.i...

AList客户端AL Client v1.0.2

本帖最后由 anwen 于 2023-6-17 10:21 编辑AList是什么应该不需要过多赘述了吧,不知道的可以在官网看看,或者去看看我之前的一篇如何使用方便快捷使用AList用法虽然已经挺方便了,但是WebDav方式总有些太好使这不有大佬使用 AList的API 手搓的一份 Client(客户...

在群晖上安装运行Airflow

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

发表评论

访客

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