CN113806214A - 应用程序的测试方法、装置、计算机设备及存储介质 - Google Patents

应用程序的测试方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN113806214A
CN113806214A CN202110184557.5A CN202110184557A CN113806214A CN 113806214 A CN113806214 A CN 113806214A CN 202110184557 A CN202110184557 A CN 202110184557A CN 113806214 A CN113806214 A CN 113806214A
Authority
CN
China
Prior art keywords
calling
program
application program
detected
target
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
Application number
CN202110184557.5A
Other languages
English (en)
Inventor
皮亮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jingdong Technology Holding Co Ltd
Original Assignee
Jingdong Technology Holding Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Jingdong Technology Holding Co Ltd filed Critical Jingdong Technology Holding Co Ltd
Priority to CN202110184557.5A priority Critical patent/CN113806214A/zh
Publication of CN113806214A publication Critical patent/CN113806214A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites

Abstract

本申请提出一种应用程序的测试方法、装置、计算机设备及存储介质,该方法包括执行代理测试程序,代理测试程序,用于针对应用程序对目标软件包文件中方法的调用情况进行检测;获取代理测试程序检测得到的方法调用数据;根据方法调用数据结合预配置的匹配识别规则,确定调用情况是否匹配目标配置。通过本申请能够有效地适用于应用程序的性能测试,从而提升应用程序的性能测试的全面性和便捷性,提升应用程序的性能测试效果,有效辅助后续针对应用程序的性能剖析与性能改进。

Description

