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

文章目录

  • 一、简介
  • 二、环境要求
  • 三、安装部署
  • 四、使用方法
      • 4.1 通过浏览器直接使用
      • 4.2 使用Python收集
      • 4.3 使用API收集

一、简介

  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

三、安装部署

默认安装:

pip install -U solox    (指定版本:pip install solox=={version})

镜像安装:

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}

浏览器建议:谷歌

终端:

  • 窗口:PowerShell
  • macOS:iTerm2 (https://iterm2.com/)

四、使用方法

4.1 通过浏览器直接使用

(1)单设备收集
使用python -m solox启动服务后,将自动使用本机默认浏览器打开solox页面。
在这里插入图片描述
接入手机设备后,可以在左上方选择设备、应用包名、进程名,并点开始即可开始收集性能数据。本示例以快看漫画为例。
在这里插入图片描述
开始收集数据:
在这里插入图片描述
停止数据收集,将自动跳转到报告页面,可以查看分析报告、导出、编辑、删除报告。
在这里插入图片描述
查看分析报告,可以另存为png文件。
在这里插入图片描述
(2)2-devices: 使用两台不同的设备测试同一个app(需切换到PK Model)
在这里插入图片描述
(3)2-apps: 使用两台配置相同的设备测试两个不同的app。操作方法类似,不再赘述。
(4)iOS操作方法同上

4.2 使用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 Devicesd = 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()  # MBflow = apm.collectFlow()  # KBfps = apm.collectFps()  # HZbattery = 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收集

在后台启动服务:

# solox version >= 2.1.5macOS/Linux: nohup python3 -m solox &
Windows: start /min python3 -m solox &

向api请求apm数据:

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=cputarget in ['cpu','memory','memory_detail','network','fps','battery','gpu']

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/541988.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python - 应用篇 :ChatGPT +Pycharm 序列号自动生成

前言: 客户要求在产品外壳上新增可追溯的二维码贴花,二维码信息内容如下: 编码格式:SBD 零部件代码 控制盒序列号 控制盒厂家 例如:[)>06P725-18428S24031410001ZJL SBD 零部件代码:[)>06P725-184…

数据仓库的设计开发应用(一)

目录 一、数据仓库设计的特点二、数据仓库系统开发过程三、数据仓库系统的规划 一、数据仓库设计的特点 1、“数据驱动” 的设计 数据仓库是从已有数据出发的设计方法,即从数据源抽取数据,经转换形成面向主题,支持决策的数据集合。 以全面了…

「HarmonyOS」下拉刷新组件使用详情

前言:在客户端开发过程中,经常会出现下拉刷新的功能,用于重新加载数据和加载更多数据,通过查找相关资料,查找到一个refresh下拉刷新的第三方库,今天主要介绍一下其中比较常用的RefreshLayout形式下拉刷新使…

MM1: Methods, Analysis Insights from Multimodal LLM Pre-training

MM1: Methods, Analysis & Insights from Multimodal LLM Pre-training 相关链接:arxiv 关键字:多模态学习、大型语言模型、预训练、视觉语言连接、混合专家模型 摘要 本文讨论了构建高性能的多模态大型语言模型(MLLMs)。特别…

ThingsBoard Edge 安装部署(Docker)

文章目录 一、概述1.官方文档2.部署说明3.安装准备3.1. 克隆服务器3.2.安装 Docker3.3.安装 docker-compose3.4.安装 PostgreSQL3.5.创建 Edge 实例 二、Docker Compose 方式部署1.创建 docker-compose.yml2.运行容器3.访问 Edge 三、Docker 直接部署1.创建数据库2.运行容器3.访…

Spark杂谈

文章目录 什么是Spark对比HadoopSpark应用场景Spark数据处理流程什么是RDDSpark架构相关进程入门案例:统计单词数量Spark开启historyServer 什么是Spark Spark是一个用于大规模数据处理的统一计算引擎Spark一个重要的特性就是基于内存计算,从而它的速度…

AI人工智能培训讲师ChatGPT讲师叶梓培训简历及提纲ChatGPT等AI技术在医疗领域的应用

叶梓,上海交通大学计算机专业博士毕业,高级工程师。主研方向:数据挖掘、机器学习、人工智能。历任国内知名上市IT企业的AI技术总监、资深技术专家,市级行业大数据平台技术负责人。 长期负责城市信息化智能平台的建设工作&#xff…

YOLOV5 部署:基于web网页的目标检测(本地、云端均可)

1、前言 YOLOV5推理的代码很复杂,大多数都是要通过命令行传入参数进行推理,不仅麻烦而且小白不便使用。 本章介绍的web推理,仅仅需要十几行代码就能实现本地推理,并且只需要更改单个参数就可以很方便的部署云端,外网也可以随时的使用 之前文章介绍了QT的可视化推理界面,…

react-native使用FireBase实现google登陆

一、前置操作 首先下载这个包 yarn add react-native-google-signin/google-signin 二、Google cloud配置 Google Cloud 去google控制台新建一个android项目,这时候需要用到你自己创建的keystore的sha1值,然后会让你下载一个JSON文件,先保…

最新开源解密版TwoNav网址导航系统源码

源码简介 2024最新开源解密版TwoNav网址导航系统源码去授权破解版 内置二十多套主题模板。 已去授权,最新开源解密版。TwoNav 是一款开源的书签(导航)管理程序,使用PHP SQLite 3开发,界面简洁,安装简单&…

集合系列(二) -List接口详解

一、List简介 List 的数据结构就是一个序列,存储内容时直接在内存中开辟一块连续的空间,然后将空间地址与索引对应。 以下是List集合简易架构图 由图中的继承关系,可以知道,ArrayList、LinkedList、Vector、Stack都是List的四个…

自习室预订系统|基于springboot框架+ Mysql+Java+B/S架构的自习室预订系统设计与实现(可运行源码+数据库+设计文档+部署说明)

推荐阅读100套最新项目 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 目录 前台功能效果图 学生功能模块 管理员功能登录前台功能效果图 系统功能设计 数据库E-R图设计 lunwen参…