usb接口定义引脚说明_PerfDogService使用说明

令牌申请教程:https://bbs.perfdog.qq.com/article-detail.html?id=55安装包下载:https://perfdog.qq.com/sdk一、 概述
PerfDog性能狗服务组件,用户可基于service组件二次开发自己PerfDog性能工具或自动化服务。本文档主要对PerfDogService提供的接口进行说明,并提供可运行的DEMO供有诉求的同学快速上手。二、 快速指引
1、 本地解压PerfDogService安装包

d51c784b03d687f60c308d58dfc1f349.png


PerfDogService.exe:Service启动文件,一般不用手工启动,自动化脚本会自动启动此程序。
perfdog.proto: grpc接口和protobuf结构体的定义文件
demo/python: python3的demo,依赖库grpcio和protobuf
demo/java: java的demo,依赖库grpc-netty-shaded, grpc-protobuf, grpc-stub
2、 快速运行Demo(以demo/python为例)
1) 安装Python3环境
2) 安装demo依赖库grpcio和protobuf,建议使用pip安装
3) 打开demo/Python目录

9de48f97a98271489975b9a975d9f9cf.png


4) 打开目录中的demo.py文件,修改输入参数

a2333c7c2af36155e6bb0240fb739a99.png


5) 打开命令窗口,运行demo.py文件

58662ab8bec7bf1f5f0cc3adb9a83ddc.png


6) Demo成功运行,查看输出结果

caac04627a21652ed5be3c42c5b5b4c1.png

三、 整体架构
产品组件

6d47a12cc699024a8abb6a244aeef129.png


整体框架

ab756e1a8d5d362c1e48628d80342a13.png

四、 工作流程
PerfDogService支持多台设备同时测试。工作流程如下图所示,具体使用方法可以参考Demo

6e9ca8a2720220ea5788e4d747d97c58.png

