CN109032929A - 一种程序日志记录获取方法、装置及电子设备 - Google Patents
一种程序日志记录获取方法、装置及电子设备 Download PDFInfo
- Publication number
- CN109032929A CN109032929A CN201810714193.5A CN201810714193A CN109032929A CN 109032929 A CN109032929 A CN 109032929A CN 201810714193 A CN201810714193 A CN 201810714193A CN 109032929 A CN109032929 A CN 109032929A
- Authority
- CN
- China
- Prior art keywords
- log recording
- interface function
- file
- information
- program
- 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 65
- 238000012360 testing method Methods 0.000 claims abstract description 44
- 238000009434 installation Methods 0.000 claims abstract description 32
- 230000008569 process Effects 0.000 claims abstract description 22
- 238000001914 filtration Methods 0.000 claims description 7
- 230000006870 function Effects 0.000 description 84
- 238000010586 diagram Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- TVEXGJYMHHTVKP-UHFFFAOYSA-N 6-oxabicyclo[3.2.1]oct-3-en-7-one Chemical compound C1C2C(=O)OC1C=CC2 TVEXGJYMHHTVKP-UHFFFAOYSA-N 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000006467 substitution reaction 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/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- 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/362—Software debugging
- G06F11/3636—Software debugging by tracing the execution of the program
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
本发明的实施例公开一种程序日志记录获取方法、装置及电子设备,涉及应用程序测试技术领域,能够简单方便实现对应用程序日志跟踪记录。所述方法包括:获取应用程序安装包在装置中的安装地址;所述应用程序安装包包括:命令行日志记录运行文件;接收用户指令,调用系统接口访问所述命令行日志记录运行文件;所述用户指令包括所述安装地址;执行所述命令行日志记录运行文件,记录应用测试过程中主线程调用接口函数的信息,所述接口函数的信息包括:接口函数名称及调用所述接口函数耗费的时长。本发明适用于对应用程序运行中的卡慢信息定位分析。
Description
技术领域
本发明涉及应用程序测试技术领域,尤其涉及一种程序日志记录获取方法、装置及电子设备。
背景技术
随着互联网及移动终端技术的发展,终端应用程序大量出现,应用运行流畅度直接影响到用户体验的好坏。应用程序在运行过程中出现的轻微卡顿,一般会导致用户的界面操作需要等待一两秒钟才能恢复正常运行,而当出现严重卡顿时则可能导致装置直接弹出应用程序无响应(ANR:Application Not Responding)的提示窗口,让用户选择是要继续等待还是关闭应用。因此,在一款应用程序开发后需要对其进行性能测试,以减少或避免卡顿,提高用户体验,这是保证应用能够获得好评的关键因素。
目前,在开发环境中常用的第三方工具,例如android studio自带的一个调试工具DDMS(Dalvik Debug Monitor Service)等直接对产品性能进行程序日志跟踪记录,生成Trace文件。通过分析DDMS(Dalvik Debug Monitor Service)生成的Trace文件可以看到各个接口的执行情况。如果应用程序出现ANR,需要专门的开发人员从所述trace文件或者终端设备上的/data/anr/trace.txt目录文件来找到导致UI线程阻塞的源头,这种方法较为适合开发环境使用,不太适合测试或线上环境使用;而且通过安装第三方工具进行程序日志跟踪记录的方式较为不便。
综上,有必要提供一种适合测试环境使用的日志跟踪记录方案。
发明内容
有鉴于此,本发明实施例提供一种程序日志记录获取方法、装置及电子设备,能够简单方便实现对应用程序日志跟踪记录,适用于测试环境或线上环镜中。
第一方面,本发明实施例提供一种程序日志记录获取方法,包括:获取应用程序安装包在终端中的安装地址;所述应用程序安装包包括:命令行日志记录运行文件;
接收用户指令,根据所述用户指令调用系统接口访问所述命令行日志记录运行文件;所述用户指令包括所述安装地址;
执行所述命令行日志记录运行文件,记录应用测试过程中主线程调用接口函数的信息,所述接口函数的信息包括:接口函数名称及调用所述接口函数耗费的时长。
根据本发明实施例的一种具体实现方式,所述获取应用程序安装包在终端中的安装地址之前包括:
在应用程序执行入口文件同级目录下创建所述命令行日志记录运行文件;所述日志记录运行文件为JAVA文件;
在所述应用程序编译文件中加入引用所述日志记录运行文件的代码。
根据本发明实施例的一种具体实现方式,在所述执行所述命令行日志记录运行文件之前包括:
利用命令行方式打开所日志记录运行文件对应用程序日志进行跟踪记录。
根据本发明实施例的一种具体实现方式,所述获取应用程序安装包在终端中的安装地址包括:通过ADB命令获取应用程序安装包在手机上的安装地址。
根据本发明实施例的一种具体实现方式,在所述记录应用测试过程中主线程调用接口函数的信息之后包括:对所述接口函数的信息进行过滤,获取接口函数之间的调用逻辑信息,所述调用逻辑信息包括函数接口之间的层级关系。
根据本发明实施例的一种具体实现方式,所述对所述接口函数的信息进行过滤,获取接口函数之间的调用逻辑信息包括:
对所述调用接口函数的名称及耗时信息进行深度遍历;
获取接口函数之间的层级调用关系;
根据预设耗时阈值过滤接口函数信息;
对调用时间超过耗时阈值的接口函数进行自动分析。
第二方面,本发明实施例提供一种程序日志记录获取装置,包括:地址获取模块,用于获取应用程序安装包在终端中的安装地址;所述应用程序安装包包括:命令行日志记录运行文件;
接口调用模块,用于接收用户指令,根据所述用户指令调用系统接口访问所述命令行日志记录运行文件;所述用户指令包括所述安装地址;
执行记录模块,用于执行所述命令行日志记录运行文件,记录应用测试过程中主线程调用接口函数的信息;所述接口函数的信息包括:接口函数名称及调用所述接口函数耗费的时长。
根据本发明实施例的一种具体实现方式,所述装置还包括:
日志记录运行文件创建模块,用于在应用程序执行入口文件同级目录下创建所述命令行日志记录运行文件;所述日志记录运行文件为JAVA文件;
引用代码编辑模块,用于在所述应用程序编译文件中加入引用所述日志记录运行文件的代码。
根据本发明实施例的一种具体实现方式,所述装置还包括:
日志记录运行文件打开模块,用于利用命令行方式打开所日志记录运行文件对应用程序日志进行跟踪记录。
根据本发明实施例的一种具体实现方式,所述地址获取模块包括:地址获取单元,用于通过ADB命令获取应用程序安装包在手机上的安装地址。
根据本发明实施例的一种具体实现方式,所述装置还包括:
信息处理模块,用于对所述接口函数的信息进行过滤,获取接口函数之间的调用逻辑信息,所述调用逻辑信息包括函数接口之间的层级关系。
根据本发明实施例的一种具体实现方式,所述信息处理模块包括:
遍历单元,用于对所述调用接口函数的名称及耗时信息进行深度遍历;
调用关系获取单元,用于获取接口函数之间的层级调用关系;
信息过滤单元,用于根据预设耗时阈值过滤接口函数信息;
信息分析单元,对调用时间超过耗时阈值的接口函数进行自动分析,获取所述应用程序运行卡慢信息。
第三方面,本发明实施例提供一种电子设备,所述电子设备包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行第一方面任一所述的方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现第一方面任一所述的方法。
本发明实施例提供的程序日志记录获取方法、装置及电子设备,包括步骤:获取应用程序安装包在装置中的安装地址;所述应用程序安装包包括:命令行日志记录运行文件;接收用户指令,根据所述用户指令调用系统接口访问所述命令行日志记录运行文件;所述用户指令包括所述安装地址;执行所述命令行日志记录运行文件,记录应用测试过程中主线程调用接口函数的信息,所述接口函数的信息包括:接口函数名称及调用所述接口函数耗费的时长。通过在应用程序安装包中增加命令行日志记录运行文件,无需安装第三方日志记录工具,需要对应用程序测试时,通过调用系统接口访问所述命令行日志记录运行文件,即可执行所述命令行日志记录运行文件记录测试中的相关信息,能够简单方便实现自动对程序日志的跟踪记录,适合于测试环境或线上环境使用。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明一实施例程序日志记录获取方法流程示意图;
图2为本发明一利用命令行开启日志记录运行文件记录日志功能代码实例;程序日志记录分析结果示意图;
图3为本发明本发明一利用命令行结束日志记录运行文件记录日志功能代码实例;
图4为本发明一实施例程序日志记录分析结果示意图;
图5为本发明一实施例的程序日志记录获取模块结构示意框图;
图6为现有的DDMS工具打开后的界面图;
图7本发明一电子设备结构示意图。
具体实施方式
下面结合附图对本发明实施例进行详细描述。
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
实施例一
本发明实施例提供一种程序日志记录获取方法,能够简单方便实现对应用程序日志跟踪记录,适用于测试环境或线上环镜中。
图1为本发明一实施例的程序日志记录获取方法流程示意图。本实施例的方法可以应用于对终端应用程序在开发、测试或线上环境中的性能监测及分析,特别是对Android装置运行环境下的应用程序卡慢信息的监测及分析。
如图1所示,本实施例程序日志记录获取方法可以包括:
步骤101、获取应用程序安装包在终端中的安装地址,所述应用程序安装包包括:命令行日志记录运行文件。
本实施例中,作为一可选实施例,可以通过ADB(Android Debug Bridge))命令获取应用程序安装包在手机上的安装地址。
可以理解的是,所述命令行日志记录运行文件包括打开及结束代码,以实现对应用程序运行日志进行自动跟踪记录。
步骤102、接收用户指令,根据所述用户指令调用系统接口访问所述命令行日志记录运行文件;所述用户指令包括所述安装地址。
可以理解的是,本实施例中,可以将应用程序当成命令行工具来管理,利用ADBshe11命令调用系统接口,以访问所述命令行日志记录运行文件。
本实施例中,作为一可选实施例,所述在获取应用程序安装包在终端中的安装地址之前包括:在应用程序执行入口文件同级目录下创建所述命令行日志记录运行文件;所述日志记录运行文件为JAVA文件;在所述应用程序编译文件中加入引用所述日志记录运行文件的代码。
为了清楚说明本发明实施例,现结合一具体应用实例详细说明。例如,在Android装置环境下,对微信APP进行性能测试,可以在应用程序执行入口文件MainActivity.java的同级目录下创建一个支持命令行运行的java文件Console.java,该JAVA文件即为命令行日志记录运行文件,通过分别调用2个装置接口实现开启和关闭跟踪日志功能,在微信app的编译文件build.gradle中加入如下代码引用。编译后安装应用安装包到手机上,使用命令行启动应用中的Console.java中的代码。接口调用代码如下:
开启日志记录运行文件记录日志:Debug.startMethodTracingSampling(“xxx.trace”,8000000,10)
结束日志记录运行文件记录日志:Debug.stopMethodTracing()
其中xxx.trace文件是得到的跟踪的日志文件。
本实施例中,通过在应用程序安装包中创建一个单独的日志记录运行文件,仅在应用程序执行编译文件中加入打开所述日志记录运行文件的引用代码,不需要在应用的源代码文件中加入任何代码,采用命令行方式开启日志记录功能,日志记录与应用运行之间相互独立运行,不存在源代码交叉引用关系,测试数据来源于android系统本身,测试结果可靠度更高,从而可保证应用程序测试结果的准确性。
作为一可选实施例,参看图2所示,为利用命令行打开日志记录运行文件的代码实例,本实施例中,在所述执行所述命令行日志记录运行文件之前包括:利用命令行方式打开所日志记录运行文件对应用程序日志进行跟踪记录。
同样地,参看图3所示,为利用命令行结束日志记录运行文件记录日志的代码实例,本实施例中,在应用程序指定运行段进行性能测试时,当需要停止日志记录时,利用命令行方式关闭所日志记录运行文件对日志的跟踪记录。
步骤103、执行所述命令行日志记录运行文件,记录应用测试过程中主线程调用接口函数的信息,所述接口函数的信息包括:接口函数名称及调用所述接口函数耗费的时长。
本实施例中,可以理解的是,在对应用程序进行测试过程中,当变换业务测试时,会引起接口的调用,通过所述命令行日志记录运行文件的执行可以记录相应的接口调用的信息,当结束所述日志记录运行文件日志记录后,会生成一份XXX.trace文件,该文件即为日志文件,记录了应用程序相关业务测试时的信息。例如,可以知道调用的接口名称及耗费的时间。
本实施中,可以通过ADB命令将所述日志文件转存到本地文件夹之后,以对所述日志文件进行随时分析。
本发明实施例提供的程序目志记录获取方法,通过在应用程序安装包中增加命令行日志记录运行文件,无需安装第三方日志记录工具,需要对应用程序测试时,通过调用系统接口访问所述命令行日志记录运行文件,即可执行所述命令行日志记录运行文件记录测试中的相关信息,能够简单方便实现自动对程序日志的跟踪记录。
另外,参看图6所示,为现有的DDMS工具打开后的界面图;可以理解,在终端设备,例如手机等应用程序发生卡慢或崩溃之后,现有的跟踪工具,例如Android studio自带的DDMS(Dalvik Debug Monitor Service)调试工具实现对应用程序日志进行跟踪记录方法,一般都是通过点击打开该工具界面菜单栏中start Method Profiling按钮开始记录,然后启动对应用程序的测试操作,当要结束对测试操作日志记录时,点击Stop按钮后,DDMS会停止日志记录及分析所测的应用,通过打开Traceview工具界面展示各线程方法的信息。通过分析出比较耗时的方法和应用来定位卡慢的信息。自带的DDMS调试工具只适合开发环境使用,DDMS记录完之后生成一个以.trace为后缀名的文件,研发人员会通过查看所述文件来定位卡慢问题。这种定位卡慢信息的方式由于文件记录的日志太多,分析比较繁琐。而本实施例通过上述自动实现日志跟踪记录的方式,能够自动简单实现对卡慢信息的定位分析,不需要再让专门的开发人员人工去目录文件夹中查看以定位卡慢信息,比较适合于测试环境或线上环境使用。
可以理解的是,现有的代码插桩方法在日志文件跟踪记录上的应用,由于在应用程序源代码中插入日志跟踪代码,在应用程序运行测试过程中,日志跟踪与应用程序源代码之间会有源代码的交叉引用,这样日志跟踪功能会影响到应用程序的运行性能,在测试环境中,会影响到应用程序性能测试结果的准确性。
本实施例日志记录获取方法,通过在应用程序安装包中建立单独的日志记录运行文件,在应用程序执行编译文件中引入启动日志记录运行文件的代码,在需要对应用程序日志进行跟踪记录时,通过命令行方式打开所述日志记录运行文件,所述日志记录运行文件实现日志记录与应用程序之间是独立运行的,日志记录运行文件不会交叉引用应用程序源代码,因此,本实施例在进行日志跟踪记录时,不会影响应用程序的运行性能,从而可保证在测试环境中,对应用程序性能测试的准确性。
参看图1所示,本实施例中,可以理解的是,日志记录的目的是为了对应用程序中的卡慢信息进行定位分析,因此,在本发明的一实施例中,在所述记录应用测试过程中主线程调用接口函数的信息之后包括步骤104:对所述接口函数的信息进行过滤,获取接口函数之间的调用逻辑信息,所述调用逻辑信息包括函数接口之间的层级关系。
参看图4所示,为程序日志记录分析结果示意图,在本发明的一实施例中,所述对所述接口函数的信息进行过滤,获取接口函数之间的调用逻辑信息包括:对所述调用接口函数的名称及耗时信息进行深度遍历;获取接口函数之间的层级调用关系;根据预设耗时阈值过滤接口函数信息;对调用时间超过耗时阈值的接口函数进行自动分析。
可以理解的是,所述耗时阈值可以根据需要设置,例如设置为300ms,根据所述耗时阈值,将接口函数调用时间小于所述耗时阈值的接口函数过滤掉,对调用耗时在300ms以上的接口函数进行分析。所述层级调用关系,简单说就是,比如A函数调用了B函数,B函数中调用了C函数,那么A-B-C的3个函数之间是存在层级关系的,通过该层级调用关系,不仅可以获知各个调用接口函数之间的关系,还可以直观清楚地看到各个调用接口相互之间调用的耗时信息,例如,如果A函数调用耗时1000ms,则根据所述层级关系可知晓,在调用A函数时,A函数还调用了B函数,则A函数调用的耗时还包含了B函数的耗时,例如为300ms,同样地,还可以看到B中的300ms包含了C耗时的200ms,这就是层级调用关系所包含的信息。
本实施例中提供了一种具体的分析卡慢信息的方案,利用深度遍历算法对记录的调用接口函数的名称及耗时信息进行统计,并根据耗时阈值自动筛选出相关接口函数信息,能够使用户直观地清楚应用程序中的卡慢信息。
实施例二
本发明实施例提供一种程序日志记录获取装置,能够简单方便实现对应用程序日志跟踪记录,适用于测试环境或线上环镜中。
图5为本发明实施例程序日志记录获取装置结构示意框图,参看图3,本实施例的装置,可包括地址获取模块11、接口调用模块12和执行记录模块13。
其中,地址获取模块11,用于获取应用程序安装包在终端中的安装地址;所述应用程序安装包包括:命令行日志记录运行文件。
接口调用模块12,用于接收用户指令,根据所述用户指令调用系统接口访问所述命令行日志记录运行文件;所述用户指令包括所述安装地址;
执行记录模块13,用于执行所述命令行日志记录运行文件,记录应用测试过程中主线程调用接口函数的信息;所述接口函数的信息包括:接口函数名称及调用所述接口函数耗费的时长。
本发明实施例一种程序日志记录获取装置,包括地址获取模块11、接口调用模块12和执行记录模块13。通过在应用程序安装包中增加命令行日志记录运行文件,无需安装第三方日志记录工具,需要对应用程序测试时,通过调用系统接口访问所述命令行日志记录运行文件,即可执行所述命令行日志记录运行文件记录测试中的相关信息,能够简单方便实现自动对程序日志的跟踪记录,适合于测试环境或线上环境使用。
本实施例中,作为一可选实施例,所述装置还包括:日志记录运行文件创建模块,用于在应用程序执行入口文件同级目录下创建所述命令行日志记录运行文件;所述日志记录运行文件为JAVA文件;
引用代码编辑模块,用于在所述应用程序编译文件中加入引用所述日志记录运行文件的代码。
本发明实施例通过在应用程序执行入口文件同级目录下创建所述命令行日志记录运行文件,在应用程序编译文件中加入打开所述日志记录运行文件的引用代码,不需要在应用的源代码文件中加入任何代码,日志记录与应用运行之间相互独立,不存在源代码交叉引用关系,测试数据来源于android系统本身,测试结果可靠度更高。
本实施例中,作为一可选实施例,所述装置还包括:
日志记录运行文件打开模块,用于利用命令行方式打开所日志记录运行文件对应用程序日志进行跟踪记录。
本实施例中,作为一可选实施例,所述地址获取模块包括:地址获取单元,用于通过ADB命令获取应用程序安装包在手机上的安装地址。
根本实施例中,作为一可选实施例,所述装置还包括:
信息处理模块14,用于对所述接口函数的信息进行过滤,获取接口函数之间的调用逻辑信息,所述调用逻辑信息包括函数接口之间的层级关系。
本实施例中,作为一可选实施例,所述信息处理模块包括:
遍历单元,用于对所述调用接口函数的名称及耗时信息进行深度遍历;
调用关系获取单元,用于获取接口函数之间的层级调用关系;
信息过滤单元,用于根据预设耗时阈值过滤接口函数信息;
信息分析单元,对调用时间超过耗时阈值的接口函数进行自动分析,获取所述应用程序运行卡慢信息。
本实施例中提供了一种具体的分析卡慢信息的方案,利用深度遍历算法对记录的调用接口函数的名称及耗时信息进行统计,并根据耗时阈值自动筛选出相关接口函数信息,能够使用户直观地清楚应用程序中的卡慢信息。
本发明实施例提供了一种应用程序日志获取方法,主要针对Android系统环境下的应用程序测试而开发的,采用命令行方式自动获取应用程序日志,并采用遍历算法自动定位android卡慢信息,只需在编译文件中引入单独的启动命令行的文件,不需要在应用的源代码文件中加入任何代码,测试数据来源于android系统本身,测试可靠度更高,并且通过设置阈值可以自动分析出重要的卡慢信息,对开发和测试环境中的使用较为简单方便。
需要说明的是,对于前述的各方法或装置实施例,为了简单描述,将其都表述为一系列的动作组合,依据本发明,某些步骤可以采用其他顺序或者同时进行。说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明所必须的。另外,由于各实施例描述的侧重点有所不同,关联部分可以相互参见。
实施例三
本发明实施例还提供一种电子设备,所述电子设备包含前述任一实施例所述的装置。
图7为本发明电子设备一个实施例的结构示意图,可以实现本发明图1-3所示实施例的流程,如图7所示,上述电子设备可以包括:壳体41、处理器42、存储器43、电路板44和电源电路45,其中,电路板44安置在壳体41围成的空间内部,处理器42和存储器43设置在电路板44上;电源电路45,用于为上述电子设备的各个电路或器件供电;存储器43用于存储可执行程序代码;处理器42通过读取存储器43中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行如下操作:
获取应用程序安装包在终端中的安装地址,所述应用程序安装包包括:命令行日志记录运行文件;
接收用户指令,调用系统接口访问所述命令行日志记录运行文件;
执行所述命令行日志记录运行文件,记录应用测试过程中主线程调用接口函数的信息,所述接口函数的信息包括:接口函数名称及调用所述接口函数耗费的时长。
处理器42对上述步骤的具体执行过程以及处理器42通过运行可执行程序代码来进一步执行的步骤,可以参见本发明图1至图5所示实施例的描述,在此不再赘述。
该电子设备以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
(5)其他具有数据交互功能的电子设备。
本发明实施例还提供了一种存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现实施例一所述的程序日志获取方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。
尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种程序日志记录获取方法,其特征在于,包括:
获取应用程序安装包在终端中的安装地址;所述应用程序安装包包括:命令行日志记录运行文件;
接收用户指令,根据所述用户指令调用系统接口访问所述命令行日志记录运行文件;所述用户指令包括所述安装地址;
执行所述命令行日志记录运行文件,记录应用测试过程中主线程调用接口函数的信息,所述接口函数的信息包括:接口函数名称及调用所述接口函数耗费的时长。
2.根据权利要求1所述的程序日志记录获取方法,其特征在于,所述获取应用程序安装包在终端中的安装地址之前包括:
在应用程序执行入口文件同级目录下创建所述命令行日志记录运行文件;所述日志记录运行文件为JAVA文件;
在所述应用程序编译文件中加入引用所述日志记录运行文件的代码。
3.根据权利要求1所述的程序日志记录获取方法,其特征在于,在所述执行所述命令行日志记录运行文件之前包括:
利用命令行方式打开所述日志记录运行文件对应用程序日志进行跟踪记录。
4.根据权利要求1所述的程序日志记录获取方法,其特征在于,所述获取应用程序安装包在终端中的安装地址包括:通过ADB命令获取应用程序安装包在手机上的安装地址。
5.根据权利要求1所述的程序日志记录获取方法,其特征在于,在所述记录应用测试过程中主线程调用接口函数的信息之后包括:对所述接口函数的信息进行过滤,获取接口函数之间的调用逻辑信息,所述调用逻辑信息包括函数接口之间的层级关系。
6.根据权利要求5所述的程序日志记录获取方法,其特征在于,所述对所述接口函数的信息进行过滤,获取接口函数之间的调用逻辑信息包括:
对所述调用接口函数的名称及耗时信息进行深度遍历;
获取接口函数之间的层级调用关系;
根据预设耗时阈值过滤接口函数信息;
对调用时间超过耗时阈值的接口函数进行自动分析。
7.一种程序日志记录获取装置,其特征在于,包括:
地址获取模块,用于获取应用程序安装包在终端中的安装地址;所述应用程序安装包包括:命令行日志记录运行文件;
接口调用模块,用于接收用户指令,根据所述用户指令调用系统接口访问所述命令行日志记录运行文件;所述用户指令包括所述安装地址;
执行记录模块,用于执行所述命令行日志记录运行文件,记录应用测试过程中主线程调用接口函数的信息;所述接口函数的信息包括:接口函数名称及调用所述接口函数耗费的时长。
8.根据权利要求7所述的程序日志记录获取模块,其特征在于,所述装置还包括:
日志记录运行文件创建模块,用于在应用程序执行入口文件同级目录下创建所述命令行日志记录运行文件;所述日志记录运行文件为JAVA文件;
引用代码编辑模块,用于在所述应用程序编译文件中加入引用所述日志记录运行文件的代码。
9.根据权利要求7所述的程序日志记录获取模块,其特征在于,所述装置还包括:
日志记录运行文件打开模块,用于利用命令行方式打开所日志记录运行文件对应用程序日志进行跟踪记录。
10.根据权利要求1所述的程序日志记录获取模块,其特征在于,所述地址获取模块包括:地址获取单元,用于通过ADB命令获取应用程序安装包在手机上的安装地址。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810714193.5A CN109032929A (zh) | 2018-06-29 | 2018-06-29 | 一种程序日志记录获取方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810714193.5A CN109032929A (zh) | 2018-06-29 | 2018-06-29 | 一种程序日志记录获取方法、装置及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109032929A true CN109032929A (zh) | 2018-12-18 |
Family
ID=65521380
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810714193.5A Pending CN109032929A (zh) | 2018-06-29 | 2018-06-29 | 一种程序日志记录获取方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109032929A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111625830A (zh) * | 2019-02-27 | 2020-09-04 | 阿里巴巴集团控股有限公司 | 数据处理方法、数据展示方法、系统及设备 |
CN111752912A (zh) * | 2019-03-26 | 2020-10-09 | 上海寒武纪信息科技有限公司 | 数据处理方法及装置 |
CN111767249A (zh) * | 2019-04-02 | 2020-10-13 | 上海寒武纪信息科技有限公司 | 数据处理方法、装置及相关产品 |
CN117435385A (zh) * | 2023-12-20 | 2024-01-23 | 苏州元脑智能科技有限公司 | 一种日志记录方法、装置及电子设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6539501B1 (en) * | 1999-12-16 | 2003-03-25 | International Business Machines Corporation | Method, system, and program for logging statements to monitor execution of a program |
CN102508778A (zh) * | 2011-11-16 | 2012-06-20 | 山东浪潮齐鲁软件产业股份有限公司 | 一种检测未判断日志输出级别而直接输出日志的方法 |
CN103488558A (zh) * | 2013-09-17 | 2014-01-01 | 北京思特奇信息技术股份有限公司 | 一种基于log4j日志框架自动采集应用异常的装置及方法 |
CN103577313A (zh) * | 2012-07-27 | 2014-02-12 | 腾讯科技(深圳)有限公司 | 一种移动终端应用程序测试方法及装置 |
-
2018
- 2018-06-29 CN CN201810714193.5A patent/CN109032929A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6539501B1 (en) * | 1999-12-16 | 2003-03-25 | International Business Machines Corporation | Method, system, and program for logging statements to monitor execution of a program |
CN102508778A (zh) * | 2011-11-16 | 2012-06-20 | 山东浪潮齐鲁软件产业股份有限公司 | 一种检测未判断日志输出级别而直接输出日志的方法 |
CN103577313A (zh) * | 2012-07-27 | 2014-02-12 | 腾讯科技(深圳)有限公司 | 一种移动终端应用程序测试方法及装置 |
CN103488558A (zh) * | 2013-09-17 | 2014-01-01 | 北京思特奇信息技术股份有限公司 | 一种基于log4j日志框架自动采集应用异常的装置及方法 |
Non-Patent Citations (3)
Title |
---|
ADISON: ""Android调试之TraceView"", 《HTTPS://WWW.CNBLOGS.COM/ADISON/P/4270973.HTML》 * |
丿沅有芷兮澧有兰: ""java最简单实现Log打印和生成日志文件"", 《CSDN博客HTTPS://BLOG.CSDN.NET/QQ_32691899/ARTICLE/DETAILS/80263954》 * |
网友: ""程序打成jar包后,如何使用log4j.properties文件?"", 《HTTPS://BBS.CSDN.NET/TOPICS/310267030?PAGE=2》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111625830A (zh) * | 2019-02-27 | 2020-09-04 | 阿里巴巴集团控股有限公司 | 数据处理方法、数据展示方法、系统及设备 |
CN111625830B (zh) * | 2019-02-27 | 2023-04-14 | 阿里巴巴集团控股有限公司 | 数据处理方法、数据展示方法、系统及设备 |
CN111752912A (zh) * | 2019-03-26 | 2020-10-09 | 上海寒武纪信息科技有限公司 | 数据处理方法及装置 |
CN111752912B (zh) * | 2019-03-26 | 2022-11-01 | 上海寒武纪信息科技有限公司 | 数据处理方法及装置 |
CN111767249A (zh) * | 2019-04-02 | 2020-10-13 | 上海寒武纪信息科技有限公司 | 数据处理方法、装置及相关产品 |
CN111767249B (zh) * | 2019-04-02 | 2022-11-04 | 上海寒武纪信息科技有限公司 | 确定函数自身运行时间的方法及装置 |
CN117435385A (zh) * | 2023-12-20 | 2024-01-23 | 苏州元脑智能科技有限公司 | 一种日志记录方法、装置及电子设备和存储介质 |
CN117435385B (zh) * | 2023-12-20 | 2024-02-23 | 苏州元脑智能科技有限公司 | 一种日志记录方法、装置及电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
An | Performance assessment | |
US8694967B2 (en) | User interface inventory | |
CN109032929A (zh) | 一种程序日志记录获取方法、装置及电子设备 | |
US11042471B2 (en) | System and method for providing a test manager for use with a mainframe rehosting platform | |
CN106844217A (zh) | 对应用的控件进行埋点的方法及装置、可读存储介质 | |
Gómez et al. | Reproducing context-sensitive crashes of mobile apps using crowdsourced monitoring | |
CN1329836C (zh) | 定位程序异常的方法 | |
Luo et al. | A survey of context simulation for testing mobile context-aware applications | |
CN103268287B (zh) | 检测内存泄露的方法与装置 | |
CN107832207A (zh) | 接口性能测试方法、装置、存储介质和计算机设备 | |
CN102880546A (zh) | 一种基于xml数据库的软件集成测试方法及系统 | |
CN103425574A (zh) | 一种测试应用程序的方法及装置 | |
CN109344616A (zh) | 一种移动应用程序动态加载行为监控方法及装置 | |
CN103778056B (zh) | 无线应用稳定性测试方法及系统 | |
CN107807883B (zh) | 一种用户态网络文件系统的单元测试方法及装置 | |
CN110321275A (zh) | 程序监控方法、装置、计算设备以及存储介质 | |
CN103248511B (zh) | 一种单点业务性能的分析方法、装置和系统 | |
CN115576600A (zh) | 基于代码变更的差异处理方法、装置、终端及存储介质 | |
CN103176903B (zh) | MapReduce分布式系统程序的测试方法及设备 | |
CN108845956A (zh) | 应用程序测试的方法和装置 | |
CN112632547A (zh) | 一种数据处理方法和相关装置 | |
US8489444B2 (en) | Chronicling for process discovery in model driven business transformation | |
Ivan et al. | Self-healing for mobile applications | |
US20150261646A1 (en) | Selective profiling of applications | |
US20090164978A1 (en) | Method and system for providing post-mortem service level debugging |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20181218 |
|
RJ01 | Rejection of invention patent application after publication |