CN110413503A - 一种应用程序性能监控方法、装置、设备及存储介质 - Google Patents
一种应用程序性能监控方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN110413503A CN110413503A CN201910514639.4A CN201910514639A CN110413503A CN 110413503 A CN110413503 A CN 110413503A CN 201910514639 A CN201910514639 A CN 201910514639A CN 110413503 A CN110413503 A CN 110413503A
- Authority
- CN
- China
- Prior art keywords
- terminal
- application program
- preset
- tool
- adb
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000012544 monitoring process Methods 0.000 title claims abstract description 39
- 238000012360 testing method Methods 0.000 claims abstract description 36
- 230000007613 environmental effect Effects 0.000 claims abstract description 27
- 238000012806 monitoring device Methods 0.000 claims description 27
- 230000009471 action Effects 0.000 claims description 14
- 238000012956 testing procedure Methods 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 4
- 230000006399 behavior Effects 0.000 claims 1
- NJPPVKZQTLUDBO-UHFFFAOYSA-N novaluron Chemical compound C1=C(Cl)C(OC(F)(F)C(OC(F)(F)F)F)=CC=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F NJPPVKZQTLUDBO-UHFFFAOYSA-N 0.000 abstract 1
- 230000006870 function Effects 0.000 description 23
- 238000010586 diagram Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- 238000005538 encapsulation Methods 0.000 description 4
- 230000008676 import Effects 0.000 description 4
- 241001269238 Data Species 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 241000208340 Araliaceae Species 0.000 description 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 1
- 235000003140 Panax quinquefolius Nutrition 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 235000008434 ginseng Nutrition 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000011056 performance test Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3664—Environments for testing or debugging software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及基架运维领域,公开了一种应用程序性能监控方法、装置、设备及存储介质,用于提高应用程序的测试效率,提高测试数据的准确性。本发明方法包括:终端调用预置的Android SDK工具;终端根据所述预置的Android SDK工具设置相关的环境变量,所述环境变量用于支持所述预置的Android SDK工具的运行;终端通过所述预置的Android SDK工具启动命令提示符CMD;终端在所述CMD中输入ADB命令,所述ADB命令用于获取所述终端上运行的目标应用程序APP的性能参数。
Description
技术领域
本发明涉及系统数据监控领域,尤其涉及一种应用程序性能监控方法、装置、设备及存储介质。
背景技术
随着互联网的快速发展,越来越多的应用程序(application,APP)被开发出来,为用户提供更便捷的服务。消费者可以通过APP实现一系列的操作,例如获取手机参数或性能等。
现有APP端性能测试工具,如GT,iTest等,对手机限制多,需要root等,而且不能实时获取到我们想要的各种性能数据,如中央处理器(central processing unit,CPU)占用、内存占用、流量、耗电量、平均值、电流峰值等。
目前,现有APP性能测试工具需要人工点击操作APP,如果是监控一小时的性能,则需要人力去点击操作一小时,不够智能与自动化,测试效率低。
发明内容
本发明提供了一种应用程序性能监控方法、装置、设备及存储介质,用于提高应用程序的测试效率,提高测试数据的准确性。
本发明实施例的第一方面提供一种应用程序性能监控方法,包括:终端调用预置的Android SDK工具;终端根据所述预置的Android SDK工具设置相关的环境变量,所述环境变量用于支持所述预置的Android SDK工具的运行;终端通过所述预置的Android SDK工具启动命令提示符CMD;终端在所述CMD中输入ADB命令,所述ADB命令用于获取所述终端上运行的目标应用程序APP的性能参数。
可选的,在本发明实施例第一方面的第一种实现方式中,所述方法还包括:终端获取预置的Python脚本,所述Python脚本用于自动输入所述ADB命令。
可选的,在本发明实施例第一方面的第二种实现方式中,所述方法还包括:终端调用所述预置的Android SDK工具中的Monkeyrunner工具进行性能测试;终端通过所述Monkeyrunner工具中的用户界面UI框架和所述预置的Python脚本进行监控,并将监控到的性能参数进行封装。
可选的,在本发明实施例第一方面的第三种实现方式中,所述终端调用所述预置的Android SDK工具中的Monkeyrunner工具进行性能测试包括:终端调用预置的Python脚本,所述预置的Python脚本用于获取目标APP的性能参数;终端通过所述预置的Python脚本监控应用程序的各种操作事件;终端将获取到的目标APP的性能参数作为输入,将所述各种操作事件按照预置顺序进行组合作为测试步骤,将预期结果作为输出,生成测试用例,所述测试用例包括所述各种操作事件;终端通过所述预置的Android SDK工具中的Monkeyrunner工具运行所述测试用例,对所述目标APP进行性能测试。
可选的,在本发明实施例第一方面的第四种实现方式中,所述终端根据所述Android SDK工具设置相关的环境变量包括:终端设置Android SDK工具的参数JAVA_HOME,所述参数JAVA_HOME用于指示JAVA所在的目录;终端设置Android SDK工具的参数PATH,所述参数PATH用于搜索可执行文件;终端设置Android SDK工具的参数CLASSPATH,所述参数CLASSPATH用于搜索JAVA编译或者运行时需要用到的类。
可选的,在本发明实施例第一方面的第五种实现方式中,所述终端在所述CMD中输入ADB命令,所述ADB命令用于获取所述终端上运行的应用程序的性能参数包括:终端在CMD中输入ADB命令,所述ADB命令包括adb root命令、adb devices命令或adb logcat命令,所述adb root命令用于获取管理员权限,所述adb devices命令用于查看设备,所述adblogcat命令用于查看日志。
可选的,在本发明实施例第一方面的第六种实现方式中,所述方法还包括:终端配置需要监控的APP模块。
本发明实施例的第二方面提供了一种应用程序性能监控装置,包括:第一调用单元,用于调用预置的Android SDK工具;设置单元,用于根据所述预置的Android SDK工具设置相关的环境变量,所述环境变量用于支持所述预置的Android SDK工具的运行;启动单元,用于通过所述预置的Android SDK工具启动命令提示符CMD;输入单元,用于在所述CMD中输入ADB命令,所述ADB命令用于获取所述终端上运行的目标应用程序APP的性能参数。
可选的,在本发明实施例第二方面的第一种实现方式中,应用程序性能监控装置还包括:获取单元,用于获取预置的Python脚本,所述Python脚本用于自动输入所述ADB命令。
可选的,在本发明实施例第二方面的第二种实现方式中,应用程序性能监控装置还包括:第二调用单元,用于调用所述预置的Android SDK工具中的Monkeyrunner工具进行性能测试;监控封装单元,用于通过所述Monkeyrunner工具中的用户界面UI框架和所述预置的Python脚本进行监控,并将监控到的性能参数进行封装。
可选的,在本发明实施例第二方面的第三种实现方式中,第二调用单元具体用于:调用预置的Python脚本,所述预置的Python脚本用于获取目标APP的性能参数;通过所述预置的Python脚本监控应用程序的各种操作事件;终端将获取到的目标APP的性能参数作为输入,将所述各种操作事件按照预置顺序进行组合作为测试步骤,将预期结果作为输出,生成测试用例,所述测试用例包括所述各种操作事件;通过所述预置的Android SDK工具中的Monkeyrunner工具运行所述测试用例,对所述目标APP进行性能测试。
可选的,在本发明实施例第二方面的第四种实现方式中,设置单元具体用于:设置Android SDK工具的参数JAVA_HOME,所述参数JAVA_HOME用于指示JAVA所在的目录;设置Android SDK工具的参数PATH,所述参数PATH用于搜索可执行文件;设置Android SDK工具的参数CLASSPATH,所述参数CLASSPATH用于搜索JAVA编译或者运行时需要用到的类。
可选的,在本发明实施例第二方面的第五种实现方式中,输入单元具体用于:在CMD中输入ADB命令,所述ADB命令包括adb root命令、adb devices命令或adb logcat命令,所述adb root命令用于获取管理员权限,所述adb devices命令用于查看设备,所述adblogcat命令用于查看日志。
可选的,在本发明实施例第二方面的第六种实现方式中,应用程序性能监控装置还包括:配置单元,用于配置需要监控的APP模块。
本发明实施例的第三方面提供了一种应用程序性能监控设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一实施方式所述的应用程序性能监控方法。
本发明实施例的第四方面提供了一种计算机可读存储介质,包括指令,当所述指令在计算机上运行时,使得计算机执行上述任一实施方式所述的应用程序性能监控方法的步骤。
本发明实施例提供的技术方案中,终端调用预置的Android SDK工具;终端根据预置的Android SDK工具设置相关的环境变量,该环境变量用于支持预置的Android SDK工具的运行;终端通过预置的Android SDK工具启动命令提示符CMD;终端在CMD中输入ADB命令,该ADB命令用于获取终端上运行的目标应用程序APP的性能参数。本发明实施例,提高了应用程序的测试效率,并提高了测试数据的准确性。
附图说明
图1为本发明实施例中应用程序性能监控方法的一个实施例示意图;
图2为本发明实施例中应用程序性能监控方法的另一个实施例示意图;
图3为本发明实施例中应用程序性能监控装置的一个实施例示意图;
图4为本发明实施例中应用程序性能监控装置的另一个实施例示意图;
图5为本发明实施例中应用程序性能监控设备的一个实施例示意图。
具体实施方式
本发明提供了一种应用程序性能监控方法、装置、设备及存储介质,用于提高应用程序的测试效率,提高测试数据的准确性。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例进行描述。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
请参阅图1,本发明实施例提供的一种应用程序性能监控方法的流程图,具体包括:
101、终端调用预置的Android SDK工具。
终端调用预置的Android SDK工具,其中,Android SDK工具为预先安装在终端上的基于安卓(Android)系统的软件开发工具包(software development kit,SDK)。开发人员会使用应用程序编程接口(application programming interface,API)函数,需要使用到与API所对应的头文件(.H文件)和静态数据连接库(.LIB文件),而SDK正是提供了一整套开发Windows应用程序所需的相关文件、范例和工具的“工具包”。其中,API是操作系统留给应用程序的一个调用接口,应用程序通过调用操作系统的API而使操作系统去执行应用程序的命令(动作)。在磁盘操作系统(disk operating system,DOS)中,API是以中断调用的形式(INT 21h)提供的,在DOS下运行的应用程序都直接或间接的通过中断调用来使用操作系统功能,比如,将AH置为30h后调用INT 21h就可以得到DOS操作系统的版本号。而在Windows中,系统API是以函数调用的方式提供的。同样是取得操作系统的版本号,在Windows中你所要做的就是调用GetVersionEx()函数。DOS API是系统程序的一部分,他们与系统一同被载入内存并且可以通过中断矢量表找到他们的入口。
需要说明的是,系统中会存在一些.dll格式的文件,这些文件就是动态链接库(dynamic link library,DLL)文件,是一种可执行文件格式。跟.exe文件不同的是,.dll文件不能直接执行,他们通常由.exe文件在执行时装入,内含有一些资源以及可执行代码等。其实Windows的三大模块就是以DLL的形式提供的(Kernel32.dll,User32.dll,GDI32.dll),里面就含有了API函数的执行代码。为了使用DLL中的API函数,我们必须要有API函数的声明(如.H文件)和其导入库(如.LIB文件),其中,导入库是为了在DLL文件中找到API的入口点而使用的。
102、终端根据预置的Android SDK工具设置相关的环境变量,该环境变量用于支持预置的Android SDK工具的运行。
终端根据预置的Android SDK工具设置相关的环境变量,该环境变量用于支持预置的Android SDK工具的运行。只有设置了环境变量后,Android SDK工具才可以正常运行。具体的,终端可以设置Android SDK工具的路径参数,例如,设置路径为:
D:\android.eclipse\android.software\sdk\android-sdk-windows\platform-tools,终端还可以根据实际情况进行设置,具体此处不做限定。
103、终端通过预置的Android SDK工具启动命令提示符CMD。
终端通过预置的Android SDK工具启动命令提示符CMD。具体的,终端通过AndroidSDK工具启动命令提示符CMD,进入命令模式。
可以理解的是,命令模式下,可以直接执行一切快捷指令。例如,可以输入debug指令,用于对程序进行调试,还可以是具有其他功能的指令,具体此处不做限定。
104、终端在CMD中输入ADB命令,该ADB命令用于获取终端上运行的目标应用程序APP的性能参数。
终端在CMD中输入安卓调试桥(Android debug bidge,ADB)命令,该ADB命令用于获取终端上运行的应用程序APP的性能参数。其中,性能参数可以包括CPU的占用率、内存占用率、流量、耗电量等性能参数。本发明涉及的ADB命令,一般CMD中输入的指令除了可以大写,还可以为小写,因此也可以称为adb指令,为了便于理解,本申请中以ADB命令为例进行说明。
需要说明的是,ADB是Android SDK里的一个工具,ADB是一个“客户端-服务器端”程序,其中客户端就是操作的电脑,服务器端是Android设备,包括实体机器戒者虚拟机。用这个命令可以直接操作管理Android模拟器或者真实的Android设备。
例如,终端在CMD中输入adb devices指令,该adb devices指令用于查看设备。例如,输入的是adb root,该adb root指令用于获取管理员权限。
本发明实施例,能够不需要终端root权限就能自由获取到APP的各种性能数据,提高了APP的测试效率,同时提高了测试数据的准确性。
请参阅图2,本发明实施例中应用程序性能监控方法的另一个实施例包括:
201、终端调用预置的Android SDK工具。
终端调用预置的Android SDK工具,其中,Android SDK工具为预先安装在终端上的基于安卓(Android)系统的软件开发工具包(software development kit,SDK)。开发人员会使用应用程序编程接口(application programming interface,API)函数,需要使用到与API所对应的头文件(.H文件)和静态数据连接库(.LIB文件),而SDK正是提供了一整套开发Windows应用程序所需的相关文件、范例和工具的“工具包”。其中,API是操作系统留给应用程序的一个调用接口,应用程序通过调用操作系统的API而使操作系统去执行应用程序的命令(动作)。在磁盘操作系统(disk operating system,DOS)中,API是以中断调用的形式(INT 21h)提供的,在DOS下运行的应用程序都直接或间接的通过中断调用来使用操作系统功能,比如,将AH置为30h后调用INT 21h就可以得到DOS操作系统的版本号。而在Windows中,系统API是以函数调用的方式提供的。同样是取得操作系统的版本号,在Windows中你所要做的就是调用GetVersionEx()函数。DOS API是系统程序的一部分,他们与系统一同被载入内存并且可以通过中断矢量表找到他们的入口。
需要说明的是,系统中会存在一些.dll格式的文件,这些文件就是动态链接库(dynamic link library,DLL)文件,是一种可执行文件格式。跟.exe文件不同的是,.dll文件不能直接执行,他们通常由.exe文件在执行时装入,内含有一些资源以及可执行代码等。其实Windows的三大模块就是以DLL的形式提供的(Kernel32.dll,User32.dll,GDI32.dll),里面就含有了API函数的执行代码。为了使用DLL中的API函数,我们必须要有API函数的声明(如.H文件)和其导入库(如.LIB文件),其中,导入库是为了在DLL文件中找到API的入口点而使用的。
202、终端根据预置的Android SDK工具设置相关的环境变量,该环境变量用于支持预置的Android SDK工具的运行。
终端根据预置的Android SDK工具设置相关的环境变量,该环境变量用于支持预置的Android SDK工具的运行。只有设置了环境变量后,Android SDK工具才可以正常运行。具体的,终端可以设置Android SDK工具的路径参数,终端设置Android SDK工具的参数JAVA_HOME,该参数JAVA_HOME用于指示JAVA所在的目录;终端设置Android SDK工具的参数PATH,该参数PATH用于搜索可执行文件;终端设置Android SDK工具的参数CLASSPATH,该参数CLASSPATH用于搜索JAVA编译或者运行时需要用到的类。例如,设置路径为:
D:\android.eclipse\android.software\sdk\android-sdk-windows\platform-tools,终端还可以根据实际情况进行设置,具体此处不做限定。
203、终端通过预置的Android SDK工具启动命令提示符CMD。
终端通过预置的Android SDK工具启动命令提示符CMD。具体的,终端通过AndroidSDK工具启动命令提示符CMD,进入命令模式。
可以理解的是,命令模式下,可以直接执行一切快捷指令。例如,可以输入debug指令,用于对程序进行调试,还可以是具有其他功能的指令,具体此处不做限定。
204、终端在CMD中输入ADB命令,该ADB命令用于获取终端上运行的目标应用程序APP的性能参数。
终端在CMD中输入安卓调试桥(Android debug bidge,ADB)命令,该ADB命令用于获取终端上运行的应用程序APP的性能参数。其中,性能参数可以包括CPU的占用率、内存占用率、流量、耗电量等性能参数。本发明涉及的ADB命令,一般CMD中输入的指令除了可以大写,还可以为小写,因此也可以称为adb指令,为了便于理解,本申请中以ADB命令为例进行说明。
需要说明的是,ADB是Android SDK里的一个工具,ADB是一个“客户端-服务器端”程序,其中客户端就是操作的电脑,服务器端是Android设备,包括实体机器戒者虚拟机。用这个命令可以直接操作管理Android模拟器或者真实的Android设备。
例如,终端在CMD中输入adb devices指令,该adb devices指令用于查看设备。例如,输入的是adb root,该adb root指令用于获取管理员权限。
205、终端获取预置的Python脚本,该Python脚本用于自动输入ADB命令。
终端获取预置的Python脚本,该Python脚本用于自动输入ADB命令。
需要说明的是,Python脚本还可以根据实际情况,设置有操作时长,用于终端对Python脚本的运行过程进行控制,具体时长大小此处不做限定。
可以理解的是,Python脚本还可以设置需要监控的APP模块,对APP的部分模块进行监控,此处不再赘述。
206、终端调用预置的Android SDK工具中的Monkeyrunner工具进行性能测试。
终端调用预置的Android SDK工具中的Monkeyrunner工具进行性能测试。具体的,终端调用预置的Python脚本,所述预置的Python脚本用于获取目标APP的性能参数;终端通过所述预置的Python脚本监控应用程序的各种操作事件;终端将获取到的目标APP的性能参数作为输入,将所述各种操作事件按照预置顺序进行组合作为测试步骤,将预期结果作为输出,生成测试用例,所述测试用例包括所述各种操作事件;终端通过所述预置的Android SDK工具中的Monkeyrunner工具运行所述测试用例,对所述目标APP进行性能测试。
207、终端根据Monkeyrunner工具中的用户界面UI框架和预置的Python脚本进行监控,并将监控到的性能参数进行封装。
终端根据Monkeyrunner工具中的用户界面(user interface,UI)框架和预置的Python脚本进行监控,并将监控到的性能参数进行封装。
需要说明的是,终端将性能参数进行封装后,还可以根据封装后的性能参数发送测试数据报告或设置性能阈值预警报告,并通过邮件发送至服务器。
本发明实施例,本发明实施例,能够不需要终端root权限就能自由获取到APP的各种性能数据,提高了APP的测试效率,同时提高了测试数据的准确性。同时能够自动化的对APP进行模拟点击操作,自动化完成性能监控。
上面对本发明实施例中应用程序性能监控方法进行了描述,下面对本发明实施例中应用程序性能监控装置进行描述,请参阅图3,本发明实施例中应用程序性能监控装置的一个实施例包括:
第一调用单元301,用于调用预置的Android SDK工具;
设置单元302,用于根据所述预置的Android SDK工具设置相关的环境变量,所述环境变量用于支持所述预置的Android SDK工具的运行;
启动单元303,用于通过所述预置的Android SDK工具启动命令提示符CMD;
输入单元304,用于在所述CMD中输入ADB命令,所述ADB命令用于获取所述终端上运行的目标应用程序APP的性能参数。
本发明实施例,能够不需要终端root权限就能自由获取到APP的各种性能数据,提高了APP的测试效率,同时提高了测试数据的准确性。
请参阅图4,本发明实施例中应用程序性能监控装置的一个实施例包括:
第一调用单元301,用于调用预置的Android SDK工具;
设置单元302,用于根据所述预置的Android SDK工具设置相关的环境变量,所述环境变量用于支持所述预置的Android SDK工具的运行;
启动单元303,用于通过所述预置的Android SDK工具启动命令提示符CMD;
输入单元304,用于在所述CMD中输入ADB命令,所述ADB命令用于获取所述终端上运行的目标应用程序APP的性能参数。
可选的,应用程序性能监控装置还包括:
获取单元305,用于获取预置的Python脚本,所述Python脚本用于自动输入所述ADB命令。
可选的,应用程序性能监控装置还包括:
第二调用单元306,用于调用所述预置的Android SDK工具中的Monkeyrunner工具进行性能测试;
监控封装单元307,用于通过所述Monkeyrunner工具中的用户界面UI框架和所述预置的Python脚本进行监控,并将监控到的性能参数进行封装。
可选的,第二调用单元306具体用于:
调用预置的Python脚本,所述预置的Python脚本用于获取目标APP的性能参数;通过所述预置的Python脚本监控应用程序的各种操作事件;将获取到的目标APP的性能参数作为输入,将所述各种操作事件按照预置顺序进行组合作为测试步骤,将预期结果作为输出,生成测试用例,所述测试用例包括所述各种操作事件;通过所述预置的Android SDK工具中的Monkeyrunner工具运行所述测试用例,对所述目标APP进行性能测试。
可选的,设置单元302具体用于:
设置Android SDK工具的参数JAVA_HOME,所述参数JAVA_HOME用于指示JAVA所在的目录;设置Android SDK工具的参数PATH,所述参数PATH用于搜索可执行文件;设置Android SDK工具的参数CLASSPATH,所述参数CLASSPATH用于搜索JAVA编译或者运行时需要用到的类。
可选的,输入单元304具体用于:
在CMD中输入ADB命令,所述ADB命令包括adb root命令、adb devices命令或adblogcat命令,所述adb root命令用于获取管理员权限,所述adb devices命令用于查看设备,所述adb logcat命令用于查看日志。
可选的,应用程序性能监控装置还包括:
配置单元308,用于配置需要监控的APP模块。
本发明实施例,本发明实施例,能够不需要终端root权限就能自由获取到APP的各种性能数据,提高了APP的测试效率,同时提高了测试数据的准确性。同时能够自动化的对APP进行模拟点击操作,自动化完成性能监控。
上面图3至图4从模块化功能实体的角度对本发明实施例中的应用程序性能监控装置进行详细描述,下面从硬件处理的角度对本发明实施例中应用程序性能监控设备进行详细描述。
图5是本发明实施例提供的一种应用程序性能监控设备的结构示意图,该应用程序性能监控设备500可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)501(例如,一个或一个以上处理器)和存储器509,一个或一个以上存储应用程序507或数据506的存储介质508(例如一个或一个以上海量存储设备)。其中,存储器509和存储介质508可以是短暂存储或持久存储。存储在存储介质508的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对应用程序性能监控设备中的一系列指令操作。更进一步地,处理器501可以设置为与存储介质508通信,在应用程序性能监控设备500上执行存储介质508中的一系列指令操作。
应用程序性能监控设备500还可以包括一个或一个以上电源502,一个或一个以上有线或无线网络接口503,一个或一个以上输入输出接口504,和/或,一个或一个以上操作系统505,例如Windows Serve,Mac OS X,Unix,Linux,FreeBSD等等。本领域技术人员可以理解,图5中示出的应用程序性能监控设备结构并不构成对应用程序性能监控设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。处理器501可以执行上述实施例中第一调用单元301、设置单元302、启动单元303、获取单元305、第二调用单元306、监控封装单元307和配置单元308,用于配置需要监控的APP模块的功能,有线或无线网络接口503和/或输入输出接口504可以执行上述实施例中输入单元304的功能。
下面结合图5对应用程序性能监控设备的各个构成部件进行具体的介绍:
处理器501是应用程序性能监控设备的控制中心,可以按照设置的应用程序性能监控方法进行处理。处理器501利用各种接口和线路连接整个应用程序性能监控设备的各个部分,通过运行或执行存储在存储器509内的软件程序和/或模块,以及调用存储在存储器509内的数据,执行应用程序性能监控设备的各种功能和处理数据,从而实现对APP的性能测试及监控。存储介质508和存储器509都是存储数据的载体,本实施例中,存储介质508可以是指储存容量较小,但速度快的内存储器,而存储器509可以是储存容量大,但储存速度慢的外存储器。
存储器509可用于存储软件程序以及模块,处理器501通过运行存储在存储器509的软件程序以及模块,从而执行应用程序性能监控设备500的各种功能应用以及数据处理。存储器509可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如获取预置的Python脚本等)等;存储数据区可存储根据应用程序性能监控设备的使用所创建的数据(比如性能参数等)等。此外,存储器509可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。在本发明实施例中提供的应用程序性能监控方法程序和接收到的数据流存储在存储器中,当需要使用时,处理器501从存储器509中调用。
在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、双绞线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,光盘)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种应用程序性能监控方法,其特征在于,包括:
终端调用预置的Android SDK工具;
终端根据所述预置的Android SDK工具设置相关的环境变量,所述环境变量用于支持所述预置的Android SDK工具的运行;
终端通过所述预置的Android SDK工具启动命令提示符CMD;
终端在所述CMD中输入ADB命令,所述ADB命令用于获取所述终端上运行的目标应用程序APP的性能参数。
2.根据权利要求1所述的应用程序性能监控方法,其特征在于,所述方法还包括:
终端获取预置的Python脚本,所述Python脚本用于自动输入所述ADB命令。
3.根据权利要求2所述的应用程序性能监控方法,其特征在于,所述方法还包括:
终端调用所述预置的Android SDK工具中的Monkeyrunner工具进行性能测试;
终端通过所述Monkeyrunner工具中的用户界面UI框架和所述预置的Python脚本进行监控,并将监控到的性能参数进行封装。
4.根据权利要求3所述的应用程序性能监控方法,其特征在于,所述终端调用所述预置的Android SDK工具中的Monkeyrunner工具进行性能测试包括:
终端调用预置的Python脚本,所述预置的Python脚本用于获取目标APP的性能参数;
终端通过所述预置的Python脚本监控应用程序的各种操作事件;
终端将获取到的目标APP的性能参数作为输入,将所述各种操作事件按照预置顺序进行组合作为测试步骤,将预期结果作为输出,生成测试用例,所述测试用例包括所述各种操作事件;
终端通过所述预置的Android SDK工具中的Monkeyrunner工具运行所述测试用例,对所述目标APP进行性能测试。
5.根据权利要求1-4中任一所述的应用程序性能监控方法,其特征在于,所述终端根据所述Android SDK工具设置相关的环境变量包括:
终端设置Android SDK工具的参数JAVA_HOME,所述参数JAVA_HOME用于指示JAVA所在的目录;
终端设置Android SDK工具的参数PATH,所述参数PATH用于搜索可执行文件;
终端设置Android SDK工具的参数CLASSPATH,所述参数CLASSPATH用于搜索JAVA编译或者运行时需要用到的类。
6.根据权利要求1-4中任一所述的应用程序性能监控方法,其特征在于,所述终端在所述CMD中输入ADB命令,所述ADB命令用于获取所述终端上运行的应用程序的性能参数包括:
终端在CMD中输入ADB命令,所述ADB命令包括adb root命令、adb devices命令或adblogcat命令,所述adb root命令用于获取管理员权限,所述adb devices命令用于查看设备,所述adb logcat命令用于查看日志。
7.根据权利要求1-4中任一所述的应用程序性能监控方法,其特征在于,所述方法还包括:
终端配置需要监控的APP模块。
8.一种应用程序性能监控装置,其特征在于,包括:
第一调用单元,用于调用预置的Android SDK工具;
设置单元,用于根据所述预置的Android SDK工具设置相关的环境变量,所述环境变量用于支持所述预置的Android SDK工具的运行;
启动单元,用于通过所述预置的Android SDK工具启动命令提示符CMD;
输入单元,用于在所述CMD中输入ADB命令,所述ADB命令用于获取所述终端上运行的目标应用程序APP的性能参数。
9.一种应用程序性能监控设备,其特征在于,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1-7中任意一项所述的应用程序性能监控方法。
10.一种计算机可读存储介质,其特征在于,包括指令,当所述指令在计算机上运行时,使得计算机执行如权利要求1-7中任意一项所述的应用程序性能监控方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910514639.4A CN110413503A (zh) | 2019-06-14 | 2019-06-14 | 一种应用程序性能监控方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910514639.4A CN110413503A (zh) | 2019-06-14 | 2019-06-14 | 一种应用程序性能监控方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110413503A true CN110413503A (zh) | 2019-11-05 |
Family
ID=68359127
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910514639.4A Pending CN110413503A (zh) | 2019-06-14 | 2019-06-14 | 一种应用程序性能监控方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110413503A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110896540A (zh) * | 2019-11-21 | 2020-03-20 | 国网辽宁省电力有限公司电力科学研究院 | 移动互联网客户端安全评估工具、方法、计算机设备及存储介质 |
CN111538636A (zh) * | 2020-04-24 | 2020-08-14 | 深圳华锐金融技术股份有限公司 | 计算机设备确定方法、装置和存储介质 |
CN114968456A (zh) * | 2022-05-07 | 2022-08-30 | 麒麟合盛网络技术股份有限公司 | 一种控制终端的方法和装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170262130A1 (en) * | 2016-03-11 | 2017-09-14 | Spirent Communications, Inc. | Performance test application sequence script |
CN108287790A (zh) * | 2017-12-29 | 2018-07-17 | 五八有限公司 | 终端的应用程序性能测试方法、装置及电子设备 |
-
2019
- 2019-06-14 CN CN201910514639.4A patent/CN110413503A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170262130A1 (en) * | 2016-03-11 | 2017-09-14 | Spirent Communications, Inc. | Performance test application sequence script |
CN108287790A (zh) * | 2017-12-29 | 2018-07-17 | 五八有限公司 | 终端的应用程序性能测试方法、装置及电子设备 |
Non-Patent Citations (4)
Title |
---|
EZREAL_TAO: "adb命令对app进行性能测试", pages 1 - 4, Retrieved from the Internet <URL:https://blog.csdn.net/ezreal_tao/article/details/85492261> * |
KUANGCAIBAO: "MonkeyRunner 自动化测试 Android 应用入门示例", pages 1 - 9, Retrieved from the Internet <URL:https://segmentfault.com/a/1190000008429796> * |
发芽的枫叶: "通过python调用adb命令对app进行性能测试(6 -2)", pages 1 - 5, Retrieved from the Internet <URL:https://blog.csdn.net/sunfengye/article/details/77498935> * |
疑是银河落九天: "真机上运行monkeyrunner python脚本踩坑系列一", pages 1 - 2, Retrieved from the Internet <URL:https://blog.csdn.net/u012195899/article/details/53670991> * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110896540A (zh) * | 2019-11-21 | 2020-03-20 | 国网辽宁省电力有限公司电力科学研究院 | 移动互联网客户端安全评估工具、方法、计算机设备及存储介质 |
CN111538636A (zh) * | 2020-04-24 | 2020-08-14 | 深圳华锐金融技术股份有限公司 | 计算机设备确定方法、装置和存储介质 |
CN111538636B (zh) * | 2020-04-24 | 2021-11-19 | 深圳华锐金融技术股份有限公司 | 计算机设备确定方法、装置和存储介质 |
CN114968456A (zh) * | 2022-05-07 | 2022-08-30 | 麒麟合盛网络技术股份有限公司 | 一种控制终端的方法和装置 |
CN114968456B (zh) * | 2022-05-07 | 2024-03-08 | 麒麟合盛网络技术股份有限公司 | 一种控制终端的方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Machiry et al. | Dynodroid: An input generation system for android apps | |
CN108897562B (zh) | 安装包更新方法、装置、介质以及设备 | |
CA2768752C (en) | Terminal device of non-android platform for executing android applications, and computer readable recording medium for storing program of executing android applications on non-android platform | |
CN110413503A (zh) | 一种应用程序性能监控方法、装置、设备及存储介质 | |
US20080155338A1 (en) | Software testing framework for multiple operating system, hardware, and software configurations | |
US20180285156A1 (en) | Container chaining for automated process completion | |
CN108459964B (zh) | 测试用例选择方法、装置、设备以及计算机可读存储介质 | |
CN103595770B (zh) | Sdk实现文件下载的方法与装置 | |
CN112256321A (zh) | 静态库打包方法、装置、计算机设备和存储介质 | |
CN105550104B (zh) | 应用程序性能测试方法及装置 | |
CN108984171B (zh) | 基于Unity3D的场景持续构建方法、存储介质 | |
US9996379B2 (en) | Program execution without the use of bytecode modification or injection | |
US20160225118A1 (en) | Optimizing compilation of shaders | |
CN107015841B (zh) | 一种程序编译的预处理方法及程序编译设备 | |
CN111274512A (zh) | 一种页面加载方法、装置及介质 | |
CN110597564A (zh) | 一种安装包构建和业务组件加载方法、装置、终端设备 | |
CN103595769B (zh) | Sdk实现文件上传的方法与装置 | |
CN109491755A (zh) | 操作系统中应用程序的保护方法和装置 | |
Sinaga et al. | Performance of automation testing tools for android applications | |
CN103176903B (zh) | MapReduce分布式系统程序的测试方法及设备 | |
Corno et al. | XDN: cross-device framework for custom notifications management | |
CN115629976A (zh) | 一种内核测试方法、装置和存储介质 | |
CN114579457A (zh) | 新型电力系统固件运行仿真平台及仿真方法 | |
CN113656152A (zh) | 基于容器云环境的本地模拟方法、系统、介质和电子设备 | |
CN113434154A (zh) | 安卓应用程序打包方法、装置、存储介质及电子装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |