一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

自动化内存测试方法、装置、设备及存储介质与流程

2022-11-16 08:09:15 来源:中国专利 TAG:


1.本发明涉及计算机技术领域,尤其涉及一种自动化内存测试方法、装置、设备及存储介质。


背景技术:

2.目前,计算机经常会出现内存不足导致崩溃的情况,因此,测试人员需要对内存故障进行排查。但是,在计算机上对运行程序进行内存测试时,需要手动启动检测工具,通过检测工具来进行内存测试,整个过程都需要人工干预才能完成,内存测试效率较低。
3.上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。


技术实现要素:

4.本发明的主要目的在于提出一种自动化内存测试方法、装置、设备及存储介质,旨在解决现有技术中内存测试过程需要人工干预,测试效率较低的技术问题。
5.为实现上述目的,本发明提供一种自动化内存测试方法,所述自动化内存测试方法包括以下步骤:
6.在检测到待测试程序启动时,获取所述待测试程序的程序信息;
7.根据所述程序信息获取与所述待测试程序的内存对应的内存堆栈信息,并根据所述内存堆栈信息建立堆栈数据库;
8.从所述堆栈数据库中获取与所述待测试程序的当前主进程对应的多个目标内存堆栈信息;
9.根据获取的目标内存堆栈信息进行自动化内存测试。
10.可选地,所述根据获取的目标内存堆栈信息进行自动化内存测试,包括:
11.根据获取的目标内存堆栈信息确定第一待比较内存堆栈信息和第二待比较内存堆栈信息,所述第一待比较内存堆栈信息和所述第二待比较内存堆栈信息为不同时间节点的内存堆栈信息;
12.将所述第一待比较内存堆栈信息和所述第二待比较内存堆栈信息进行对比,以进行自动化内存测试。
13.可选地,所述将所述第一待比较内存堆栈信息和所述第二待比较内存堆栈信息进行对比,以进行自动化内存测试,包括:
14.根据所述第一待比较内存堆栈信息生成第一时间节点分析文件,并根据所述第二待比较内存堆栈信息生成第二时间节点分析文件;
15.将所述第一时间节点分析文件和所述第二时间节点分析文件进行对比,以获得目标分析文件;
16.根据所述目标分析文件生成测试结果文件,并根据所述测试结果文件确定自动化内存测试结果。
17.可选地,所述根据所述目标分析文件生成测试结果文件,包括:
18.根据预设映射列表查找与所述待测试程序对应的目标pdb文件,所述预设映射列表中记录有程序与pdb文件之间的对应关系;
19.根据所述目标分析文件和所述目标pdb文件生成测试结果文件。
20.可选地,所述根据所述目标分析文件生成测试结果文件,并根据所述测试结果文件确定自动化内存测试结果之后,还包括:
21.将所述测试结果文件和所述自动化内存测试结果发送至预设测试平台服务器,以使所述预设测试平台服务器对所述测试结果文件和所述自动化内存测试结果进行存储。
22.可选地,所述根据所述目标分析文件生成测试结果文件,并根据所述测试结果文件确定自动化内存测试结果之后,还包括:
23.查找预设人员对应的邮箱,并查找所述邮箱对应的邮箱地址;
24.根据所述测试结果文件和所述自动化内存测试结果生成提示邮件;
25.根据所述邮箱地址将所述提示邮件发送至所述预设人员对应的邮箱,以对所述预设人员进行测试结果提示。
26.可选地,所述根据所述程序信息获取与所述待测试程序的内存对应的内存堆栈信息,并根据所述内存堆栈信息建立堆栈数据库,包括:
27.从所述程序信息中提取所述待测试程序的程序名称;
28.根据所述程序名称和预设命令行解析工具获取与所述待测试程序的内存对应的内存堆栈信息;
29.根据所述内存堆栈信息建立堆栈数据库。
30.可选地,所述在检测到待测试程序启动时,获取所述待测试程序的程序信息之前,还包括:
31.在接收到环境变量配置指令时,根据所述环境变量配置指令确定环境变量配置信息;
32.根据所述环境变量配置信息对终端设备进行环境变量配置,以得到目标运行环境,所述目标运行环境为能使预设命令行解析工具和预设内存泄露分析工具正常运行的运行环境。
33.可选地,所述从所述堆栈数据库中获取与所述待测试程序的当前主进程对应的多个目标内存堆栈信息,包括:
34.检测所述待测试程序对应的当前主进程,并获取所述当前主进程对应的进程标识;
35.根据所述进程标识从所述堆栈数据库中获取与所述当前主进程对应的多个目标内存堆栈信息。
36.可选地,所述根据所述进程标识从所述堆栈数据库中获取与所述当前主进程对应的多个目标内存堆栈信息,包括:
37.根据所述进程标识和预设内存泄露分析工具进行多次信息截取操作,以从所述堆栈数据库中获取与所述当前主进程对应的多个目标内存堆栈信息。
38.可选地,所述检测所述待测试程序对应的当前主进程,包括:
39.检测所述待测试程序的程序类型,并根据所述程序类型判断所述待测试程序是否
为单进程程序;
40.在所述待测试程序为单进程程序时,将所述待测试程序对应的进程作为当前主进程。
41.可选地,所述检测所述待测试程序的程序类型,并根据所述程序类型判断所述待测试程序是否为单进程程序之后,还包括:
42.在所述待测试程序不为单进程程序时,检测所述待测试程序当前运行的多个进程;
43.从待测试程序当前运行的多个进程中选取当前主进程。
44.可选地,所述从待测试程序当前运行的多个进程中选取当前主进程,包括:
45.检测待测试程序当前运行的多个进程的进程开始时间;
46.根据所述进程开始时间从多个进程中选取第一个运行的进程;
47.将所述第一个运行的进程作为所述待测试程序对应的当前主进程。
48.此外,为实现上述目的,本发明还提出一种自动化内存测试装置,所述自动化内存测试装置包括:
49.程序信息模块,用于在检测到待测试程序启动时,获取所述待测试程序的程序信息;
50.堆栈信息模块,用于根据所述程序信息获取与所述待测试程序的内存对应的内存堆栈信息,并根据所述内存堆栈信息建立堆栈数据库;
51.进程信息模块,用于从所述堆栈数据库中获取与所述待测试程序的当前主进程对应的多个目标内存堆栈信息;
52.内存测试模块,用于根据获取的目标内存堆栈信息进行自动化内存测试。
53.可选地,所述内存测试模块,还用于根据获取的目标内存堆栈信息确定第一待比较内存堆栈信息和第二待比较内存堆栈信息,所述第一待比较内存堆栈信息和所述第二待比较内存堆栈信息为不同时间节点的内存堆栈信息;将所述第一待比较内存堆栈信息和所述第二待比较内存堆栈信息进行对比,以进行自动化内存测试。
54.可选地,所述内存测试模块,还用于根据所述第一待比较内存堆栈信息生成第一时间节点分析文件,并根据所述第二待比较内存堆栈信息生成第二时间节点分析文件;将所述第一时间节点分析文件和所述第二时间节点分析文件进行对比,以获得目标分析文件;根据所述目标分析文件生成测试结果文件,并根据所述测试结果文件确定自动化内存测试结果。
55.可选地,所述内存测试模块,还用于根据预设映射列表查找与所述待测试程序对应的目标pdb文件,所述预设映射列表中记录有程序与pdb文件之间的对应关系;根据所述目标分析文件和所述目标pdb文件生成测试结果文件。
56.可选地,所述内存测试模块,还用于将所述测试结果文件和所述自动化内存测试结果发送至预设测试平台服务器,以使所述预设测试平台服务器对所述测试结果文件和所述自动化内存测试结果进行存储。
57.此外,为实现上述目的,本发明还提出一种自动化内存测试设备,所述自动化内存测试设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的自动化内存测试程序,所述自动化内存测试程序被处理器执行时实现如上所述的自动化内存测试
方法的步骤。
58.此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有自动化内存测试程序,所述自动化内存测试程序被处理器执行时实现如上所述的自动化内存测试方法的步骤。
59.本发明提出的自动化内存测试方法,通过在检测到待测试程序启动时,获取所述待测试程序的程序信息;根据所述程序信息获取与所述待测试程序的内存对应的内存堆栈信息,并根据所述内存堆栈信息建立堆栈数据库;从所述堆栈数据库中获取与所述待测试程序的当前主进程对应的多个目标内存堆栈信息;根据获取的目标内存堆栈信息进行自动化内存测试。在本发明中,在检测到待测试程序启动时,自动执行后续的测试步骤,根据待测试程序的程序信息获取对应的内存堆栈信息并建立堆栈数据库,从中获取与当前主进程对应的多个目标内存堆栈信息来进行自动化内存测试,整个测试过程并不需要人工干预,提高了内存测试的效率。
附图说明
60.图1是本发明实施例方案涉及的硬件运行环境的自动化内存测试设备结构示意图;
61.图2为本发明自动化内存测试方法第一实施例的流程示意图;
62.图3为本发明自动化内存测试方法第二实施例的流程示意图;
63.图4为本发明自动化内存测试方法第三实施例的流程示意图;
64.图5为本发明自动化内存测试装置第一实施例的功能模块示意图。
65.本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
66.应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
67.参照图1,图1为本发明实施例方案涉及的硬件运行环境的自动化内存测试设备结构示意图。
68.如图1所示,该自动化内存测试设备可以包括:处理器1001,例如中央处理器(central processing unit,cpu),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如按键,可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1005可以是高速随机存取存储器(random access memory,ram)存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
69.本领域技术人员可以理解,图1中示出的设备结构并不构成对自动化内存测试设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
70.如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及自动化内存测试程序。
71.在图1所示的自动化内存测试设备中,网络接口1004主要用于连接外网,与其他网
chrome.exe ust。
85.应当理解的是,在通过gflags.exe进行上述操作获取待测试程序的内存对应的内存堆栈信息后,还可通过gflags.exe根据内存堆栈信息建立堆栈数据库。
86.步骤s30,从所述堆栈数据库中获取与所述待测试程序的当前主进程对应的多个目标内存堆栈信息。
87.应当理解的是,由于堆栈数据库中存储的都是与待测试程序的内存相关的内存堆栈信息,因此,可从堆栈数据库中获取与待测试程序的当前主进程对应的多个目标内存堆栈信息。其中,多个目标内存堆栈信息中包括当前主进程在不同时间节点的内存堆栈信息。
88.可以理解的是,由于有些程序是单进程程序,而有些程序是多进程程序,因此,还可对待测试程序的程序类型进行检测,在待测试程序为单进程程序时,直接将待测试程序对应的进程作为当前主进程;在待测试程序为多进程程序时,从待测试程序对应的进程中选取一个进程作为当前主进程。
89.步骤s40,根据获取的目标内存堆栈信息进行自动化内存测试。
90.应当理解的是,在得到待测试程序的当前主进程对应的多个目标内存堆栈信息后,可将这些目标内存堆栈进行进行对比,根据对比结果生成测试结果文件,从而达到对待测试程序进行自动化内存测试的效果。
91.可以理解的是,由于多个目标内存堆栈信息中包括当前主进程在不同时间节点的内存堆栈信息,因此,可将这些不同时间节点的内存堆栈信息进行对比,在本实施例中,优选为将两个不同时间节点的内存堆栈信息进行对比。除了这种方式外,为了增加测试的准确性,还可将三个或四个等不同时间节点的内存堆栈信息进行比对,本实施例对此不作限制。
92.需要说明的是,可通过预设内存泄露分析工具从堆栈数据库中获取与当前主进程对应的多个目标内存堆栈信息,还可通过预设内存泄露分析工具对多个目标内存堆栈信息进行对比,以生成测试结果文件。其中,预设内存泄露分析工具可为umdh.exe,umdh.exe主要功能有两个,一个是截取当前主进程的内存堆栈信息,另一个是对比当前主进程的内存堆栈信息,预设内存泄露分析工具还可为其他可实现相同或相似功能的工具软件,本实施例对此不作限制。
93.进一步地,由于预设命令行解析工具和预设内存泄露分析工具需要在特定的运行环境下才能正常运行,因此,为了更好的通过这些工具软件进行自动化内存检测,避免出现报错的情况,在进行自动化内存测试之前还可自动进行环境变量的配置,为预设命令行解析工具和预设内存泄露分析工具提供合适的运行环境,提高自动化内存测试的成功率,因此,所述步骤s10之前,还包括:
94.在接收到环境变量配置指令时,根据所述环境变量配置指令确定环境变量配置信息;根据所述环境变量配置信息对终端设备进行环境变量配置,以得到目标运行环境,所述目标运行环境为能使预设命令行解析工具和预设内存泄露分析工具正常运行的运行环境。
95.应当理解的是,由于如果需要使用预设命令行解析工具和预设内存泄露分析工具的话,需要先安装这两个工具软件并配置环境参数,在本方案中可自动进行该步骤。在一种实施方式中,可先安装这两个工具软件,然后在安装完成后检测到输入的环境变量配置指令时,根据环境变量配置指令确定环境变量配置信息,根据环境变量配置信息对终端设备
进行环境变量配置,以得到目标运行环境。在另一种实施方式中,可设置为在检测到这两个工具软件完成后,自动触发环境变量配置指令,根据环境变量配置指令确定环境变量配置信息,根据环境变量配置信息对终端设备进行环境变量配置,以得到目标运行环境。还可为其他实施方式,本实施例对此不作限制。
96.可以理解的是,本实施例中可通过设置环境变量_nt_symbol_path的值的方式来进行环境变量的配置,配置环境变量的目的是为了得到能使预设命令行解析工具和预设内存泄露分析工具正常运行的运行环境。并且,除上述目的外,配置环境变量还可用于指定程序数据库文件(program database file,pdb)文件的路径。
97.在本实施例中,通过在检测到待测试程序启动时,获取所述待测试程序的程序信息;根据所述程序信息获取与所述待测试程序的内存对应的内存堆栈信息,并根据所述内存堆栈信息建立堆栈数据库;从所述堆栈数据库中获取与所述待测试程序的当前主进程对应的多个目标内存堆栈信息;根据获取的目标内存堆栈信息进行自动化内存测试。在本实施例中,在检测到待测试程序启动时,自动执行后续的测试步骤,根据待测试程序的程序信息获取对应的内存堆栈信息并建立堆栈数据库,从中获取与当前主进程对应的多个目标内存堆栈信息来进行自动化内存测试,整个测试过程并不需要人工干预,提高了内存测试的效率。
98.在一实施例中,如图3所示,基于第一实施例提出本发明自动化内存测试方法第二实施例,所述步骤s40,包括:
99.步骤s401,根据获取的目标内存堆栈信息确定第一待比较内存堆栈信息和第二待比较内存堆栈信息,所述第一待比较内存堆栈信息和所述第二待比较内存堆栈信息为不同时间节点的内存堆栈信息。
100.需要说明的是,在本实施例中,以将两个不同时间节点的内存堆栈信息进行对比的实施方式为例进行说明。可从获取的目标内存堆栈信息中提取不同时间节点的第一待比较内存堆栈信息和第二待比较内存堆栈信息。
101.步骤s402,将所述第一待比较内存堆栈信息和所述第二待比较内存堆栈信息进行对比,以进行自动化内存测试。
102.应当理解的是,在得到第一待比较内存堆栈信息和第二待比较内存堆栈信息后,可将第一待比较内存堆栈信息和第二待比较内存堆栈信息进行对比,以得到测试结果文件,并且确定自动化内存测试结果。
103.进一步地,为了更加方便地将两个不同时间节点的内存堆栈信息进行对比,提高对比效率以及对比的准确性,所述步骤s402,包括:
104.根据所述第一待比较内存堆栈信息生成第一时间节点分析文件,并根据所述第二待比较内存堆栈信息生成第二时间节点分析文件;将所述第一时间节点分析文件和所述第二时间节点分析文件进行对比,以获得目标分析文件;根据所述目标分析文件生成测试结果文件,并根据所述测试结果文件确定自动化内存测试结果。
105.应当理解的是,在本实施例的方案中不需要手动配置环境参数以及配置pdb文件的路径,也不需要手动使用工具软件来进行内存测试,只需要根据本实施例中的技术方案生成一个执行脚本,根据这些执行脚本自动执行方案中的步骤,以进行自动化内存测试。
106.可以理解的是,可分别根据第一待比较内存堆栈信息和第二待比较内存堆栈信息
生成第一时间节点分析文件和第二时间节点分析文件。然后,将生成的第一时间节点分析文件和第二时间节点分析文件进行对比,得到目标分析文件,进而根据目标分析文件生成测试结果文件。
107.应当理解的是,在得到测试结果文件后,可对测试结果文件进行分析处理,以得到自动化内存测试结果。其中,自动化内存测试结果可包括内存正常以及内存异常等结果,或者内存泄露以及内存未泄露等可以反映内存当前状态的结果,本实施例对此不作限制。
108.进一步地,由于通过上述工具软件进行测试的过程中,使用到的都是代码语言,并且最后得到的目标分析文件也是基于代码语言的,为了更加方便用户查看,可将目标分析文件转换为用户可直观查看的测试结果文件,因此为了方便用户查看测试结果,所述根据所述目标分析文件生成测试结果文件,包括:
109.根据预设映射列表查找与所述待测试程序对应的目标pdb文件,所述预设映射列表中记录有程序与pdb文件之间的对应关系;根据所述目标分析文件和所述目标pdb文件生成测试结果文件。
110.应当理解的是,由于每个程序都有其对应的pdb文件,因此,可预先根据程序与pdb文件之间的对应关系建立预设映射列表。在进行自动化内存测试的过程中,得到目标分析文件后,可根据预设映射列表查找待测试程序对应的目标pdb文件。
111.应当理解的是,每个pdb文件都有其对应的路径信息,因此,在确定目标pdb文件后,还可查找目标pdb文件对应的目标路径信息,根据目标路径信息获取目标pdb文件,并且根据目标分析文件和目标pdb文件生成测试结果文件。其中,测试结果文件为用户可直观查看的文件。
112.进一步地,为了方便后续的排查以及统计,可将每次内存测试的结果在云平台进行存储,所述根据所述目标分析文件生成测试结果文件,并根据所述测试结果文件确定自动化内存测试结果之后,还包括:
113.将所述测试结果文件和所述自动化内存测试结果发送至预设测试平台服务器,以使所述预设测试平台服务器对所述测试结果文件和所述自动化内存测试结果进行存储。
114.应当理解的是,在得到测试结果文件和自动化内存测试结果后,可将测试结果文件和自动化内存测试结果发送至预设测试平台服务器,通过预设测试平台服务器进行文件信息的存储。其中,预设测试平台服务器为用于进行测试结果存储的服务器,具体可为专门用于存储内存测试结果的服务器,也可为具有内存测试结果存储功能、并且还具有其他功能的服务器,本实施例对此不作限制。
115.在本实施例中,通过将各次内存测试的结果和文件在预设测试平台服务器进行集中存储管理的方式,提高了数据的安全性,也便于后续对各次内存测试的情况进行其他操作。
116.进一步地,为了更加方便及时地将内存测试结果发送给相关人员,所述根据所述目标分析文件生成测试结果文件,并根据所述测试结果文件确定自动化内存测试结果之后,还包括:
117.查找预设人员对应的邮箱,并查找所述邮箱对应的邮箱地址;根据所述测试结果文件和所述自动化内存测试结果生成提示邮件;根据所述邮箱地址将所述提示邮件发送至所述预设人员对应的邮箱,以对所述预设人员进行测试结果提示。
118.需要说明的是,预设人员可为与内存测试相关的技术人员,可提前在计算机设备上设置这些预设人员的人员信息。
119.应当理解的是,在得到测试结果文件和自动化内存测试结果后,可查找预设人员对应的邮箱以及邮箱地址,并且根据测试结果文件和自动化内存测试结果生成提示邮件。其中,可提前设置邮件模板,该步骤具体可为:根据测试结果文件、自动化内存测试结果以及邮件模板生成提示邮件。
120.可以理解的是,可根据邮箱地址将生成的提示邮件发送至预设人员对应的邮箱,以对预设人员进行测试结果提示,达到使相关人员能够及时了解到内存测试情况的效果。
121.在本实施例中,根据获取的目标内存堆栈信息确定第一待比较内存堆栈信息和第二待比较内存堆栈信息,所述第一待比较内存堆栈信息和所述第二待比较内存堆栈信息为不同时间节点的内存堆栈信息;将所述第一待比较内存堆栈信息和所述第二待比较内存堆栈信息进行对比,以进行自动化内存测试,从而能够在不需要人工干预的情况下,自动进行检测得到自动化内存测试结果,提高了内存测试的效率和准确性。
122.在一实施例中,如图4所示,基于第一实施例或第二实施例提出本发明自动化内存测试方法第三实施例,在本实施例中,基于第一实施例进行说明,所述步骤s30,包括:
123.步骤s301,检测所述待测试程序对应的当前主进程,并获取所述当前主进程对应的进程标识。
124.应当理解的是,本实施例中的进程标识可为进程的id号,由于每个进程都有唯一对应的id号,因此,为了获取当前主进程对应的内存堆栈信息,可检测待测试程序对应的当前主进程,并且获取当前主进程对应的id号。
125.步骤s302,根据所述进程标识从所述堆栈数据库中获取与所述当前主进程对应的多个目标内存堆栈信息。
126.应当理解的是,可根据所述进程标识和预设内存泄露分析工具进行多次信息截取操作,以从所述堆栈数据库中获取与所述当前主进程对应的多个目标内存堆栈信息。
127.在具体实现中,例如,可根据进程标识和umdh.exe进行两次信息截取操作,以从堆栈数据库中获取与当前主进程对应的两个目标内存堆栈信息。具体可通过如下代码实现:umdh-p:12880-f:d:\se1.log、umdh-p:12880-f:d:\se2.log。其中,上述代码中的12880代指当前主进程的id号。
128.在具体实现中,可通过如下代码对这两个目标内存堆栈信息进行对比:umdh-d d:\se1.log d:\se2.log》d:\se_com1.txt,其中,se_com1.txt便是最终输出的测试结果文件。
129.进一步地,所述检测所述待测试程序对应的当前主进程,包括:
130.检测所述待测试程序的程序类型,并根据所述程序类型判断所述待测试程序是否为单进程程序;在所述待测试程序为单进程程序时,将所述待测试程序对应的进程作为当前主进程。
131.应当理解的是,由于程序可分为单进程程序和多进程程序,为了更加方便准确地确定待测试程序对应的当前主进程,可检测待测试程序的程序类型,并且先根据程序类型判断待测试程序是否为单进程程序。
132.可以理解的是,在待测试程序为单进程程序时,说明待测试程序运行时只有一个
对应的进程,因此,不需要进行选取操作,直接将待测试程序对应的进程作为当前主进程。
133.进一步地,所述检测所述待测试程序的程序类型,并根据所述程序类型判断所述待测试程序是否为单进程程序之后,还包括:
134.在所述待测试程序不为单进程程序时,检测所述待测试程序当前运行的多个进程;从待测试程序当前运行的多个进程中选取当前主进程。
135.应当理解的是,在待测试程序不为单进程程序时,说明待测试程序为多进程程序,此时需要从待测试程序对应的进程中选取当前主进程。因此,可检测待测试程序当前运行的多个进程,并且从待测试程序当前运行的多个进程中选取当前主进程。
136.可以理解的是,可检测待测试程序当前运行的多个进程的进程开始时间,根据进程开始时间从多个进程中选取第一个运行的进程,并将第一个运行的进程作为待测试程序对应的当前主进程。
137.在具体实现中,以浏览器程序为例进行说明,浏览器程序属于多进程程序,可将浏览器程序启动后运行的第一个进程作为当前主进程,并针对浏览器程序的当前主进程进行自动化内存测试。
138.在本实施例中,检测所述待测试程序对应的当前主进程,并获取所述当前主进程对应的进程标识,根据所述进程标识从所述堆栈数据库中获取与所述当前主进程对应的多个目标内存堆栈信息,从而通过检测待测试程序的当前主进程的进程标识的方式,来获取当前主进程对应的多个目标内存堆栈信息用于后续的内存测试,使内存测试的结果更加准确,提高了自动化内存测试的准确性。
139.此外,本发明实施例还提出一种存储介质,所述存储介质上存储有自动化内存测试程序,所述自动化内存测试程序被处理器执行时实现如上文所述的自动化内存测试方法的步骤。
140.由于本存储介质采用了上述所有实施例的全部技术方案,因此至少具有上述实施例的技术方案所带来的所有有益效果,在此不再一一赘述。
141.此外,参照图5,本发明实施例还提出一种自动化内存测试装置,所述自动化内存测试装置包括:
142.程序信息模块10,用于在检测到待测试程序启动时,获取所述待测试程序的程序信息。
143.堆栈信息模块20,用于根据所述程序信息获取与所述待测试程序的内存对应的内存堆栈信息,并根据所述内存堆栈信息建立堆栈数据库。
144.进程信息模块30,用于从所述堆栈数据库中获取与所述待测试程序的当前主进程对应的多个目标内存堆栈信息。
145.内存测试模块40,用于根据获取的目标内存堆栈信息进行自动化内存测试。
146.本实施例中通过在检测到待测试程序启动时,获取所述待测试程序的程序信息;根据所述程序信息获取与所述待测试程序的内存对应的内存堆栈信息,并根据所述内存堆栈信息建立堆栈数据库;从所述堆栈数据库中获取与所述待测试程序的当前主进程对应的多个目标内存堆栈信息;根据获取的目标内存堆栈信息进行自动化内存测试。在本实施例中,在检测到待测试程序启动时,自动执行后续的测试步骤,根据待测试程序的程序信息获取对应的内存堆栈信息并建立堆栈数据库,从中获取与当前主进程对应的多个目标内存堆
栈信息来进行自动化内存测试,整个测试过程并不需要人工干预,提高了内存测试的效率。
147.在一实施例中,所述内存测试模块40,还用于查找预设人员对应的邮箱,并查找所述邮箱对应的邮箱地址;根据所述测试结果文件和所述自动化内存测试结果生成提示邮件;根据所述邮箱地址将所述提示邮件发送至所述预设人员对应的邮箱,以对所述预设人员进行测试结果提示。
148.在一实施例中,所述堆栈信息模块20,还用于从所述程序信息中提取所述待测试程序的程序名称;根据所述程序名称和预设命令行解析工具获取与所述待测试程序的内存对应的内存堆栈信息;根据所述内存堆栈信息建立堆栈数据库。
149.在一实施例中,所述自动化内存测试装置还包括环境变量配置模块,用于在接收到环境变量配置指令时,根据所述环境变量配置指令确定环境变量配置信息;根据所述环境变量配置信息对终端设备进行环境变量配置,以得到目标运行环境,所述目标运行环境为能使预设命令行解析工具和预设内存泄露分析工具正常运行的运行环境。
150.在一实施例中,所述进程信息模块30,还用于检测所述待测试程序对应的当前主进程,并获取所述当前主进程对应的进程标识;根据所述进程标识从所述堆栈数据库中获取与所述当前主进程对应的多个目标内存堆栈信息。
151.在一实施例中,所述进程信息模块30,还用于根据所述进程标识和预设内存泄露分析工具进行多次信息截取操作,以从所述堆栈数据库中获取与所述当前主进程对应的多个目标内存堆栈信息。
152.在一实施例中,所述进程信息模块30,还用于检测所述待测试程序的程序类型,并根据所述程序类型判断所述待测试程序是否为单进程程序;在所述待测试程序为单进程程序时,将所述待测试程序对应的进程作为当前主进程。
153.在一实施例中,所述进程信息模块30,还用于在所述待测试程序不为单进程程序时,检测所述待测试程序当前运行的多个进程;从待测试程序当前运行的多个进程中选取当前主进程。
154.在一实施例中,所述进程信息模块30,还用于检测待测试程序当前运行的多个进程的进程开始时间;根据所述进程开始时间从多个进程中选取第一个运行的进程;将所述第一个运行的进程作为所述待测试程序对应的当前主进程。
155.在本发明所述自动化内存测试装置的其他实施例或具体实现方法可参照上述各方法实施例,此处不再赘述。
156.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
157.上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
158.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该估算机软件产品存储在如上所述的一个
估算机可读存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台智能设备(可以是手机,估算机,自动化内存测试设备,或者网络自动化内存测试设备等)执行本发明各个实施例所述的方法。
159.以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
160.本发明公开了a1、一种自动化内存测试方法,所述自动化内存测试方法包括以下步骤:
161.在检测到待测试程序启动时,获取所述待测试程序的程序信息;
162.根据所述程序信息获取与所述待测试程序的内存对应的内存堆栈信息,并根据所述内存堆栈信息建立堆栈数据库;
163.从所述堆栈数据库中获取与所述待测试程序的当前主进程对应的多个目标内存堆栈信息;
164.根据获取的目标内存堆栈信息进行自动化内存测试。
165.a2、如a1所述的自动化内存测试方法,所述根据获取的目标内存堆栈信息进行自动化内存测试,包括:
166.根据获取的目标内存堆栈信息确定第一待比较内存堆栈信息和第二待比较内存堆栈信息,所述第一待比较内存堆栈信息和所述第二待比较内存堆栈信息为不同时间节点的内存堆栈信息;
167.将所述第一待比较内存堆栈信息和所述第二待比较内存堆栈信息进行对比,以进行自动化内存测试。
168.a3、如a2所述的自动化内存测试方法,所述将所述第一待比较内存堆栈信息和所述第二待比较内存堆栈信息进行对比,以进行自动化内存测试,包括:
169.根据所述第一待比较内存堆栈信息生成第一时间节点分析文件,并根据所述第二待比较内存堆栈信息生成第二时间节点分析文件;
170.将所述第一时间节点分析文件和所述第二时间节点分析文件进行对比,以获得目标分析文件;
171.根据所述目标分析文件生成测试结果文件,并根据所述测试结果文件确定自动化内存测试结果。
172.a4、如a3所述的自动化内存测试方法,所述根据所述目标分析文件生成测试结果文件,包括:
173.根据预设映射列表查找与所述待测试程序对应的目标pdb文件,所述预设映射列表中记录有程序与pdb文件之间的对应关系;
174.根据所述目标分析文件和所述目标pdb文件生成测试结果文件。
175.a5、如a3所述的自动化内存测试方法,所述根据所述目标分析文件生成测试结果文件,并根据所述测试结果文件确定自动化内存测试结果之后,还包括:
176.将所述测试结果文件和所述自动化内存测试结果发送至预设测试平台服务器,以使所述预设测试平台服务器对所述测试结果文件和所述自动化内存测试结果进行存储。
177.a6、如a3所述的自动化内存测试方法,所述根据所述目标分析文件生成测试结果
文件,并根据所述测试结果文件确定自动化内存测试结果之后,还包括:
178.查找预设人员对应的邮箱,并查找所述邮箱对应的邮箱地址;
179.根据所述测试结果文件和所述自动化内存测试结果生成提示邮件;
180.根据所述邮箱地址将所述提示邮件发送至所述预设人员对应的邮箱,以对所述预设人员进行测试结果提示。
181.a7、如a1~a6中任一项所述的自动化内存测试方法,所述根据所述程序信息获取与所述待测试程序的内存对应的内存堆栈信息,并根据所述内存堆栈信息建立堆栈数据库,包括:
182.从所述程序信息中提取所述待测试程序的程序名称;
183.根据所述程序名称和预设命令行解析工具获取与所述待测试程序的内存对应的内存堆栈信息;
184.根据所述内存堆栈信息建立堆栈数据库。
185.a8、如a1~a6中任一项所述的自动化内存测试方法,所述在检测到待测试程序启动时,获取所述待测试程序的程序信息之前,还包括:
186.在接收到环境变量配置指令时,根据所述环境变量配置指令确定环境变量配置信息;
187.根据所述环境变量配置信息对终端设备进行环境变量配置,以得到目标运行环境,所述目标运行环境为能使预设命令行解析工具和预设内存泄露分析工具正常运行的运行环境。
188.a9、如a1~a6中任一项所述的自动化内存测试方法,所述从所述堆栈数据库中获取与所述待测试程序的当前主进程对应的多个目标内存堆栈信息,包括:
189.检测所述待测试程序对应的当前主进程,并获取所述当前主进程对应的进程标识;
190.根据所述进程标识从所述堆栈数据库中获取与所述当前主进程对应的多个目标内存堆栈信息。
191.a10、如a9所述的自动化内存测试方法,所述根据所述进程标识从所述堆栈数据库中获取与所述当前主进程对应的多个目标内存堆栈信息,包括:
192.根据所述进程标识和预设内存泄露分析工具进行多次信息截取操作,以从所述堆栈数据库中获取与所述当前主进程对应的多个目标内存堆栈信息。
193.a11、如a9所述的自动化内存测试方法,所述检测所述待测试程序对应的当前主进程,包括:
194.检测所述待测试程序的程序类型,并根据所述程序类型判断所述待测试程序是否为单进程程序;
195.在所述待测试程序为单进程程序时,将所述待测试程序对应的进程作为当前主进程。
196.a12、如a11所述的自动化内存测试方法,所述检测所述待测试程序的程序类型,并根据所述程序类型判断所述待测试程序是否为单进程程序之后,还包括:
197.在所述待测试程序不为单进程程序时,检测所述待测试程序当前运行的多个进程;
198.从待测试程序当前运行的多个进程中选取当前主进程。
199.a13、如a12所述的自动化内存测试方法,所述从待测试程序当前运行的多个进程中选取当前主进程,包括:
200.检测待测试程序当前运行的多个进程的进程开始时间;
201.根据所述进程开始时间从多个进程中选取第一个运行的进程;
202.将所述第一个运行的进程作为所述待测试程序对应的当前主进程。
203.本发明还公开了b14、一种自动化内存测试装置,所述自动化内存测试装置包括:
204.程序信息模块,用于在检测到待测试程序启动时,获取所述待测试程序的程序信息;
205.堆栈信息模块,用于根据所述程序信息获取与所述待测试程序的内存对应的内存堆栈信息,并根据所述内存堆栈信息建立堆栈数据库;
206.进程信息模块,用于从所述堆栈数据库中获取与所述待测试程序的当前主进程对应的多个目标内存堆栈信息;
207.内存测试模块,用于根据获取的目标内存堆栈信息进行自动化内存测试。
208.b15、如b14所述的自动化内存测试装置,所述内存测试模块,还用于根据获取的目标内存堆栈信息确定第一待比较内存堆栈信息和第二待比较内存堆栈信息,所述第一待比较内存堆栈信息和所述第二待比较内存堆栈信息为不同时间节点的内存堆栈信息;将所述第一待比较内存堆栈信息和所述第二待比较内存堆栈信息进行对比,以进行自动化内存测试。
209.b16、如b15所述的自动化内存测试装置,所述内存测试模块,还用于根据所述第一待比较内存堆栈信息生成第一时间节点分析文件,并根据所述第二待比较内存堆栈信息生成第二时间节点分析文件;将所述第一时间节点分析文件和所述第二时间节点分析文件进行对比,以获得目标分析文件;根据所述目标分析文件生成测试结果文件,并根据所述测试结果文件确定自动化内存测试结果。
210.b17、如b16所述的自动化内存测试装置,所述内存测试模块,还用于根据预设映射列表查找与所述待测试程序对应的目标pdb文件,所述预设映射列表中记录有程序与pdb文件之间的对应关系;根据所述目标分析文件和所述目标pdb文件生成测试结果文件。
211.b18、如b16所述的自动化内存测试装置,所述内存测试模块,还用于将所述测试结果文件和所述自动化内存测试结果发送至预设测试平台服务器,以使所述预设测试平台服务器对所述测试结果文件和所述自动化内存测试结果进行存储。
212.本发明还公开了c19、一种自动化内存测试设备,所述自动化内存测试设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的自动化内存测试程序,所述自动化内存测试程序配置有实现如上所述的自动化内存测试方法的步骤。
213.本发明还公开了d20、一种存储介质,所述存储介质上存储有自动化内存测试程序,所述自动化内存测试程序被处理器执行时实现如上所述的自动化内存测试方法的步骤。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献