五、 方法列表
loginWithToken
用途
用户登录接口
定义rpc loginWithToken (Token) returns (UserInfo) {}
参数
Token: 登录令牌
返回值
UserInfo: 登录用户的帐号信息
备注
如果需要令牌,需要在官网申请令牌
startDeviceMonitor
用途
启动设备监听器,使用此接口可以收到移动设备到PC的连接和断开事件
定义rpc startDeviceMonitor (Empty) returns (stream DeviceEvent) {}
参数
Empty: gprc占位符参数,无实际意义
返回值
stream DeviceEvent: 设备连接、断开事件流,可单独启动线程从返回值获取相应的事件
前置依赖
用户已登录
initDevice
用途
初始化设备
定义rpc initDevice (Device) returns (Empty) {}
参数
Device: 用于标识设备,可以从DeviceEvent中取得。
返回值
Empty: grpc返回值占位符,无实际意义
前置依赖
用户已登录
getDeviceInfo
用途
获取设备信息
定义rpc getDeviceInfo (Device) returns (DeviceInfo) {}
参数
Device: 用于标识设备
返回值
DeviceInfo: 设备基本信息
前置依赖
用户已登录
设备已初始化
getDeviceStatus
用途
获取设备状态
定义rpc getDeviceStatus (Device) returns (DeviceStatus) {}
参数
Device:设备标识结构体
返回值
DeviceStatus: 设备状态信息
前置依赖
用户已登录
getAppList
用途
获取设备APP列表
定义rpc getAppList (Device) returns (AppList) {}
参数
Device:设备标识结构体
返回值
AppList: 设备上安装的APP的列表
前置依赖
用户已登录
设备已初始化
enablePerfDataType
用途
启用测试数据指标
定义rpc enablePerfDataType(EnablePerfDataTypeReq) returns (Empty) {}
参数
EnablePerfDataTypeReq: 需要开启的类型,参见pb定义文件PerfDataTypem枚举类型说明
返回值
Empty: grpc参数占位符,无实际意义
前置依赖
用户已登录
设备已初始化
disablePerfDataType
用途
禁用测试数据指标
定义rpc disablePerfDataType (DisablePerfDataTypeReq) returns (Empty) {}
参数
DisablePerfDataTypeReq: 需要关闭的数据类型
返回值
Empty: grpc参数占位符,无实际意义
前置依赖
用户已登录
设备已初始化
getPerfDataType
用途
获取已开启数据类型的列表
定义 rpc getPerfDataType (Device) returns (PerfDataTypeRet) {}
参数
Device:设备标识结构体
返回值
PerfDataTypeRet: 开启数据类型的列表,参见附件协议文件
前置依赖
用户已登录
设备已初始化
getAvailableDataType
用途
获取设备支持的测试数据指标类型
定义rpc getAvailableDataType (Device) returns (PerfDataTypeRet) {}
参数
Device:设备标识结构体
返回值
PerfDataTypeRet: 可以开启数据类型的列表
前置依赖
用户已登录
设备已初始化
setScreenShotInterval
用途
设置截屏时间间隔
定义 rpc setScreenShotInterval (ScreenShotInterval) returns (Empty) {}
参数
ScreenShotInterval: 设置设备测试过程中截屏时间间隔,单位秒
返回值
Empty: grpc参数占位符
前置依赖
用户已登录
startTestApp
用途
开始App测试
定义rpc startTestApp(StartTestAppReq) returns (StartTestRet) {}
参数
StartTestAppReq: 填写需要配置测试App的相关信息
返回值
StartTestRet: grpc返回值占位符,无实际意义
前置依赖
用户已登录
设备已初始化
备注
Android默认开启的数据类型有FPS、CPU_USAGE、MEMORY、CPU_TEMPERATURE、NETWORK_USAGE、FRAME_TIME和BATTERY(wifi模式);
iOS默认开启的数据类型有FPS、CPU_USAGE、MEMORY、IOS_GPU_USAGE、NETWORK_USAGE、CTX_SWITCH、FRAME_TIME(usb模式)和BATTERY(wifi模式);
如果需要开启或者关闭其他数据类型,请使用enablePerfDataType和disablePerfDataType接口。
startTestSysProcess
用途
开始系统进程测试
定义rpc startTestSysProcess (StartTestSysProcessReq) returns (StartTestRet) {}
参数
StartTestSysProcessReq: 设置开始测试的设备和系统进程
返回值
StartTestRet: grpc返回值占位符,无实际意义
前置依赖
用户已登录
设备已初始化
备注
数据类型方面规则与startTestApp相同
openPerfDataStream
用途
打开实时测试指标流,可以用来获取实时测试指标数据
定义rpc openPerfDataStream (OpenPerfDataStreamReq) returns (stream PerfData) {}
参数
OpenPerfDataStreamReq: 需要指定设备,会获取指定设备测试指标数据流
返回值
stream PerfData: 流式返回性能数据
前置依赖
用户已登录
设备已初始化
设备已开始测试
stopTest
用途
结束测试
定义rpc stopTest (StopTestReq) returns (Empty) {}
参数
StopTestReq: 需要指定停止测试设备,perfdog支持同时测试多台设备
返回值
Empty: grpc返回值占位符,无实际意义
前置依赖
用户已登录
设备已初始化
设备已开始测试
setLabel
用途
测试过程中添加标签,标签起始时间为当前时间,直到有下一个标签,都属于新添加标签说明的范围
定义rpc setLabel (SetLabelReq) returns (Empty) {}
参数
SetLabelReq: 需要填写的包括设备信息和标签名字
返回值
Empty: grpc返回值占位符,无实际意义
前置依赖
用户已登录
设备已初始化
设备已开始测试
updateLabel
用途
修改label的名字
定义rpc updateLabel (UpdateLabelReq) returns (Empty) {}
参数
UpdateLabelReq: 更新标签请求,需要填写设备信息、标签起始时间(代表标签)、新标签信息
返回值
Empty: grpc参数占位符,无实际意义
前置依赖
用户已登录
设备已初始化
设备已开始测试
addNote
用途
添加标注
定义rpc addNote (AddNoteReq) returns (Empty) {}
参数
AddNoteReq: 添加标注请求,需要填写设备信息、标注的时间点和标注内容
返回值
Empty: grpc参数占位符,无实际意义
前置依赖
用户已登录
removeNote
用途
删除批注
定义rpc removeNote (RemoveNoteReq) returns (Empty) {}
参数
RemoveNoteReq: 删除标注请求,需要填写设备信息、标注的时间位置
返回值
Empty: grpc参数占位符
前置依赖
用户已登录
setGlobalDataUploadServer
用途
设置第三方数据上传服务,当保存数据选择上了上传时,如果设置了第三方数据服务,将不会上传到官方的云服务,而是将数据上传此处设置的数据服务。
定义rpc setGlobalDataUploadServer (SetDataUploadServerReq) returns (SetDataUploadServerRsp) {}
参数
SetDataUploadServerReq: 设置第三方数据服务请求,需要设置上传服务url地址,和需要上传的格式,格式支持json和pb
返回值
SetDataUploadServerRsp: grpc返回值占位符,无实际意义
前置依赖
用户已登录
saveData
用途
保存测试数据
定义rpc saveData (SaveDataReq) returns (SaveDataRsp) {}
参数
SaveDataReq: 保存测试数据请求,需要填写的有设备信息、数据开始时间、数据结束时间、是否上传到数据服务(官方云存储或者第三方数据服务)、是否保存到文件,以及选择到文件时保存的路径和格式
返回值
SaveDataRsp: 保存文件结果,包括上传结果和导出到文件结果
前置依赖
用户已登录
getDeviceCacheData
用途
获取设备的缓存数据,数据流式返回
定义rpc getDeviceCacheData (GetDeviceCacheDataReq) returns(stream CachePerfData) {}
参数
GetDeviceCacheDataReq: 拉取数据请求,需要填写设备信息字段
返回值
stream CachePerfData: 流式返回缓存性能数据,参见CachePerfData结构定义
前置依赖
用户已登录
备注
适用于测试过程中设备断开连接的情况,也可用于测试过程中或结束测试后按条拉取数据,缓存的性能数据会在开始新一次测试时清空
getDeviceCacheDataPacked
用途
获取设备的缓存数据, 指标数据会打包返回
定义rpc getDeviceCacheDataPacked (GetDeviceCacheDataPackedReq) returns (stream CachePerfDataPacked) {}
参数
GetDeviceCacheDataPackedReq: 拉取缓存数据请求,需要提供设备信息、以及返回数据格式,返回格式支持json和pb格式
返回值
stream CachePerfDataPacked: 流式返回设备缓存的测试数据,有 2 + n次的返回,第一次返回测试指标数据,第二次返回测试应用图标,后面n次返回测试过程中生成的截图,如果有的话。
前置依赖
用户已登录
备注
适用于测试过程中设备断开连接的情况,也可用于测试过程中或结束测试后拉取打包好的全部数据,缓存的性能数据会在开始新一次测试时清空
getAppRunningProcess
用途
获取设备上app正在运行的进程列表
定义rpc getAppRunningProcess (GetAppRunningProcessReq) returns (GetAppRunningProcessRet) {}
参数
GetAppRunningProcessReq: 拉取进程列表请求,需要填写设备信息和app信息
返回值
GetAppRunningProcessRet: 进程列表
前置依赖
用户已登录
设备已初始化
getAppWindowMap
用途
获取设备上app每个进程对应的Activity和SurfaceView,仅适用于Android设备
定义rpc getAppWindowsMap (GetAppWindowsMapReq) returns (GetAppWindowsMapRet) {}
参数
GetAppWindowMapReq: 获取app进程对应的Activity和SurfaceView请求,需要填写设备信息和app信息
返回值
GetAppRunningProcessRet: 返回的数据可以理解为一个map,key值为pid,value值为此pid所涉及的Activity和SurfaceView列表
前置依赖
用户已登录
设备已初始化
getRunningSysProcess
用途
获取设备系统进程列表
定义 rpc getRunningSysProcess (Device) returns (GetRunningSysProcessRet) {}
参数
Device: 需要获取系统进程列表的设备
返回值
GetRunningSysProcessRet: 进程列表
前置依赖
用户已登录
设备已初始化
updateAppInfo
用途
刷新app的信息
定义rpc updateAppInfo (UpdateAppInfoReq) returns (UpdateAppInfoRet) {}
参数
UpdateAppInfoReq: 更新App请求,需要填写设备信息和app信息
返回值
UpdateAppInfoRet: 返回最新的app信息
前置依赖
用户已登录
设备已初始化
备注
一般用于开始测试前更新app信息,防止开始测试前app被卸载或者升级等意外情况
createTask
用途
创建任务,用于归类上传测试数据。
定义rpc createTask (CreateTaskReq) returns (CreateTaskRsp) {}
参数
CreateTaskReq: 创建Task请求,需要task名称,不能超过50个字符
返回值
CreateTaskRsp: 返回新创建task Id
前置依赖
用户已登录
archiveCaseToTask
用途
将上传官方云存储case归档到task
定义rpc archiveCaseToTask (ArchiveCaseToTaskReq) returns (ArchiveCaseToTaskRsp) {}
参数
ArchiveCaseToTaskReq: 归档请求,需要填写任务Id和Case ID
返回值
ArchiveCaseToTaskRsp: 返回值占位符,无实际意义
前置依赖
用户已登录
shareCase
用途
分享上传到官方云储存case数据
定义rpc shareCase (ShareCaseReq) returns (ShareCaseRsp) {}
参数
ShareCaseReq: 分享的case id和分享有效时间(单位分钟,0代表永不过期)
返回值
ShareCaseRsp: 返回分享后的查看case 链接和查看密码
前置依赖
用户已登录
killServer
用途
停止PerfDogService
定义rpc killServer (Empty) returns (Empty) {}
参数
Empty: gRPC参数占位符,无实际意义
返回值
Empty: gRPC返回值占位符,无实际意义

性能测试技术交流群:720150565

查看PerfDog详情:https://perfdog.qq.com/?ADTAG=media.dev_website

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值