SoloX - Android/iOS性能数据实时采集工具

文章目录

一、简介

  SoloX是一个可以实时收集Android/iOS性能数据的web工具。 快速定位分析性能问题,提升应用的性能和品质。 无需ROOT/越狱,即插即用。

主要特点:

  • 无需ROOT/越狱: Android设备无需Root,iOS设备无需越狱。有效解决Android和iOS性能的测试和分析挑战。
  • 数据完整性:我们提供CPU、GPU、内存、电池、网络、FPS、卡顿等数据,您可以轻松获取。
  • 精美报告:精美详细的报告分析,无论您身在何处或何时,都可以在何处存储、可视化、编辑、管理和下载使用 SoloX 收集的所有测试用例。
  • 实用的监控设置:监控过程中支持设置报警值、采集时长、在其他PC机上访问移动设备。
  • PK模型 :支持两台移动设备同时对比测试。
    🌱2 设备:在两部不同的手机上测试同一个应用程序。
    🌱2-apps:在具有相同配置的两部手机上测试两个不同的应用程序。
  • 数据收集:支持Python和API收集性能数据,帮助用户轻松集成到自动化测试流程中。

github地址:https://github.com/smart-test-ti/SoloX?tab=readme-ov-file

二、环境要求

  • 安装Python 3.10 + Download
  • 安装adb并配置环境变量(SoloX的adb不一定适合你的电脑)Download

💡 Python 3.6 ~ 3.9,请下载低于2.5.4的solox版本。

💡如果Windows用户需要测试ios,请安装并启动Itunes。Documentation

三、安装部署

默认安装:

bash 复制代码
pip install -U solox    (指定版本:pip install solox=={version})

镜像安装:

bash 复制代码
pip install -i  https://mirrors.ustc.edu.cn/pypi/web/simple -U solox

💡 如果您的网络无法通过pip install -U solox下载,请尝试使用镜像下载,但下载的SoloX可能不是最新版本。

启动服务:python -m solox

启动服务自定义IP地址和端口:python -m solox --host={ip} --port={port}

浏览器建议:谷歌

终端:

四、使用方法

4.1 通过浏览器直接使用

(1)单设备收集

使用python -m solox启动服务后,将自动使用本机默认浏览器打开solox页面。

接入手机设备后,可以在左上方选择设备、应用包名、进程名,并点开始即可开始收集性能数据。本示例以快看漫画为例。

开始收集数据:

停止数据收集,将自动跳转到报告页面,可以查看分析报告、导出、编辑、删除报告。

查看分析报告,可以另存为png文件。

(2)2-devices: 使用两台不同的设备测试同一个app(需切换到PK Model)

(3)2-apps: 使用两台配置相同的设备测试两个不同的app。操作方法类似,不再赘述。

(4)iOS操作方法同上

4.2 使用Python收集

python 复制代码
from solox.public.apm import APM
# version : >= 2.8.5,由于本地Python是3.9的,不想重新装一个3.10,所以用的低版本SoloX
# from solox.public.apm import AppPerformanceMonitor
from solox.public.common import Devices

d = Devices()

processList = d.getPid(deviceId='172.16.135.133:5555', pkgName='com.kuaikan.comic')  # for android
print(processList)

apm = APM(pkgName='com.kuaikan.comic', platform='Android', deviceId='172.16.135.133:5555', surfaceview=True)

# apm = APM(pkgName='com.bilibili.app.in', platform='iOS') only supports one device

# surfaceview: False = gfxinfo (手机开发者 - GPU渲染模式 - adb shell dumpsys gfxinfo)

# noLog : False (为false时才会存储测试数据到log文件中)


# ************* 收集单个性能指标 ************* #

cpu = apm.collectCpu()  # %

memory = apm.collectMemory()  # MB

flow = apm.collectFlow()  # KB

fps = apm.collectFps()  # HZ

battery = apm.collectBattery()  # level:% temperature:°C current:mA voltage:mV power:w

# gpu = apm.collectGpu()  # % only supports ios

# ************* 收集全部的性能指标 ************* #

# if __name__ == '__main__':
#
#     apm = APM(pkgName='com.kuaikan.comic', platform='Android', deviceId='172.16.135.133:5555', surfaceview=True)  # duration : 秒 (持续执行时间) record: 是否录屏(只支持安卓)
#     # apm = APM(pkgName='com.bilibili.app.in.ios', platform='iOS',  deviceId='xxxx',noLog=False, duration=20)
#
#     apm.collectAll()  # 会生成HTML报告

输出结果:

4.3 使用API收集

在后台启动服务:

bash 复制代码
# solox version >= 2.1.5

macOS/Linux: nohup python3 -m solox &
Windows: start /min python3 -m solox &

向api请求apm数据:

bash 复制代码
Android: http://{ip}:{port}/apm/collect?platform=Android&deviceid=ca6bd5a5&pkgname=com.bilibili.app.in&target=cpu
iOS: http://{ip}:{port}/apm/collect?platform=iOS&pkgname=com.bilibili.app.in&target=cpu

target in ['cpu','memory','memory_detail','network','fps','battery','gpu']
相关推荐
是店小二呀4 分钟前
鸿蒙PC开源移植:CodeLite原生IDE与Remote Agent适配
android·智能手机·远程桌面
天天喝旺仔9 分钟前
MySQL索引优化实战:B+Tree原理、索引失效与覆盖索引调优
数据库·sql·mysql·性能优化
hanchenxing18 分钟前
向量数据库备份恢复实战:从快照到时间点回滚的优化方案向量数据库
性能优化·备份恢复
打工仔折腾 AI24 分钟前
Pascal Editor 本地部署实战:Bun 启动 WebGPU 3D 编辑器并解决公网访问报错
人工智能·后端·python·性能优化
贾伟康34 分钟前
【HarmonyOS 7新能力|038】游戏快启工程封装:把接入逻辑放进可维护的分层结构
性能优化·harmonyos·arkts·游戏开发·软件架构
终端安全笔记42 分钟前
iOS 27 给了租赁一个新工具,但它只认受监督的设备
android·网络·安全·ios
林川~011 小时前
Unity 反射(Reflection)从原理到实战:一篇讲透原理、用法、实战案例与性能优化
面试·性能优化·反射·il2cpp·type
HwJack201 小时前
【HarmonyOS开发小实践】ArkUI 交互事件与手势:从触摸到组合手势
ui·华为·性能优化·harmonyos
hanchenxing1 小时前
日志采集日志采集性能优化:从正则解析到 Grok 与 JSON 的双级加速
性能优化·filebeat
大熊猫侯佩1 小时前
独立 App 首发完成 iPhone Duo 展开态适配
ios·swiftui·swift