droidrun-APP端UI自动化测试
前言
框架核心能力与优势
技术选型与特性
- 跨平台支持:同时兼容 Android 与 iOS,一套框架覆盖双端测试(GitHub 地址:
droidrun 核心框架
Androidportal
iOSportal) - 智能元素识别:自动生成 AccessibilityTree 获取页面元素,结合截图视觉识别,摆脱传统坐标定位的脆弱性。
- 自然语言驱动:直接通过中文指令(如 “打开抖音→搜索家常菜”)驱动测试,无需编写复杂脚本。
- 可定制性:基于 Python 代码架构,支持二次开发与业务逻辑定制。
环境搭建:
️ 环境搭建指南(分端详解)
Android 端配置
- 安装与启动:
- 从 release 页下载droidrun-portal.apk并安装。
- 打开 APP,进入系统「设置」→「辅助功能」→「已安装的服务」→ 启用「droidrun portal」,此时页面元素会显示框选标记。
- 命令行工具:
- 获取页面元素:
adb shell am broadcast -a com.droidrun.portal.GET_ALL_ELEMENTS - 查看元素日志:
adb logcat | grep DROIDRUN
- 获取页面元素:
iOS 端配置
1、安装ios-portal,拉取代码,使用xcode打开droidrun-ios-portal.xcodeproj,编译安装droidrun portal APP
2、点击文件夹的droidrunportalserver,点击执行,安装droidrun-runner的APP成功。这个APP启动一个httpserver,支持获取页面的AccessbilityTree、等操作。供droidrun的应用在iosTools中调用

- 启动上述两个APP,即可开始后续的自动化操作
自动化测试执行示例
Python 测试脚本模板
1 tools = AdbTools(serial="MXG0222222007933")
2
3 deepseek_llm = load_llm(
4 "DeepSeek",
5 model="deepseek-chat",
6 api_key="sk-cbb06f4d26ae4441922a1bd61d48fea0", # or set DEEPSEEK_API_KEY
7 temperature=0.2
8 )
9
10 message ="启动抖音APP,等到完全进入到首页后点击右上角的搜索按钮,搜索关键字‘家常菜’。"
11 # Create agent
12 droid_agent = DroidAgent(
13 goal=message,
14 llm=deepseek_llm, # Language model
15 tools=tools, # Tool provider
16 personas=[UI_EXPERT],
17 max_steps=15,
18 timeout=1000,
19 reasoning=True,
20 reflection=False,
21 enable_tracing=False,
22 debug=True,
23 save_trajectories=True
24 )
25 # 创建一个新的上下文对象,确保传递 workflow 参数
26 ctx = Context(workflow=droid_agent)
27 await droid_agent.run(ctx=ctx)
任务分解示例(大模型自动生成)
大模型根据提示词,自行分解任务流程,并自动生成python代码,依次完成任务:

⚙️ 框架优缺点与改进方向
优势亮点
- 跨平台一致性:一次开发,双端运行,降低维护成本。
- 低代码门槛:自然语言驱动,测试人员无需精通编程即可编写用例。
- 视觉智能加持:结合图片识别,应对动态元素与 UI 变更场景。
️ 现存挑战
- 执行效率:自动化流程速度较慢,复杂用例耗时较长。
- 稳定性:部分场景存在失败概率(如元素识别延迟)。
- 大模型限制:当前仅支持 DeepSeek 平台,模型选择较少。
未来优化方向
- 支持脑图用例直接转换为 Promot 指令,实现 “可视化用例→自动化执行” 闭环。

