首页 > 运维 > linux运维 > 正文

树莓派搭建UI自动化环境

星夢妙者
发布: 2025-07-12 10:22:35
原创
765人浏览过

前言

如果你对移动端UI自动化有一定的了解,那么应该知道主流框架如Appium、Airtest和Macaca。这些框架的一个共同特点是需要将手机连接到电脑上。当然,也有一些可以使用WIFI连接,但目前通过USB连接电脑是最稳定的方法。

我们公司使用macpro笔记本进行自动化测试,通过USB转接头连接,每个USB端口大约可以支持3到4台设备。然而,如果连接的设备过多,可能会出现USB供电不足的情况,导致手机无法充电。

树莓派搭建UI自动化环境image

我们曾考虑过一些解决方案,例如使用带独立供电的USB HUB,但公司的采购申请未能通过。

树莓派搭建UI自动化环境image

另一个方案是采用多节点运行,将Android和iOS分别在两台Jenkins节点上运行,以降低单台电脑的功耗。但如果测试设备增加,这种方案的成本会变得很高。

幸运的是,我之前了解到“树莓派”也可以运行Linux系统,而Linux系统理论上可以安装adb、Appium等软件。

“树莓派”虽然体积小,但功耗低且价格便宜。如果使用“树莓派”作为自动化节点机,分布式执行自动化测试的方案是可行的。

关于树莓派,请阅读树莓派入门这篇文章,以对其有一定的了解。

环境准备

安装Node.js的步骤如下,这是一种一键命令行安装,非常简单:

curl -sL https://deb.nodesource.com/setup_11.x | sudo -E bash -
sudo apt-get install -y nodejs
登录后复制

设置npm的淘宝镜像,以提升下载和安装速度:

npm install -g cnpm --registry=https://registry.npm.taobao.org
npm config set registry https://registry.npm.taobao.org
登录后复制

使用Python3来执行脚本:

sudo apt-get install python3
登录后复制

安装lrzsz,这是一个用于Linux上传和下载文件的命令行工具

sudo apt-get install lrzsz
登录后复制

我们这次运行的是Android自动化测试,自动化框架在底层都会调用adb工具。由于安装的树莓派是arm32位,直接下载的adb无法使用,需要找一个32位的adb二进制文件。

https://github.com/NetEaseGame/AutomatorX/releases/tag/1.0.12
登录后复制

树莓派搭建UI自动化环境image

赋予adb权限:

mv /usr/local/bin
sudo chown root:root /usr/local/bin/adb
sudo chmod 0755 /usr/local/bin/adb
sudo chmod +s /usr/local/bin/adb
登录后复制

下载适用于Linux平台的Android SDK:

wget http://dl.google.com/android/android-sdk_r24.2-linux.tgz
tar -zxvf android-sdk_r24.2-linux.tgz
mv android-sdk-linux /usr/local/Android-SDK
tools/android update sdk --no-ui
登录后复制

在更新过程中,可能会遇到找不到swt.jar的问题,这个jar包是一个图形化界面库。

树莓派搭建UI自动化环境image

树莓派搭建UI自动化环境image

树莓派搭建UI自动化环境image

解决方法如下:

sudo apt install libswt-gtk-3-java
https://packages.debian.org/stretch/armhf/libswt-gtk-3-jni/download
/usr/share/java
cp swt-gtk-3.8.jar /usr/local/Android-SDK/tools/lib/arm
cp swt.jar /usr/local/Android-SDK/tools/lib/arm
登录后复制

再执行如下命令,就可以更新相关工具包了:

tools/android update sdk --no-ui
登录后复制

树莓派搭建UI自动化环境image

安装Appium时,如果不需要chromedriver,可以通过命令行跳过:

sudo npm install appium --chromedriver-skip-install --registry=https://registry.npm.taobao.org
登录后复制

树莓派搭建UI自动化环境)

安装Appium-Doctor来检查环境:

npm install appium-doctor -g
登录后复制

脚本代码是基于Python3编写的,主要目的是验证Appium是否可以成功运行。

源码地址:

https://github.com/xinxi1990/python_appium_demo.git
登录后复制

Jenkins分为master机器和slave机器。

准备在我的Mac笔记本上作为master机器,使用WAR包启动即可:

java -jar /usr/local/Cellar/jenkins/2.186/libexec/jenkins.war
登录后复制

设置Jenkins URL地址,默认的是127.0.0.1。

千面视频动捕
千面视频动捕

千面视频动捕是一个AI视频动捕解决方案,专注于将视频中的人体关节二维信息转化为三维模型动作。

千面视频动捕 27
查看详情 千面视频动捕

树莓派搭建UI自动化环境image

Slave机器也就是树莓派机器,也使用jar包启动。

树莓派搭建UI自动化环境image

启动节点命令如下:

java -jar agent.jar -jnlpUrl http://192.168.1.104:8080/computer/raspberrypi/slave-agent.jnlp -secret ed2d0877fd55d575f58cfa0fc9d5b8c97b76d2caaa928dc0af859e9307586f37
登录后复制

树莓派搭建UI自动化环境image

启动完成后,可以看到slave节点已经成功连接。

树莓派搭建UI自动化环境image

关于slave节点的功耗,可以看出还有一些剩余内存。

树莓派搭建UI自动化环境image

树莓派搭建UI自动化环境image

脚本运行命令行执行:

git clone https://github.com/xinxi1990/python_appium_demo.git
cd python_appium_demo & python3 run.py
登录后复制

在通过脚本执行后,出现如下问题:

树莓派搭建UI自动化环境image

提示zipalign执行有问题,单独执行zipalign工具的确有问题,可能是SDK下载版本与系统不兼容。

解决方案如下:

sudo apt-get install zipalign
which zipalign
cp /usr/bin/zipalign /usr/local/Android-SDK/platform-tools
登录后复制

再执行脚本运行成功,到此证明树莓派的确可以执行自动化脚本。

树莓派搭建UI自动化环境image

在Jenkins上创建任务,在树莓派上运行。

树莓派搭建UI自动化环境image

树莓派搭建UI自动化环境image

在Jenkins上配置多个任务,以达到并发执行的效果。

树莓派搭建UI自动化环境image

并发任务配置触发下游任务,完成并发执行。

树莓派搭建UI自动化环境image

并发任务配置。

树莓派搭建UI自动化环境image

构建队列中有两个任务。

树莓派搭建UI自动化环境image

结语

树莓派搭建UI自动化环境经过一番折腾,树莓派确实可以运行自动化测试。不过我使用的是树莓派3B,内存仅有1G,如果真想玩的话,建议入手树莓派4B,其性能和内存都有所提升。

下次将继续介绍在树莓派上搭建个人博客,敬请关注。

以上就是树莓派搭建UI自动化环境的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号