一种移动设备APP性能数据显示方法及装置与流程

文档序号:13685673阅读:332来源:国知局
一种移动设备APP性能数据显示方法及装置与流程

本发明涉及软件测试领域,更具体地,涉及一种移动设备app性能数据显示方法及装置。



背景技术:

软件测试描述一种用来促进鉴定软件的正确性、完整性、安全性和质量的过程。换句话说,软件测试是一种实际输出与预期输出之间的审核或者比较过程。软件测试的经典定义为在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。

现有的软件测试技术中,ios系统的app性能数据通过mac设备上安装的xcode客户端进行获取,所述xcode客户端不能实时获取ios系统中app的性能数据并显示,不便于对app性能的实时监控。



技术实现要素:

为克服上述不能实时获取app性能数据并显示的问题或者至少部分地解决上述问题,本发明提供了一种移动设备app性能数据显示方法及装置。

根据本发明的第一方面,提供一种移动设备app性能数据显示方法,包括:

s1,通过脚本获取目标app的性能数据;

s2,将所述目标app的性能数据以时间戳为关键字存储在数据库中;

s3,通过grafana工具将存储的所述目标app的性能数据以时间为维度进行显示。

具体地,所述步骤s1具体包括:

使用top命令每隔第一预设时长获取ios系统中所有app的性能数据;

对所述所有app的性能数据进行过滤,获取所述目标app的性能数据;

对所述目标app的性能数据进行筛选,截取筛选的所述目标app的性能数据中的数字。

具体地,对所述目标app的性能数据进行筛选的步骤具体包括:

对所述目标app的性能数据以空格进行分割;

通过gawk的变量工具对分割后的所述目标app的性能数据进行筛选。

具体地,所述步骤s2具体包括:

使用curl命令向时序数据库发送写入目标app的性能数据的http请求;

将所述目标app的性能数据以时间戳为关键字在所述时序数据库中进行存储。

具体地,所述步骤s1之前还包括:

通过连接设备向移动设备注入shell语言编写的获取目标app性能数据的脚本,并启动所述移动设备中脚本的执行。

具体地,所述步骤s3具体包括:

在所述脚本启动执行第二预设时长后,通过grafana工具将存储的所述目标app的性能数据以时间为纬度进行图表显示。

具体地,所述目标app的性能数据包括所述目标app的cup使用率和内存使用率。

根据本发明的第二方面,提供一种移动设备app性能数据显示装置,包括:

获取单元,用于通过脚本获取目标app的性能数据;

存储单元,用于将所述目标app的性能数据以时间戳为关键字存储在数据库中;

显示单元,用于通过grafana工具将存储的所述目标app的性能数据以时间为维度进行显示。

根据本发明的第三方面,提供一种移动设备app性能数据显示设备,包括:

至少一个处理器、至少一个存储器和总线;其中,

所述处理器和存储器通过所述总线完成相互间的通信;

所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如前所述的方法。

根据本发明的第四方面,提供一种非暂态计算机可读存储介质,用于存储如前所述方法的计算机程序。

本发明提供一种移动设备app性能数据显示方法及装置,该方法通过脚本实时获取所述移动设备中目标app的性能数据,并将所述性能数据回写入数据库,并以时间为维度将所述目标app的性能数据进行展示,从而实时获取目标app性能数据,并进行展示,便于对app性能的实时监控。

附图说明

图1为本发明实施例提供的移动设备app性能数据显示方法流程示意图;

图2为本发明实施例提供的移动设备app性能数据显示装置结构示意图;

图3为本发明实施例提供的移动设备app性能数据显示设备结构示意图。

具体实施方式

下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。

在本发明的一个实施例中提供一种移动设备app性能数据显示方法,图1为本发明实施例提供的移动设备app性能数据显示方法流程示意图,该方法包括:s1,通过脚本获取目标app的性能数据;s2,将所述目标app的性能数据以时间戳为关键字存储在数据库中;s3,通过grafana工具将存储的所述目标app的性能数据以时间为维度进行显示。

具体地,s1中,所述脚本为脚本语言编写,优选采用移动设备系统可识别的语言编写,如shell语言。所述目标app的性能数据为所述目标app运行时占用系统资源的数据。所述目标app为ios系统中的app。所述脚本可以每隔一秒获取所述目标app的性能数据。脚本获取所述目标app的性能数据的间隔时间可以根据实际需要进行设置。s2中,所述时间戳(timestamp)通常是一个字符序列,唯一地标识某一刻的时间。数字时间戳技术是数字签名技术的一种变形应用。将所述目标app的各性能数据以时间戳为关键字存储在数据库中。所述数据库可以为所述grafana工具支持的时序数据库。s3中,将所述目标app的性能数据作为所述grafana工具的输入,grafana工具将存储的所述目标app的性能数据以时间为维度进行显示。所述grafana工具是一种时序数据展示工具,主要用于大规模指标数据的可视化展示,支持大部分常用的时序数据库。

本实施例通过脚本实时获取所述移动设备中目标app的性能数据,并将所述性能数据回写入数据库,并以时间为维度将所述目标app的性能数据进行展示,从而实时获取目标app性能数据,并进行展示,便于对app性能的实时监控。

在上述实施例的基础上,本实施例中所述步骤s1具体包括:使用top命令每隔第一预设时长获取ios系统中所有app的性能数据;对所述所有app的性能数据进行过滤,获取所述目标app的性能数据;对所述目标app的性能数据进行筛选,截取筛选的所述目标app的性能数据中的数字。

具体地,所述top命令是linux中常用的性能分析工具,能够实时显示系统中所有app的性能数据,即各app的资源占用信息,如cpu使用率和内存使用率等。搭配-1参数使用,表示命令退出前,刷新多少次,默认刷新时间间隔,即所述第一预设时长为1s,代码为top–l10000。所述第一预设时长可以根据实际需要进行设置。top命令获取的结果以文本行为单位。通过gawk编程对所述所有app的性能数据进行过滤,获取所述目标app的性能数据。因此必须要对数据进行过滤。通过模式匹配,过滤出所述目标app的性能数据,所述性能数据同样以文本行为单位。代码为gawk‘/appname/’。由于所述app性能数据包括数字和字符,对所述目标app性能数据中的字符进行剔除,得到所述目标app性能数据中的数字。如cpu的使用率中含有“%”字符,内存使用率中含有“m”字符。使用index函数获取到指定字符的索引,然后用substr函数截取指定字符前面的字符串,从而获取到所述目标app性能数据中的数字,如

本实施例通过脚本中的命令对获取的所有app的性能数据进行过滤,获取所述目标app的性能数据,并对所述目标app的性能数据进行筛选和截取,获取所需的纯数字的目标app性能数据,从而实现根据实际需求实时获取所述目标app的性能数据。

在上述实施例的基础上,本实施例中对所述目标app的性能数据进行筛选的步骤具体包括:对所述目标app的性能数据以空格进行分割;通过gawk的变量工具对分割后的所述目标app的性能数据进行筛选。

具体地,在进行筛选前,所述目标app的性能数据包括很多性能数据,需要进一步筛选出实际需要的性能数据,如cpu的使用率、内存使用率,也可以筛选出其它数据。通常情况下,性能测试比较关心的指标为cpu的使用率和内存使用率。gawk对以文本行为单位的性能数据默认以空格分割,例如所述目标app的性能数据中的cpu使用率在所述目标app的性能数据中的第3列,所述目标app的性能数据中的内存使用率在所述目标app的性能数据中的第10列,则通过gawk的变量工具$3、$10可以获取所述目标app性能数据中的cpu使用率和内存使用率。本实施例通过筛选获取所述目标app的性能数据中所需要的性能数据。

在上述各实施例的基础上,本实施例中所述步骤s2具体包括:使用curl命令向时序数据库发送写入目标app的性能数据的http请求;将所述目标app的性能数据以时间戳为关键字在所述时序数据库中进行存储。

具体地,在获取到所述目标app的性能数据之后,使用curl命令将所述目标app的性能数据通过网络请求向外发送到所述时序数据库中。所述时序数据库可以为influxdb、graphite、opentsdb时序数据库等。将所述目标app的性能数据以时间戳为关键字在所述influxdb时序数据库中进行存储。代码为:

cmd1="curl-i-xpost\"http://x.x.x.xx:8086/write?db=testdb\"--data-binary\"cpu,uuid=jb_shell,devicename=jb_shellvalue=\""cpu"";

system(cmd1)

本实施例通过将获取的所述目标app的性能数据以时间戳为关键字存储在实时数据库中,以便通过grafana工具将存储的所述目标app的性能数据以时间为维度进行显示。

在上述各实施例的基础上,本实施例中所述步骤s1之前还包括:通过连接设备向移动设备注入shell语言编写的获取目标app性能数据的脚本,并启动所述移动设备中脚本的执行。

具体地,所述连接设备为usb,除此之外还可以通过wifi,蓝牙等连接方式向移动设备注入shell语言编写的脚本。通过usb连接移动设备。所述的注入是指通过usb进行端口连接后以scp方式将脚本拷贝到所述移动设备中。使用脚本语言启动所爱脚本的执行。启动方式为:./shperfomance.sh。通过启动所述移动移动设备中脚本的执行,获取注入在移动设备中的所述脚本获取的所述目标app的性能数据。