- 扩展大模型兼容性,支持更多国产 LLM(如百川、智谱 AI)。
droidrun-APP端UI自动化测试的更多相关文章
- <自动化测试方案_7>第七章、PC端UI自动化测试
第七章.PC端UI自动化测试 UI自动化测试又分为:Web自动化测试,App自动化测试.微信小程序.微信公众号UI层的自动化测试工具非常多,比较主流的是UFT(QTP),Robot Framework ...
- APP的UI自动化测试框架及平台化探索
顾铮,10年+测试及测试开发相关经验,2014年加入京东,曾主导设计开发UI测试框架,参与CI测试平台建设,现负责iOS侧的工具,框架建设.在UI自动化,性能测试,单元测试方面有较深入研究,在App, ...
- 关于做移动端ui自动化测试使用PC代理网络会出现的问题
无论是手动操作app还是ui脚本操作app,只要你使用了代理网络,第一次请求的时长会耗时特别长,所以在移动端测试时尽量不要使用代理网络,减少不必要的麻烦
- 搭建基于IDEA+Selenium+Java+TestNG+Maven+Jenkins+SVN的Web端UI自动化测试环境
第一步:工具下载安装配置 JDK安装与配置 IDEA安装与配置 Maven安装与配置 Tomcat部署与配置 Jenkins部署与配置 Svn安装与配置 各浏览器驱动下载与配置 第二步:集成各个工具到 ...
- Python+Selenium+Appium对APP进行UI自动化测试
1. 安装Python3.7版本 pythonjava的JDK java -version javac nodejs node --versionappium 若nodejs安装完毕,使用npm安装a ...
- appium+python 【Mac】UI自动化测试封装框架流程简介 <一>
为了多人之间更方便的协作,那么框架本身的结构和编写方式将变得很重要,因此每个团队都有适合自己的框架.如下本人对APP的UI自动化测试的框架进行进行了简单的汇总.主要目的是为了让团队中的其余人员接手写脚 ...
- 使用AirtestProject+pytest做支付宝小程序UI自动化测试
一,前言 1,背景 因公司业务需要做支付宝小程序的UI自动化测试,于是在网上查找小程序的自动化资料,发现微信小程序是有自己的测试框架的,但几乎找不到支付宝小程序UI自动化测试相关的资料.白piao失败 ...
- Web/app端自动化测试对比
Web/app端自动化测试 做了一段时间的Android自动化测试,对比个人之前做的web端自动化测试,有一些感想.(由于个人接触的时间也不是太久,很多东西理解也并不深刻,先写下菜鸟时期的感想.) 区 ...
- 移动端UI界面设计:APP字体排版设计的七个原则
移动端UI界面设计:APP字体排版设计的七个原则 发布于: 2015 年 2 月 9 日 by admin 再来谈移动端APP字体排版设计,也许有人会说,这个还有什么好说的呢?但是真正能够运用好APP ...
- APP UI自动化测试思路总结
python+appium自动化测试系列就要告一段落了,本篇博客咱们做个小结. 首先想要说明一下,APP自动化测试可能很多公司不用,但也是大部分自动化测试工程师.高级测试工程师岗位招聘信息上要求的,所 ...
随机推荐
- ubuntu16.04安装SQLite
主流的sqlite3,占用内存小,处理时速度快,跨平台. 几乎所有版本的 Linux 操作系统都附带 SQLite.所以,只要使用下面的命令来检查您的机器上是否已经安装了 SQLite. 一.检查是否 ...
- nodejs读写json文件
读json文件 'use strict'; const fs = require('fs'); let rawdata = fs.readFileSync('student.json'); let s ...
- 又一款眼前一亮的Linux终端工具!
大家好,我是良许. 最近二舅视频刷爆了全网,大家有没去看呢?强烈推荐大家观看一波,也就 11 分钟,保证会触动你的泪点. 不过今天不讲二舅哈,还是来聊聊技术. 今天给大家介绍一款最近发现的功能十分强大 ...
- exe4j工具使用-jar包转exe可执行文件
exe4j介绍 exe4j可以将java打包的jar包转为exe可执行文件,实现在没有jdk环境下运行jar包. 下载链接 https://pan.baidu.com/s/1sfEJyxPABmhsl ...
- iOS自动化测试环境搭建总结
1.关于iOS真机和模拟器自动化环境搭建 参考博文: Appium+Python3+iOS真机环境搭建 iOS自动化测试:mac下iOS10 appium测试环境的搭建 IOS + Appium自动化 ...
- java基础之集合(List)、Properties集合
一.ArrayList集合的方法 1.public void add(int index, E element) : 将指定的元素,添加到该集合中的指定位置上. 2.public E get(int ...
- Asp.net mvc基础(六)TempData
在客户端重定向或验证码等情况下,由于要跨请求的存取数据,是不能放到ViewBag.Model中,需要"暂时存到Session中,用完了删除"的需求:使用TempData可以做到. ...
- jmeter操作数据库增删改查的注意事项
一,场景 1.在jmeter造数据后,可通过数据库查询数据库是否新增数据,判断脚本执行是否成功. 2.有些数据新增不可重复,因此脚本执行后需要将新增的数据删除,才能再次执行脚本. 二.连接数据库 在通 ...
- 题解:UVA12517 Digit Sum
数位 dp 模板题-- 题目大意 给你两个数 l,rl,rl,r,求出 l,rl,rl,r 之间所有数的数位和. 什么是数位和? 举个栗子,有一个数 123123123,那么他的数位和,即各个数位的和 ...
- JS如何实现远程控制:一步步教你掌握技术
@charset "UTF-8"; .markdown-body { line-height: 1.75; font-weight: 400; font-size: 15px; o ...