应用程序的测试方法、装置、计算机设备及存储介质
技术领域
本申请涉及测试技术领域,尤其涉及一种应用程序的测试方法、装置、计算机设备及存储介质。
背景技术
一些应用场景中,执行多种任务的任务系统的技术架构趋向于复杂化,任务系统通常集成了多个微服务,还集成了很多提供基础运维的服务,提供基础运维的服务例如,分布式日志收集的服务,性能监控服务等。
相关技术中,可以采用链路监控系统监测到任务系统中各种分布式服务的调用情况,例如,针对一些基本接口或者主要接口和实现方法进行字节码切入处理,进而基于切入的字节码来实现整体分布式服务的调用链路的剖析和跟踪分析,这种方式能够识别得到出现异常的链路环节和存在性能瓶颈的链路环节。
上述性能检测方式并不适用于应用程序的性能测试,从而相关技术中针对应用程序的性能测试效果不够全面,性能测试效果不佳,从而会影响后续针对应用程序的性能剖析与性能改进。
发明内容
本申请旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本申请的目的在于提出一种应用程序的测试方法、装置、计算机设备及存储介质,能够有效地适用于应用程序的性能测试,从而提升应用程序的性能测试的全面性和便捷性,提升应用程序的性能测试效果,有效辅助后续针对应用程序的性能剖析与性能改进。
为达到上述目的,本申请第一方面实施例提出的应用程序的测试方法,包括:执行代理测试程序,所述代理测试程序,用于针对应用程序对目标软件包文件中方法的调用情况进行检测;获取所述代理测试程序检测得到的方法调用数据;根据所述方法调用数据结合预配置的匹配识别规则,确定所述调用情况是否匹配目标配置。
本申请第一方面实施例提出的应用程序的测试方法,通过执行代理测试程序,代理测试程序,用于针对应用程序对目标软件包文件中方法的调用情况进行检测,并获取代理测试程序检测得到的方法调用数据,以及根据方法调用数据结合预配置的匹配识别规则,确定调用情况是否匹配目标配置,能够有效地适用于应用程序的性能测试,从而提升应用程序的性能测试的全面性和便捷性,提升应用程序的性能测试效果,有效辅助后续针对应用程序的性能剖析与性能改进。
为达到上述目的,本申请第二方面实施例提出的应用程序的测试装置,包括:执行模块,用于执行代理测试程序,所述代理测试程序,用于针对应用程序对目标软件包文件中方法的调用情况进行检测;获取模块,用于获取所述代理测试程序检测得到的方法调用数据;确定模块,用于根据所述方法调用数据结合预配置的匹配识别规则,确定所述调用情况是否匹配目标配置。
本申请第二方面实施例提出的应用程序的测试装置,通过执行代理测试程序,代理测试程序,用于针对应用程序对目标软件包文件中方法的调用情况进行检测,并获取代理测试程序检测得到的方法调用数据,以及根据方法调用数据结合预配置的匹配识别规则,确定调用情况是否匹配目标配置,能够有效地适用于应用程序的性能测试,从而提升应用程序的性能测试的全面性和便捷性,提升应用程序的性能测试效果,有效辅助后续针对应用程序的性能剖析与性能改进。
本申请第三方面实施例提出了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现如本申请第一方面实施例提出的应用程序的测试方法。
本申请第四方面实施例提出了一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请第一方面实施例提出的应用程序的测试方法。
本申请第五方面实施例提出了一种计算机程序产品,当所述计算机程序产品中的指令处理器执行时,执行如本申请第一方面实施例提出的应用程序的测试方法。
本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1是本申请一实施例提出的应用程序的测试方法的流程示意图;
图2是本申请另一实施例提出的应用程序的测试方法的流程示意图;
图3是本申请另一实施例提出的应用程序的测试方法的流程示意图;
图4是本申请另一实施例提出的应用程序的测试方法的流程示意图;
图5为本申请实施例中数据模型示意图;
图6为本申请实施例中应用程序的测试装置的架构示意图;
图7为本申请实施例中的应用场景示意图;
图8为本申请实施例中的业务流程示意图;
图9是本申请一实施例提出的应用程序的测试装置的结构示意图;
图10是本申请另一实施例提出的应用程序的测试装置的结构示意图;
图11示出了适于用来实现本申请实施方式的示例性计算机设备的框图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能理解为对本申请的限制。相反,本申请的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
图1是本申请一实施例提出的应用程序的测试方法的流程示意图。
其中,需要说明的是,本实施例的应用程序的测试方法的执行主体为应用程序的测试装置,该装置可以由软件和/或硬件的方式实现,该装置可以配置在电子设备中,电子设备可以包括但不限于终端、服务器端等。
如图1所示,该方法包括:
S101:执行代理测试程序,代理测试程序,用于针对应用程序对目标软件包文件中方法的调用情况进行检测。
其中,代理测试程序,可以具有针对应用程序进行性能测试功能的代理程序,而代理程序,可以是指相关技术中的代理程序Agent,该代理程序Agent可以是使用agent技术构建得到的,该代理程序Agent可以用于协助监测、运行甚至替换其它的程序。
本申请实施例中,为了有效地避免执行代理测试程序以进行性能测试,对应用程序线上功能服务的影响,还可以是在应用程序处于线上运行的过程中,执行代理测试程序。
也即是说,依托代理程序Agent的性能,代理测试程序通常是轻量级的程序代码,从而本申请实施例中,可以采用性能剖析代理服务,将代理测试程序的程序代码植入应用程序对应的源程序代码之中,从而本申请实施例中,采用代理测试程序,能够支持针对应用程序线上动态配置剖析范围,实现指定单机配置的性能测试,从而辅助在应用程序处于线上运行的过程中,执行代理测试程序,以便捷地检测到应用程序对目标软件包文件中方法的调用情况进行检测。
可选地,一些实施例中,如图2所示,图2是本申请另一实施例提出的应用程序的测试方法的流程示意图,在执行代理测试程序之前,还包括:
S201:响应于测试用户的配置指令,解析配置指令得到对应的目标软件包文件的文件标识和检测触发标识。
也即是说,本实施例中,可以支持根据测试用户的实际测试需求,自定义需要测试的软件包文件(该自定义得到的需要测试的软件包文件,可以被称为目标软件包文件,软件包文件,可以例如为jar格式的软件包文件)。
比如,可以提供测试编辑界面,在该测试编辑界面中提供测试需求定义接口,从而基于该定义接口,响应于测试用户的配置指令,解析配置指令得到对应的目标软件包文件的文件标识和检测触发标识。
其中的文件标识,可以唯一用于标识用户自定义的目标软件包,检测触发标识可以被视为一个触发进行线上性能测试的开关,当检测触发标识是目标标识,则可以表明启动进行线上性能测试,当检测触发标识不是目标标识,则可以表明不进行线上性能测试,目标标识可以例如“开启”,则如果用户自定义的检测触发标识是“开启”,则在线上运行应用程序时,触发调用配置文件以辅助执行代理测试程序,如果用户自定义的检测触发标识是其它内容,则在线上运行应用程序时,不触发调用配置文件,该配置文件的描述可以参见下述。
S202:根据文件标识所属的目标软件包文件中的待检测方法接口,和检测触发标识生成对应的配置文件,配置文件被用于辅助代理测试程序对调用情况进行检测。
上述在响应于测试用户的配置指令,解析配置指令得到对应的目标软件包文件的文件标识和检测触发标识之后,可以根据文件标识所属的目标软件包文件中的待检测方法接口,和检测触发标识生成对应的配置文件,从而能够便于应用程序在线上运行时,能够便捷地、快速准确地识别出需要测试的软件包文件以及该软件包文件中的方法接口。
其中,用户自定义的目标软件包中的方法接口,可以被称为待检测方法接口,也即是说,本实施例中,支持测试用户基于软件包文件的维度自定义检测需求,即可以辅助实现指定包的线上性能检测,当用户配置目标软件包文件后,可以将目标软件包文件中所包含的至少部分方法均作为待检测方法,从而便于自定义的、且便捷地针对应用程序对方法的调用情况进行了性能检测。
上述在根据文件标识所属的目标软件包文件中的待检测方法接口,和检测触发标识生成对应的配置文件之后,还可以执行图3所示中的方法流程步骤,如图3所示,图3是本申请另一实施例提出的应用程序的测试方法的流程示意图,在执行代理测试程序之前,还包括:
S301:判断检测触发标识是否是目标标识。
则S101中的执行代理测试程序,可以包括:
S302:如果检测触发标识是目标标识,则执行代理测试程序。
也即是说,检测触发标识可以被视为一个触发进行线上性能测试的开关,当检测触发标识是目标标识,则可以表明启动进行线上性能测试,目标标识可以例如“开启”,则如果用户自定义的检测触发标识是“开启”,则在线上运行应用程序时,触发调用配置文件以辅助执行代理测试程序。
另一些实施例中,当检测触发标识不是目标标识,则表明不进行线上性能测试,目标标识可以例如“开启”,则如果用户自定义的检测触发标识不是“开启”,例如是“关闭”,则在线上运行应用程序时,不触发调用配置文件。
另一些实施例中,在执行代理测试程序时,还可以动态地对配置文件中的触发进行线上性能测试的开关进行检测,当检测触发标识由目标标识切换为其它,则表明停止线上性能测试,目标标识可以例如“开启”,则如果用户自定义的检测触发标识是“开启”,例如,如果检测到由“开启”切换至“关闭”,则触发停止线上性能测试。
S303:解析配置文件,以得到待检测方法接口。
举例而言,执行代理测试程序,以对上述的配置文件进行解析处理,得到待检测方法接口,上述配置文件中包括:文件标识所属的目标软件包文件中的待检测方法接口,该待检测方法接口可以具体是接口名称,也即是所,配置文件中包含了待检测方法接口的接口名称。
S304:针对应用程序对目标软件包文件中与待检测方法接口相匹配的待检测方法的调用情况进行检测。
上述在执行代理测试程序,以对上述的配置文件进行解析处理,得到待检测方法接口的接口名称之后,该接口名称,可以被用于识别到需求进行性能检测的待检测方法。
从而可以实现针对应用程序对目标软件包文件中与待检测方法接口相匹配的待检测方法的调用情况进行检测,也即是说,可以在线上运行应用程序时,执行代理测试程序,以针对应用程序对目标软件包文件中与待检测方法接口相匹配的待检测方法的调用情况进行检测。
S102:获取代理测试程序检测得到的方法调用数据。
上述的调用情况可以具体用于描述调用持续时长,调用过程中是否产生卡顿等情况,对此不做限制。
上述在检测得到相应的调用情况后,可以根据调用情况形成方法调用数据,从而辅助后续基于方法调用数据判断调用情况是否匹配目标配置。
上述的方法调用数据,可以具体是过滤后的调用数据,例如,如果方法调用数据描述调用持续时长,则调用持续时长可以具体是从方法调用数据之中过滤掉剖析工具自身的时间损耗时长等噪声数据之后得到的,从而保障了数据检测的准确性,提升了方法调用数据的可参考性。
S103:根据方法调用数据结合预配置的匹配识别规则,确定调用情况是否匹配目标配置。
其中,目标配置可以是预先设置的,比如调用持续时长是A,目标配置指示:方法调用数据为B,则如果A小于或者等于B,则说明调用情况匹配目标配置,而如果过A大于B,则说明调用情况不匹配目标配置,则可以进一步表明方法的调用情况存在异常,对此不做限制。
举例而言,如果调用情况具体用于描述调用持续时长,则预配置的匹配识别规则可以是:如果调用持续时长大于预设的调用时间阈值,则可以表明调用情况不匹配目标配置,相应的方法可能存在性能瓶颈,如果调用情况具体用于描述调用过程中是否产生卡顿,则预配置的匹配识别规则可以是:如果产生了卡顿,则也可以表明调用情况不匹配目标配置,当然,预配置的匹配识别规则还可以配置为其它参考指标,可以根据实际测试场景中的需求灵活的设置,比如,预配置的匹配识别规则可以是:调用过程中所占据的系统内存消耗大于内存消耗阈值,则表明调用情况也不匹配目标配置,对此不做限制。
本实施例中,通过执行代理测试程序,代理测试程序,用于针对应用程序对目标软件包文件中方法的调用情况进行检测,并获取代理测试程序检测得到的方法调用数据,以及根据方法调用数据结合预配置的匹配识别规则,确定调用情况是否匹配目标配置,能够有效地适用于应用程序的性能测试,从而提升应用程序的性能测试的全面性和便捷性,提升应用程序的性能测试效果,有效辅助后续针对应用程序的性能剖析与性能改进。
图4是本申请另一实施例提出的应用程序的测试方法的流程示意图。
如图4所示,该方法包括:
S401:响应于测试用户的配置指令,解析配置指令得到对应的调用时间阈值,调用时间阈值是判定待检测方法不匹配目标配置的门限值。
也即是说,本实施例中,还可以支持根据测试用户的实际测试需求,自定义调用时间阈值,调用时间阈值是判定待检测方法不匹配目标配置的门限值。
比如,可以提供测试编辑界面,在该测试编辑界面中提供测试需求定义接口,从而基于该定义接口,响应于测试用户的配置指令,解析配置指令得到对应的调用时间阈值。
S402:执行代理测试程序,检测应用程序对待检测方法的调用持续时长。
在一些应用场景中,目标软件包文件中的待检测方法的数量可以是至少一个,本实施例中,支持针对各个待检测方法的调用持续时长进行检测,并在检测得到各个待检测方法对应的调用持续时长之后,可以触发后续步骤。
在一些应用场景中,在检测得到应用程序对待检测方法的调用持续时长之后,还可以将调用持续时长处理为标准数据格式,例如可以采用预训练的数据模型对调用持续时长进行数据格式转换,从而便于后续数据的存储和剖析应用。
如图5所示,图5为本申请实施例中数据模型示意图。
S403:如果调用持续时长达到调用时间阈值,则判定与待检测方法对应的调用情况不匹配目标配置。
本实施例中,支持针对各个待检测方法的调用持续时长进行检测,并在检测得到各个待检测方法对应的调用持续时长之后,可以将各个调用持续时长与调用时间阈值进行比对,统计大于或者等于调用时间阈值的调用持续时长所占据的比例,在该比例值大于一个比例阈值时,判定针对该目标软件包文件的整体的调用情况不匹配目标配置。
也即是说,本申请实施例中可以实现支持多种的匹配识别规则,对匹配识别规则的具体内容可以不作限制。
S404:采用预设数据存储格式,将调用持续时长、待检测方法的相关数据存储至本地存储设备中。
上述待检测方法的相关数据,可以具体是待检测方法的方法内容,实现处理逻辑等等。
上述在判定与待检测方法对应的调用情况不匹配目标配置之后,还可以采用预设数据存储格式,将调用持续时长、待检测方法的相关数据存储至本地存储设备中。
预设数据存储格式可以如下所示:
<parent span id>|<span id>|<method>|<span index>|<elapsed>;
其中,span id表示调用持续时长对应的标识,method表示该调用持续时长对应的待检测方法,span index表示调用持续时长对应的索引,elapsed是相关技术中的elapsed时间,表示调用持续时长达到调用时间阈值时,则可以触发采用预设数据存储格式将调用持续时长、待检测方法的相关数据存储至本地存储设备中。
本实施例中,通过执行代理测试程序,代理测试程序,用于针对应用程序对目标软件包文件中方法的调用情况进行检测,并获取代理测试程序检测得到的方法调用数据,以及根据方法调用数据结合预配置的匹配识别规则,确定调用情况是否匹配目标配置,能够有效地适用于应用程序的性能测试,从而提升应用程序的性能测试的全面性和便捷性,提升应用程序的性能测试效果,有效辅助后续针对应用程序的性能剖析与性能改进。
如图6和图7所示,图6为本申请实施例中应用程序的测试装置的架构示意图,图7为本申请实施例中的应用场景示意图,在图6和图7中,均可以包括:应用程序Application、性能剖析代理Profiler Agent、数据处理引擎Data Engine、抽象数据存储介质StorageAdaptor,硬件存储介质Disk storage,以及配置文件Configuration。
上述图6和图7中,支持测试用户方便、快捷地添加需求测试剖析的软件包文件,以及该软件包文件中的方法接口,异常判定阈值等,检测触发标识(例如剖析开关)等。
上述图6和图7中,性能剖析代理Profiler Agent,性能剖析代理Profiler Agent之中可以包括多个代理测试程序,负责植入代理测试程序至应用程序的源程序代码文件中,从而辅助进行方法处理的耗时计算和搜集,代理测试程序Agent会对方法接口进行识别,对于不需要剖析的方法接口,不进行剖析逻辑处理;如果测试用户预先设定的剖析的调用时间阈值,代理测试程序Agent可以在达到调用时间阈值时对采集得到的方法调用数据进行后续处理;未达到调用时间阈值的方法调用数据,可以不触发进行数据处理。同时,代理测试程序Agent还可以对检测触发标识(例如剖析开关)进行判断,如果剖析开关处于关闭状态,代理测试程序Agent不触发执行剖析逻辑,避免对方法执行的不必要损耗。
上述的数据处理引擎Data Engine可以负责对数据模型进行维护及数据的采集、处理、适配;上述的抽象数据存储介质Storage Adaptor,用于存储剖析所得的数据模型,默认是以文件形式存储到本地存储设备(例如,硬件存储介质Disk storage)中,而后,可以最终文件通过分析统计,获取到异常分析信息,比如可以分析在对应的方法接口中,耗时占据较大比例的调用持续时长,从而确定相应的待检测方法存在性能瓶颈。
如图8所示,图8为本申请实施例中的业务流程示意图,本申请实施例中,可以实现便捷地对与测试需求匹配的目标软件包文件中的方法调用情况进行剖析,并且实现方法调用数据的本地化存储,实现针对应用程序的方法维度的性能分析,还可以基于单个实例进行方法、时间的统计汇总分析,方便快速对方法的性能瓶颈进行定位,还可以实现针对性的剖析,另外,通过调用时间阈值进行采集配置,从而可以实现针对性较强的有效采集,提升方法调用数据的采集效率,有效提升方法调用数据在方法性能瓶颈分析过程中的参考价值,提升性能瓶颈分析效率,并且,本申请实施例中的性能测试方法能够有效地适配于应用程序的线上生产环境。
图9是本申请一实施例提出的应用程序的测试装置的结构示意图。
如图9所示,该应用程序的测试装置90,包括:
执行模块901,用于执行代理测试程序,代理测试程序,用于针对应用程序对目标软件包文件中方法的调用情况进行检测。
获取模块902,用于获取代理测试程序检测得到的方法调用数据。
确定模块903,用于根据方法调用数据结合预配置的匹配识别规则,确定调用情况是否匹配目标配置。
在本申请的一些实施例中,如图10所示,该装置90还包括:
解析模块904,用于响应于测试用户的配置指令,解析配置指令得到对应的目标软件包文件的文件标识和检测触发标识;
生成模块905,用于根据文件标识所属的目标软件包文件中的待检测方法接口,和检测触发标识生成对应的配置文件,配置文件被用于辅助代理测试程序对调用情况进行检测。
在本申请的一些实施例中,如图10所示,还包括:
判断模块906,用于判断检测触发标识是否是目标标识;
执行模块901,具体用于:
如果检测触发标识是目标标识,则执行代理测试程序;
解析配置文件,以得到待检测方法接口;
针对应用程序对目标软件包文件中与待检测方法接口相匹配的待检测方法的调用情况进行检测。
在本申请的一些实施例中,解析模块904,还用于:
响应于测试用户的配置指令,解析配置指令得到对应的调用时间阈值,调用时间阈值是判定待检测方法不匹配目标配置的门限值。
在本申请的一些实施例中,执行模块901,具体用于:
检测应用程序对待检测方法的调用持续时长;
确定模块903,具体用于:
如果调用持续时长达到调用时间阈值,则根据调用持续时长结合预配置的匹配识别规则,确定调用情况是否匹配目标配置。
在本申请的一些实施例中,确定模块903,具体用于:
如果调用持续时长达到调用时间阈值,则判定与待检测方法对应的调用情况不匹配目标配置;
采用预设数据存储格式,将调用持续时长、待检测方法的相关数据存储至本地存储设备中。
在本申请的一些实施例中,执行模块901,具体用于:
在应用程序处于线上运行的过程中,执行代理测试程序。
与上述图1至图8实施例提供的应用程序的测试方法相对应,本申请还提供一种应用程序的测试装置,由于本申请实施例提供的应用程序的测试装置与上述图1至图8实施例提供的应用程序的测试方法相对应,因此在应用程序的测试方法的实施方式也适用于本申请实施例提供的应用程序的测试装置,在本申请实施例中不再详细描述。
本实施例中,通过执行代理测试程序,代理测试程序,用于针对应用程序对目标软件包文件中方法的调用情况进行检测,并获取代理测试程序检测得到的方法调用数据,以及根据方法调用数据结合预配置的匹配识别规则,确定调用情况是否匹配目标配置,能够有效地适用于应用程序的性能测试,从而提升应用程序的性能测试的全面性和便捷性,提升应用程序的性能测试效果,有效辅助后续针对应用程序的性能剖析与性能改进。
为了实现上述实施例,本申请还提出一种计算机设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时,实现如本申请前述实施例提出的应用程序的测试方法。
为了实现上述实施例,本申请还提出一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请前述实施例提出的应用程序的测试方法。
为了实现上述实施例,本申请还提出一种计算机程序产品,当计算机程序产品中的指令处理器执行时,执行如本申请前述实施例提出的应用程序的测试方法。
图11示出了适于用来实现本申请实施方式的示例性计算机设备的框图。图11显示的计算机设备12仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图11所示,计算机设备12以通用计算设备的形式表现。计算机设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(Industry StandardArchitecture;以下简称:ISA)总线,微通道体系结构(Micro Channel Architecture;以下简称:MAC)总线,增强型ISA总线、视频电子标准协会(Video Electronics StandardsAssociation;以下简称:VESA)局域总线以及外围组件互连(Peripheral ComponentInterconnection;以下简称:PCI)总线。
计算机设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(Random Access Memory;以下简称:RAM)30和/或高速缓存存储器32。计算机设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图11未显示,通常称为“硬盘驱动器”)。尽管图11中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如:光盘只读存储器(Compact Disc Read OnlyMemory;以下简称:CD-ROM)、数字多功能只读光盘(Digital Video Disc Read OnlyMemory;以下简称:DVD-ROM)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本申请各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本申请所描述的实施例中的功能和/或方法。
计算机设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机设备12交互的设备通信,和/或与使得该计算机设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(Local Area Network;以下简称:LAN),广域网(Wide Area Network;以下简称:WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机设备12的其它模块通信。应当明白,尽管图中未示出,可以结合计算机设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现前述实施例中提及的应用程序的测试方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
需要说明的是,在本申请的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本申请的描述中,除非另有说明,“多个”的含义是两个或两个以上。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。

Claims (10)

1.一种应用程序的测试方法,其特征在于,所述方法包括:
执行代理测试程序,所述代理测试程序,用于针对应用程序对目标软件包文件中方法的调用情况进行检测;
获取所述代理测试程序检测得到的方法调用数据;
根据所述方法调用数据结合预配置的匹配识别规则,确定所述调用情况是否匹配目标配置。
2.如权利要求1所述的方法,其特征在于,在所述执行代理测试程序之前,还包括:
响应于测试用户的配置指令,解析所述配置指令得到对应的目标软件包文件的文件标识和检测触发标识;
根据所述文件标识所属的目标软件包文件中的待检测方法接口,和所述检测触发标识生成对应的配置文件,所述配置文件被用于辅助所述代理测试程序对所述调用情况进行检测。
3.如权利要求2所述的方法,其特征在于,在所述执行代理测试程序之前,包括:
判断所述检测触发标识是否是目标标识;
所述执行代理测试程序,包括:
如果所述检测触发标识是所述目标标识,则执行所述代理测试程序;
解析所述配置文件,以得到所述待检测方法接口;
针对所述应用程序对目标软件包文件中与所述待检测方法接口相匹配的待检测方法的调用情况进行检测。
4.如权利要求2所述的方法,其特征在于,在所述执行代理测试程序之前,还包括:
响应于所述测试用户的配置指令,解析所述配置指令得到对应的调用时间阈值,所述调用时间阈值是判定所述待检测方法不匹配所述目标配置的门限值。
5.如权利要求4所述的方法,其特征在于,所述执行代理测试程序,还包括:
检测所述应用程序对所述待检测方法的调用持续时长;
所述根据所述方法调用数据结合预配置的匹配识别规则,确定所述调用情况是否匹配目标配置,包括:
如果所述调用持续时长达到所述调用时间阈值,则根据所述调用持续时长结合预配置的匹配识别规则,确定所述调用情况是否匹配目标配置。
6.如权利要求5所述的方法,其特征在于,所述如果所述调用持续时长达到所述调用时间阈值,则根据所述调用持续时长结合预配置的匹配识别规则,确定所述调用情况是否匹配目标配置,包括:
如果所述调用持续时长达到所述调用时间阈值,则判定与所述待检测方法对应的调用情况不匹配所述目标配置;
采用预设数据存储格式,将所述调用持续时长、所述待检测方法的相关数据存储至本地存储设备中。
7.如权利要求1-6任一项所述的方法,其特征在于,所述执行代理测试程序,包括:
在所述应用程序处于线上运行的过程中,执行所述代理测试程序。
8.一种应用程序的测试装置,其特征在于,所述装置包括:
执行模块,用于执行代理测试程序,所述代理测试程序,用于针对应用程序对目标软件包文件中方法的调用情况进行检测;
获取模块,用于获取所述代理测试程序检测得到的方法调用数据;
确定模块,用于根据所述方法调用数据结合预配置的匹配识别规则,确定所述调用情况是否匹配目标配置。
9.一种计算机设备,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现如权利要求1-7中任一所述的方法。
10.一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如权利要求1至7中任一项所述的方法。
CN202110184557.5A 2021-02-10 2021-02-10 应用程序的测试方法、装置、计算机设备及存储介质 Pending CN113806214A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110184557.5A CN113806214A (zh) 2021-02-10 2021-02-10 应用程序的测试方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110184557.5A CN113806214A (zh) 2021-02-10 2021-02-10 应用程序的测试方法、装置、计算机设备及存储介质

Publications (1)

Publication Number Publication Date
CN113806214A true CN113806214A (zh) 2021-12-17

Family

ID=78892798

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110184557.5A Pending CN113806214A (zh) 2021-02-10 2021-02-10 应用程序的测试方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN113806214A (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108563544A (zh) * 2018-03-26 2018-09-21 平安普惠企业管理有限公司 系统性能测试方法、装置、计算机设备和存储介质
CN109815105A (zh) * 2017-11-20 2019-05-28 北京京东尚科信息技术有限公司 基于Btrace的应用程序测试方法和装置
CN109992502A (zh) * 2017-12-30 2019-07-09 中国移动通信集团四川有限公司 应用软件性能自动检测分析方法、装置、设备及介质
CN111756697A (zh) * 2020-05-27 2020-10-09 杭州数梦工场科技有限公司 Api安全检测方法、装置、存储介质及计算机设备
CN112035359A (zh) * 2020-08-31 2020-12-04 北京字节跳动网络技术有限公司 程序测试方法、装置、电子设备及存储介质
CN112052152A (zh) * 2019-06-06 2020-12-08 北京京东尚科信息技术有限公司 一种模拟测试的方法和装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109815105A (zh) * 2017-11-20 2019-05-28 北京京东尚科信息技术有限公司 基于Btrace的应用程序测试方法和装置
CN109992502A (zh) * 2017-12-30 2019-07-09 中国移动通信集团四川有限公司 应用软件性能自动检测分析方法、装置、设备及介质
CN108563544A (zh) * 2018-03-26 2018-09-21 平安普惠企业管理有限公司 系统性能测试方法、装置、计算机设备和存储介质
CN112052152A (zh) * 2019-06-06 2020-12-08 北京京东尚科信息技术有限公司 一种模拟测试的方法和装置
CN111756697A (zh) * 2020-05-27 2020-10-09 杭州数梦工场科技有限公司 Api安全检测方法、装置、存储介质及计算机设备
CN112035359A (zh) * 2020-08-31 2020-12-04 北京字节跳动网络技术有限公司 程序测试方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN109284269B (zh) 异常日志分析方法、装置、存储介质及服务器
US8156475B2 (en) Device and method for testing embedded software using emulator
CN107729210B (zh) 分布式服务集群的异常诊断方法和装置
CN108388489B (zh) 一种服务器故障诊断方法、系统、设备及存储介质
US7689872B2 (en) Autonomic program error detection and correction
US20080276129A1 (en) Software tracing
CN110674025A (zh) 交互行为监测方法、装置以及计算机设备
US20150363198A1 (en) Dynamic call tracking method based on cpu interrupt instructions to improve disassembly quality of indirect calls
JP2013533553A (ja) システムテスト方法
CN111563014A (zh) 接口服务性能测试方法、装置、设备和存储介质
CN112445686A (zh) 内存泄漏检测方法、装置以及计算机可读存储介质
US9639451B2 (en) Debugger system, method and computer program product for utilizing hardware breakpoints for debugging instructions
CN111274130A (zh) 一种自动化测试方法、装置、设备及存储介质
CN112256548B (zh) 异常数据的监听方法、装置、服务器及存储介质
CN110554929A (zh) 数据校验方法、装置、计算机设备及存储介质
CN113806214A (zh) 应用程序的测试方法、装置、计算机设备及存储介质
CN111654405A (zh) 通信链路的故障节点方法、装置、设备及存储介质
CN109884533B (zh) 电池故障的诊断方法及装置、设备及存储介质
CN114553663B (zh) 一种异常检测方法、装置、设备和存储介质
CN111382017A (zh) 故障查询方法、装置,服务器及存储介质
CN113342431B (zh) 函数调用栈回溯、程序异常处理方法、装置、设备及介质
CN111131370B (zh) 用于检测服务调用是否正确的方法、装置和系统
CN114706371A (zh) 整车网络不休眠诊断方法、装置、电子设备及存储介质
CN111741046B (zh) 数据上报方法、获取方法、装置、设备及介质
CN115292146B (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