在上述各实施例的基础上,本实施例中所述步骤s3具体包括:在所述脚本启动执行第二预设时长后,通过grafana工具将存储的所述目标app的性能数据以时间为纬度进行图表显示。

具体地,在所述脚本启动执行第二预设时长后,即所述脚本获取一段时间的所述目标app的性能数据后,将所述目标app的性能数据通过grafana工具将存储的所述目标app的性能数据以时间为纬度进行图表显示,方便测试人员根据所显示的图表直观了解所述目标app的性能数据。

在上述各实施例的基础上,本实施例中所述目标app的性能数据包括所述目标app的cup使用率和内存使用率。

在本发明的另一个实施例中提供一种移动设备app性能数据显示装置,图2为本发明实施例提供的移动设备app性能数据显示装置结构示意图,该装置包括获取单元1、存储单元2和显示单元3,其中:

所述获取单元1用于通过脚本获取目标app的性能数据;所述存储单元2用于将所述目标app的性能数据以时间戳为关键字存储在数据库中;所述显示单元3用于通过grafana工具将存储的所述目标app的性能数据以时间为维度进行显示。

具体地,所述脚本为脚本语言编写,优选采用移动设备系统可识别的语言编写,如shell语言。所述目标app的性能数据为所述目标app运行时占用系统资源的数据。所述获取单元1通过所述脚本可以每隔一秒获取所述目标app的性能数据。脚本获取所述目标app的性能数据的间隔时间可以根据实际需要进行设置。所述时间戳(timestamp)通常是一个字符序列,唯一地标识某一刻的时间。数字时间戳技术是数字签名技术的一种变形应用。所述存储单元2将所述目标app的各性能数据以时间戳为关键字存储在数据库中。所述数据库可以为所述grafana工具支持的时序数据库。所述显示单元3将所述目标app的性能数据作为所述grafana工具的输入,grafana工具将存储的所述目标app的性能数据以时间为维度进行显示。所述grafana工具是一种时序数据展示工具,主要用于大规模指标数据的可视化展示,支持大部分常用的时序数据库。

本实施例通过脚本实时获取所述移动设备中目标app的性能数据,并将所述性能数据回写入数据库,并以时间为维度将所述目标app的性能数据进行展示,从而实时获取目标app性能数据,并进行展示,便于对app性能的实时监控。

在上述实施例的基础上,本实施例中所述获取单元具体用于:使用top命令每隔第一预设时长获取ios系统中所有app的性能数据;对所述所有app的性能数据进行过滤,获取所述目标app的性能数据;对所述目标app的性能数据进行筛选,截取筛选的所述目标app的性能数据中的数字。

在上述实施例的基础上,本实施例中所述获取单元进一步具体用于:对所述目标app的性能数据以空格进行分割;通过gawk的变量工具对分割后的所述目标app的性能数据进行筛选。

在上述实施例的基础上,本实施例中所述存储单元具体用于:使用curl命令向时序数据库发送写入目标app的性能数据的http请求;将所述目标app的性能数据以时间戳为关键字在所述时序数据库中进行存储。

在上述实施例的基础上,本实施例中所述装置还包括注入单元,用于通过连接设备向移动设备注入shell语言编写的脚本,并启动所述移动设备中脚本的执行。

在上述任一实施例的基础上,本实施例中所述显示单元具体用于:在所述脚本启动执行第二预设时长后,通过grafana工具将存储的所述目标app的性能数据以时间为纬度进行图表显示。

在上述任一实施例的基础上,本实施例中所述目标app的性能数据包括所述目标app的cup使用率和内存使用率。

本实施例提供一种移动设备app性能数据显示设备,图3为本发明实施例提供的移动设备app性能数据显示设备结构示意图,该设备包括:至少一个处理器31、至少一个存储器32和总线33;其中,

所述处理器31和存储器32通过所述总线33完成相互间的通信;

所述存储器32存储有可被所述处理器31执行的程序指令,所述处理器调用所述程序指令能够执行上述各方法实施例所提供的方法,例如包括:s1,通过脚本获取目标app的性能数据;s2,将所述目标app的性能数据以时间戳为关键字存储在数据库中;s3,通过grafana工具将存储的所述目标app的性能数据以时间为维度进行显示。

本实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:s1,通过脚本获取目标app的性能数据;s2,将所述目标app的性能数据以时间戳为关键字存储在数据库中;s3,通过grafana工具将存储的所述目标app的性能数据以时间为维度进行显示。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

以上所描述的移动设备app性能数据显示设备实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后,本申请的方法仅为较佳的实施方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1