CN113127345B - 应用测试方法、装置、电子设备及存储介质 - Google Patents

应用测试方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN113127345B
CN113127345B CN202110368089.7A CN202110368089A CN113127345B CN 113127345 B CN113127345 B CN 113127345B CN 202110368089 A CN202110368089 A CN 202110368089A CN 113127345 B CN113127345 B CN 113127345B
Authority
CN
China
Prior art keywords
node
application
class
preset
node information
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.)
Active
Application number
CN202110368089.7A
Other languages
English (en)
Other versions
CN113127345A (zh
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.)
Beijing Zitiao Network Technology Co Ltd
Original Assignee
Beijing Zitiao Network Technology 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 Beijing Zitiao Network Technology Co Ltd filed Critical Beijing Zitiao Network Technology Co Ltd
Priority to CN202110368089.7A priority Critical patent/CN113127345B/zh
Publication of CN113127345A publication Critical patent/CN113127345A/zh
Application granted granted Critical
Publication of CN113127345B publication Critical patent/CN113127345B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/362Software debugging
    • G06F11/3644Software debugging by instrumenting at runtime
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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

应用测试方法、装置、电子设备及存储介质
技术领域
本公开涉及测试领域,特别涉及一种应用测试方法、装置、电子设备及存储介质。
背景技术
应用程序(Application)在使用过程中需要进行大量的数据交互,用户通过客户端发出请求希望获取相应的功能或内容反馈,服务器端接收到请求后进行相应功能或内容的反馈。在数据交互的过程中,为了防止用户发出的请求因网络状态或App被杀进程导致丢失,通常情况下,在App客户端层面需要做一些兼容的逻辑以减少上述情况发生,但是这样就会导致应用中原有一些功能的代码本身会被修改,进而可能影响到已有代码的兼容逻辑,而现有的测试方案基本上都是对应用程序进行黑盒测试,但是这种完全不考虑程序内部逻辑的测试方式无法知悉处理异常情况的代码是否对原有兼容逻辑产生影响,进而增加了测试的复杂性和改动代码的成本。
发明内容
本公开实施例的目的在于提供一种应用测试方法、装置、电子设备及存储介质,以解决现有技术中针对应用进行测试时无法知悉处理异常情况的代码是否对原有兼容逻辑产生影响,进而增加了测试的复杂性和改动代码的成本的问题。
为了解决上述技术问题,本公开的实施例采用了如下技术方案:一种应用测试方法,包括:在所述应用中模拟异常事件;获取所述应用中各节点的节点信息;展示所述节点信息。
进一步,所述在所述应用中模拟异常事件,包括:拦截所述应用的验证请求;将所述验证请求的返回值设置为验证失败对应的值。
进一步,所述在所述应用中模拟异常事件,包括:将所述节点的方法的返回值设置为异常值;其中,所述节点的方法被配置为用于实现所述节点在应用的相应功能。
进一步,所述将所述节点的方法的返回值设置为异常值,包括:将所述节点的方法替换为第一预设方法;通过执行所述第一预设方法以调用所述节点的方法,并将所述节点的方法的返回值调整为异常值。
进一步,所述将所述节点的方法替换为第一预设方法之前,还包括:检测所述应用的头文件中是否存在所述节点的方法所归属的第一类;在所述应用的头文件中存在所述节点的方法所归属的第一类的情况下,在所述第一类中定义所述第一预设方法;在所述应用的头文件中不存在所述节点的方法所归属的第一类的情况下,创建第二类,并在所述第二类中定义所述第一预设方法。
进一步,所述获取所述应用中各节点的节点信息,包括:通过代理接口对每个所述节点的方法进行调用,并拦截所述节点的至少一个日志;对所述日志进行关键词匹配,以确定所述节点的节点信息。
进一步,所述获取所述应用中所有的所述节点的节点信息,包括:将所述节点的方法替换为第二预设方法;通过执行所述第二预设方法以调用所述节点的方法,并采集所述节点的节点信息。
进一步,所述将所述节点的方法替换为第二预设方法之前,还包括:检测所述应用的头文件中是否存在所述节点的方法所归属的第三类;在所述应用的头文件中存在所述节点的方法所归属的第三类的情况下,在所述第三类中定义所述第二预设方法;在所述应用的头文件中不存在所述节点的方法所归属的第三类的情况下,创建第四类,并在所述第四类中定义所述第二预设方法。
进一步,所述展示所述节点信息,包括:基于所述节点执行的顺序依次展示所述节点对应的所述节点信息。
进一步,所述节点信息至少包括:节点标题、节点描述、时间戳、节点类型、日志来源。
进一步,在展示所述节点信息时,使用不同颜色展示具有不同节点类型的节点对应的节点信息。
本公开实施例还提出一种应用的测试装置,包括:模拟模块,用于在应用中模拟异常事件;获取模块,用于获取所述应用中各节点的节点信息;展示模块,用于展示所述节点信息。
本公开实施例还提出一种电子设备,至少包括存储器、处理器,所述存储器上存储有计算机程序,其特征在于,所述处理器在执行所述存储器上的计算机程序时实现上述任一项技术方案中应用测试方法的步骤。
本公开实施例还提出一种存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述任一项技术方案中应用测试方法的步骤。
本公开实施例的有益效果在于:通过在应用中对异常事件进行模拟,并以可视化的效果将应用中各个节点的节点信息进行相应展示,方便测试人员直观地知悉应用中的各个正常流程或异常流程,便于在不影响原有兼容逻辑的情况下进行异常情况处理代码的修改和调试,降低了测试的复杂性和调试成本。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本公开第一实施例中应用测试方法的流程图;
图2为本公开第二实施例中应用测试装置的结构示意图;
图3为本公开第四实施例中电子设备的结构示意图。
具体实施方式
此处参考附图描述本申请的各种方案以及特征。
应理解的是,可以对此处申请的实施例做出各种修改。因此,上述说明书不应该视为限制,而仅是作为实施例的范例。本领域的技术人员将想到在本申请的范围和精神内的其他修改。
包含在说明书中并构成说明书的一部分的附图示出了本申请的实施例,并且与上面给出的对本申请的大致描述以及下面给出的对实施例的详细描述一起用于解释本申请的原理。
通过下面参照附图对给定为非限制性实例的实施例的优选形式的描述,本申请的这些和其它特性将会变得显而易见。
还应当理解,尽管已经参照一些具体实例对本申请进行了描述,但本领域技术人员能够确定地实现本申请的很多其它等效形式,它们具有如权利要求所述的特征并因此都位于借此所限定的保护范围内。
当结合附图时,鉴于以下详细说明,本申请的上述和其他方面、特征和优势将变得更为显而易见。
此后参照附图描述本申请的具体实施例;然而,应当理解,所申请的实施例仅仅是本申请的实例,其可采用多种方式实施。熟知和/或重复的功能和结构并未详细描述以避免不必要或多余的细节使得本申请模糊不清。因此,本文所申请的具体的结构性和功能性细节并非意在限定,而是仅仅作为权利要求的基础和代表性基础用于教导本领域技术人员以实质上任意合适的详细结构多样地使用本申请。
本说明书可使用词组“在一种实施例中”、“在另一个实施例中”、“在又一实施例中”或“在其他实施例中”,其均可指代根据本申请的相同或不同实施例中的一个或多个。
本公开的第一实施例提供了一种应用的测试方法,其可以作为一个测试工具程序安装在客户端中,用以对客户端中任意一个应用程序进行前期测试,其流程示意图如图1所示,主要包括步骤S1至S3:
S1,在应用中模拟异常事件。
针对应用进行测试的主要目的为检查为了处理异常情况所添加的程序代码是否影响到应用本身代码的兼容逻辑,并且在测试发现漏洞(bug)时可以针对漏洞存在的代码进行及时的调整,因此,在本实施例中,需要在测试过程中不断模拟异常事件发生的情况,来测试应用程序的兼容性能。
应用在使用过程中所触发的每一个具有实际功能的方法均可对应一个节点,在任意一个节点的执行过程中均可实现其在应用中相应功能,以该应用具有应用内支付(IAP,In-Application Purchase)流程为例,IAP中至少包括支付、验证收据、验证收据成功等各个功能节点,使用IAP的时候经常会出现一些掉单的问题,即用户已经付款但是商家未进行发货处理或用户未收到其订阅的内容等,导致用户没有享受到相应的权益,进而严重影响用户的使用体验,为了减少IAP的异常情况,本实施例可以通过针对在IAP流程中各个节点的执行过程中出现的错误情况进行测试。
例如,本实施例通过在应用支付流程中预设的节点模拟(mock)异常事件的发生来模拟可能出现的支付异常流程,其中,预设的节点可以为IAP中的每一个节点,也可以为根据实际测试需求设定的,例如在进行验证收据时返回错误的验证结果来模拟交易凭证未通过的情况,或者通过修改返回值来模拟订单号丢失等情况。需要注意的是,在应用的实际使用过程中可能存在更多的异常情况,针对不同的节点也可能存在一种或多种的异常流程,本实施例仅列举了可能存在的一种或两种异常情况的模拟方式,但并不限制在模拟其他异常情况时使用不同的模拟手段。
具体地,在预设的节点模拟异常事件时,可以通过拦截代理的方法进行实现,例如,首先拦截应用内的验证请求,然后将该验证请求的返回值设置为验证失败对应的值,使预设的节点接收到的返回值为验证失败,并基于验证失败的情况查看预设的节点以及其后续节点的处理逻辑。其中,本实施例中的验证请求可以为IAP流程中验证支付凭证时发出的验证请求,或者验证用户账号时发出的验证请求,当然也可以为IAP流程中可能存在的其他验证请求,或者应用使用时所能实现的其他功能所对应的请求,本实施例不进行具体限制。
另外,在预设的节点模拟异常事件时,还可以通过交换(hook)关键方法的方式进行实现,即使用其他方法替换节点原有执行的方法,例如将预设的节点的执行方法替换为用于调整返回值的第一预设方法,当应用程序执行至特定的关键节点时,其实际执行的方法为第一预设方法的代码,在第一预设方法的执行过程中,其可以调用预设的节点原有的方法以实现原有方法的功能,但是在返回该方法的执行结果时,基于第一预设方法的代码将该返回值调整为异常值,并基于在接收到异常的返回值的情况查看预设的节点以及其后续节点的处理逻辑。
进一步地,在将节点的方法替换为第一预设方法之前,需要在程序中添加第一预设方法的代码,此时可首先检测当前应用的头文件中是否存在该节点的方法所归属的第一类,若存在该第一类则证明该第一类为公有类,可直接进行调用修改,此时在公有类中直接定义第一预设方法,并将第一预设方法所对应的代码在头文件中进行增加,若头文件中不存在该节点的方法所归属的第一类,则证明第一类为私有类,此时创建一个私有的第二类,并在第二类中定义第一预设方法,在进行方法替换时通过动态插入的方式将第二类插入至第一类之后,再进行方法替换。
S2,获取应用中各节点的节点信息。
S3,展示节点信息。
在应用的使用流程中,各个节点之间存在一定的执行顺序或处理逻辑,任意一个节点的执行结果在出现变化时都有可能影响其后续节点的执行结果,进而影响整个应用功能,因此,在对应用程序进行测试时,本实施例中通过获取所有节点的节点信息,并对获取到的所有节点的节点信息进行展示,即可以直观地获悉各个关键方法的执行结果,便于测试人员了解应用程序针对模拟的异常事件的处理情况或兼容情况,方便其对应用程序代码进行更有针对性的调试和修改。
具体地,节点的节点信息至少应包括以下内容:节点标题(title)、节点描述、时间戳、节点类型等;其中,节点标题用于表征相应节点的方法名,节点描述用于表征当前程序具体流转到了哪一步骤或哪一个具体的节点,时间戳则表示执行到相应步骤或节点时的时间,节点类型则用于表征当前节点所在的逻辑分支,其主要包括正常(info)、警告(warning)以及错误(error)三种类型,当节点正常被执行时其节点类型为info,当其处于一些不影响应用功能的逻辑分支中时,对应节点类型为warning,若其处于一个异常的逻辑分支,则对应节点类型为error。进一步地,节点信息中还可以包括该节点信息的日志来源(log source),用于区分该节点信息是在哪一层进行采集的,例如区分是在系统层还是业务封装层采集的。
本实施例在获取各个节点的节点信息时,可至少通过以下两种方式实现:拦截代理方式和/或关键方法交换方式,具体在进行获取节点信息时,可根据各个节点对应的方法选择具体使用哪种方式进行拦截,其中大部分节点均可以通过关键方法交换方式进行节点信息获取,针对用于回调的block较多,无法进行方法交换的节点可以通过拦截代理方式获取相应的节点信息。
在通过拦截代理方式获取节点的节点信息时,实际是通过代理模式实现对日志的拦截功能,例如通过代理接口实现对每个节点的方法的调用,并拦截节点的方法在执行时所产生的至少一个日志,该日志中记录有节点相关的执行情况、节点相关信息等内容;在拦截获取到各个节点的日志之后,可对日志内所记录的内容进行关键词匹配,进而映射成节点的节点信息,其中,针对节点信息中的不同内容可对应设置不同的关键词,具体关键词的设置则可根据不同的应用程序或不同的节点进行设置,本实施例不进行限制。
在通过关键方法交换方式获取节点的节点信息时,实际上是将节点内的关键方法与测试人员自定义的第二预设方法进行替换,其中第二预设方法至少用于节点信息的采集;当程序执行至已经进行方法替换的节点时,实际执行的代码为第二预设方法的代码,此时第二预设方法会调用节点的原有方法以实现其原有功能,并同时通过自身的节点信息的采集方法对节点执行过程中的节点信息进行采集获取。
进一步地,在将节点的方法替换为第二预设方法之前,需要在程序中添加第二预设方法的代码,此时可首先检测当前应用的头文件中是否存在该节点的方法所归属的第三类,若存在该第三类则证明该第三类为公有类,可直接进行调用修改,此时在公有类中可以直接定义第二预设方法,,并将第二预设方法所对应的代码在头文件中进行增加,若头文件中不存在该节点的方法所归属的第三类,则证明第三类为私有类,此时创建一个私有的第四类,并在第四类中定义第二预设方法,在进行方法替换时通过动态插入的方式将第四类插入至第三类之后,再进行方法替换。应当了解的是,本实施例中的第一类和第三类可以为同一类也可以为不同类。
利用上述方式获取所有节点的节点信息后,可将得到的节点信息按照时间顺序或者执行顺序置入一队列中,在展示节点信息时,根据节点信息中的时间戳信息,按照时间顺序依次展示各个节点的节点信息,或者,基于各个节点之间的逻辑关系,按照执行顺序进行节点信息的展示,并于测试人员知悉测试过程和测试结果,并可基于展示出的节点信息进行相应节点的代码调试。在实际使用时,节点信息中包含节点类型,每个不同的节点类型则表征了节点所处的不同逻辑分支,在实际展示节点信息时可通过不同颜色来表示不同的节点类型,例如使用红色表示error,使用黄色表示warning,使用绿色表示info,这样可以使测试人员在查看节点信息时有针对性的优先处理类型为error的节点,对于warning和info的节点可不处理或延迟处理。
本实施例通过在应用内对异常事件进行模拟,并以可视化的效果将各个节点的节点信息进行相应展示,方便测试人员直观地知悉应用中的各个正常流程或异常流程,便于在不影响原有兼容逻辑的情况下进行异常情况处理代码的修改和调试,降低了测试的复杂性和调试成本。
本公开的第二实施例提供了一种应用测试装置,其可以安装在任意一种客户端中,用以对客户端中任意一个应用程序进行前期测试,其结构示意图如图2所示,主要包括:模拟模块10、获取模块20以及展示模块30,其中,模拟模块10用于在应用内模拟异常事件;获取模块20用于获取应用内各节点的节点信息;展示模块30用于展示节点信息。
针对应用进行测试的主要目的为检查为了处理异常情况所添加的程序代码是否影响到应用本身代码的兼容逻辑,并且在测试发现漏洞(bug)时可以针对漏洞存在的代码进行及时的调整,因此,在本实施例中,需要在测试过程中不断模拟异常事件发生的情况,来测试应用程序的兼容性能。
应用在使用过程中所触发的每一个具有实际功能的方法均可对应一个节点,在任意一个节点的执行过程中均可实现其在应用中相应功能,以具有IAP流程的应用为例,本实施例可以通过针对在IAP流程中各个节点的执行过程中出现的错误情况进行测试,例如,本实施例通过在应用支付流程中预设的节点模拟异常事件的发生来模拟可能出现的支付异常流程,其中,预设的节点可以为IAP中的每一个节点,也可以为根据实际测试需求设定的,例如在进行验证收据时返回错误的验证结果来模拟交易凭证未通过的情况,或者通过修改返回值来模拟订单号丢失等情况。
具体地,模拟模块10在预设的节点模拟异常事件时,可以通过拦截代理的方法进行实现,例如,首先拦截应用内的验证请求,然后将该验证请求的返回值设置为验证失败对应的值,使预设的节点接收到的返回值为验证失败,并基于验证失败的情况查看预设的节点以及其后续节点的处理逻辑。其中,本实施例中的验证请求可以为验证支付凭证时发出的验证请求,或者验证用户账号时发出的验证请求,当然也可以为IAP流程中可能存在的其他验证请求,或者应用使用时所能实现的其他功能所对应的请求,本实施例不进行具体限制。
另外,模拟模块10在预设的节点模拟异常事件时,还可以通过交换关键方法的方式进行实现,即使用其他方法替换节点原有执行的方法,例如将预设的节点的执行方法替换为用于调整返回值的第一预设方法,当应用程序执行至该预设节点时,其实际执行的方法为第一预设方法的代码,在第一预设方法的执行过程中,其可以调用特定节点原有的方法以实现原有方法的功能,但是在返回该方法的执行结果时,基于第一预设方法的代码将该返回值调整为与异常值,并基于在接收到异常的返回值的情况查看预设的节点以及其后续节点的处理逻辑。
在应用的使用流程中,各个节点之间是存在一定的执行顺序或处理逻辑,任意一个节点的执行结果在出现变化时都有可能影响其后续节点的执行结果,进而影响整个应用功能,因此,在对应用程序进行测试时,本实施例中通过获取模块20获取所有节点的节点信息,展示模块30则对获取到的各个节点的节点信息进行展示,即可以直观地获悉各个关键方法的执行结果,便于测试人员了解应用程序针对模拟的异常事件的处理情况或兼容情况,方便其对应用程序代码进行更有针对性的调试和修改。
具体地,节点的节点信息至少应包括以下内容:节点标题、节点描述、时间戳、节点类型等;进一步地,节点信息中还可以包括该节点信息的日志来源,用于区分该节点信息是在哪一层进行采集的,例如区分是在系统层还是业务封装层采集的。获取模块20在获取所有节点的节点信息时,可至少通过以下两种方式实现:拦截代理方式和/或关键方法交换方式,具体在进行获取节点信息时,可根据各个节点对应的方法选择具体使用哪种方式进行拦截,其中大部分节点均可以通过关键方法交换方式进行节点信息获取,针对用于回调的block较多,无法进行方法交换的节点可以通过拦截代理方式获取相应的节点信息。
获取模块20在通过拦截代理方式获取节点的节点信息时,实际是通过代理模式实现对日志的拦截功能,例如通过代理接口实现对每个节点的方法的调用,并拦截节点的方法在执行时所产生的至少一个日志,该日志中记录有节点相关的执行情况、节点相关信息等内容;在拦截获取到各个节点的日志之后,可对日志内所记录的内容进行关键词匹配,进而映射成节点的节点信息,其中,针对节点信息中的不同内容可对应设置不同的关键词,具体关键词的设置则可根据不同的应用程序或不同的节点进行设置,本实施例不进行限制。
获取模块20在通过关键方法交换方式获取节点的节点信息时,实际上是将节点内的关键方法与测试人员自定义的第二预设方法进行替换,其中第二预设方法至少用于节点信息的采集;当程序执行至已经进行方法替换的节点时,实际执行的代码为第二预设方法的代码,此时第二预设方法会调用节点的原有方法以实现其原有功能,并同时通过自身的节点信息的采集方法对节点执行过程中的节点信息进行采集获取。
利用上述方式获取所有节点的节点信息后,获取模块20可将得到的节点信息按照时间顺序或者执行顺序置入一队列中,在展示模块30展示节点信息时,根据节点信息中的时间戳信息,按照时间顺序依次展示各个节点的节点信息,或者,基于各个节点之间的逻辑关系,按照执行顺序进行节点信息的展示,并于测试人员知悉测试过程和测试结果,并可基于展示出的节点信息进行相应节点的代码调试。在实际使用时,节点信息中包含节点类型,每个不同的节点类型则表征了节点所处的不同逻辑分支,在展示模块30实际展示节点信息时可通过不同颜色来表示不同的节点类型,这样可以使测试人员在查看节点信息时有针对性的优先处理类型为error的节点,对于warning和info的节点可不处理或延迟处理。
本实施例通过在应用内对异常事件进行模拟,并以可视化的效果将各个节点的节点信息进行相应展示,方便测试人员直观地知悉应用中的各个正常流程或异常流程,便于在不影响原有兼容逻辑的情况下进行异常情况处理代码的修改和调试,降低了测试的复杂性和调试成本。
本公开第三实施例提供了一种存储介质,该存储介质可安装于客户端中,客户端中应至少安装有应用程序,该存储介质具体为计算机可读介质,存储有计算机程序,该计算机程序被处理器执行时实现本公开任意实施例提供的方法,包括如下步骤S31至S33:
S31,在应用中模拟异常事件;
S32,获取应用中各节点的节点信息;
S33,展示节点信息。
计算机程序被处理器执行在应用中模拟异常事件时,具体被处理器执行如下步骤:拦截应用的验证请求;将验证请求的返回值设置为验证失败对应的值。
计算机程序被处理器执行在应用中模拟异常事件时,具体被处理器执行如下步骤:将节点的方法的返回值设置为异常值;其中,节点的方法被配置为用于实现节点在应用内的相应功能。
计算机程序被处理器执行将节点的方法的返回值设置为异常值时,具体被处理器执行如下步骤:将节点的方法替换为第一预设方法;通过执行第一预设方法以调用节点的方法,并将节点的方法的返回值调整为异常值。
计算机程序被处理器执行将节点的方法替换为第一预设方法之前,还被处理器执行如下步骤:检测应用的头文件中是否存在节点的方法所归属的第一类;在应用的头文件中存在节点的方法所归属的第一类的情况下,在第一类中定义第一预设方法;在应用的头文件中不存在节点的方法所归属的第一类的情况下,创建第二类,并在第二类中定义第一预设方法。
计算机程序被处理器执行获取应用中各节点的节点信息时,具体被处理器执行如下步骤:通过代理接口对每个节点的方法进行调用,并拦截节点的至少一个日志;对日志进行关键词匹配,以确定节点的节点信息。
计算机程序被处理器执行获取应用中各节点的节点信息时,具体被处理器执行如下步骤:将节点的方法替换为第二预设方法;通过执行第二预设方法以调用节点的方法,并采集节点的节点信息。
计算机程序被处理器执行将节点的方法替换为第二预设方法之前,还被处理器执行如下步骤:检测应用的头文件中是否存在节点的方法所归属的第三类;在应用的头文件中存在节点的方法所归属的第三类的情况下,在第三类中定义第二预设方法;在应用的头文件中不存在节点的方法所归属的第三类的情况下,创建第四类,并在第四类中定义第二预设方法。
计算机程序被处理器执行展示节点信息时,具体被处理器执行如下步骤:基于节点执行的顺序依次展示节点对应的节点信息。
具体地,节点信息至少包括:节点标题、节点描述、时间戳、节点类型。
计算机程序被处理器执行展示节点信息时,具体被处理器执行如下步骤:使用不同颜色展示具有不同节点类型的节点对应的节点信息。
本实施例通过在应用中对异常事件模拟,并以可视化的效果将各个节点的节点信息进行相应展示,方便测试人员直观地知悉应用中的各个正常流程或异常流程,便于在不影响原有兼容逻辑的情况下进行异常情况处理代码的修改和调试,降低了测试的复杂性和调试成本。
本公开的第四实施例提供了一种电子设备,该电子设备可以为任意一种安装有应用程序的设备,其结构示意图如图3所示,至少包括存储器100和处理器200,存储器100上存储有计算机程序,处理器200在执行存储器100上的计算机程序时实现本公开任意实施例提供的方法。示例性的,电子设备计算机程序步骤如下S41至S43:
S41,在应用中模拟异常事件;
S42,获取应用中各节点的节点信息;
S43,展示节点信息。
处理器在执行存储器上存储的在应用中模拟异常事件时,具体执行如下计算机程序:拦截应用的验证请求;将验证请求的返回值设置为验证失败对应的值。
处理器在执行存储器上存储的在应用中模拟异常事件时,具体执行如下计算机程序:将节点的方法的返回值设置为异常值;其中,节点的方法被配置为用于实现节点在应用内的相应功能。
处理器在执行存储器上存储的将节点的方法的返回值设置为异常值时,具体执行如下计算机程序:将节点的方法替换为第一预设方法;通过执行第一预设方法以调用节点的方法,并将节点的方法的返回值调整为异常值。
处理器在执行存储器上存储的将节点的方法替换为第一预设方法之前,还执行如下计算机程序:检测应用的头文件中是否存在节点的方法所归属的第一类;在应用的头文件中存在节点的方法所归属的第一类的情况下,在第一类中定义第一预设方法;在应用的头文件中不存在节点的方法所归属的第一类的情况下,创建第二类,并在第二类中定义第一预设方法。
处理器在执行存储器上存储的获取应用中各节点的节点信息时,具体执行如下计算机程序:通过代理接口对每个节点的方法进行调用,并拦截节点的至少一个日志;对日志进行关键词匹配,以确定节点的节点信息。
处理器在执行存储器上存储的获取应用中各节点的节点信息时,具体执行如下计算机程序:将节点的方法替换为第二预设方法;通过执行第二预设方法以调用节点的方法,并采集节点的节点信息。
处理器在执行存储器上存储的将节点的方法替换为第二预设方法之前,还执行如下计算机程序:检测应用的头文件中是否存在节点的方法所归属的第三类;在应用的头文件中存在节点的方法所归属的第三类的情况下,在第三类中定义第二预设方法;在应用的头文件中不存在节点的方法所归属的第三类的情况下,创建第四类,并在第四类中定义第二预设方法。
处理器在执行存储器上存储的展示节点信息时,具体执行如下计算机程序:基于节点执行的顺序依次展示节点对应的节点信息。
具体地,节点信息至少包括:节点标题、节点描述、时间戳、节点类型。
处理器在执行存储器上存储的展示节点信息时,具体执行如下计算机程序:使用不同颜色展示具有不同节点类型的节点对应的节点信息。
本实施例通过在应用流程中对异常事件模拟,并以可视化的效果将各个节点的节点信息进行相应展示,方便测试人员直观地知悉应用中的各个正常流程或异常流程,便于在不影响原有兼容逻辑的情况下进行异常情况处理代码的修改和调试,降低了测试的复杂性和调试成本。
以上对本公开多个实施例进行了详细说明,但本公开不限于这些具体的实施例,本领域技术人员在本公开构思的基础上,能够做出多种变型和修改实施例,这些变型和修改都应落入本公开所要求保护的范围之内。

Claims (11)

1.一种应用测试方法,其特征在于,包括:
在所述应用中模拟异常事件,在通过交换关键方法的方式模拟所述异常事件的情况下,所述在所述应用中模拟异常事件包括:检测所述应用的头文件中是否存在所述应用中节点的方法所归属的第一类,在所述应用的头文件中存在所述节点的方法所归属的第一类的情况下,在所述第一类中定义第一预设方法;在所述应用的头文件中不存在所述节点的方法所归属的第一类的情况下,创建第二类,并在所述第二类中定义所述第一预设方法;将所述节点的方法替换为所述第一预设方法;通过执行所述第一预设方法以调用所述节点的方法,并将所述节点的方法的返回值调整为异常值,其中,所述节点的方法被配置为用于实现所述节点在所述应用内的相应功能;
获取所述应用中各节点的节点信息;
展示所述节点信息。
2.根据权利要求1所述的测试方法,其特征在于,在通过拦截代理的方式模拟所述异常事件的情况下,所述在所述应用中模拟异常事件,包括:
拦截所述应用的验证请求;
将所述验证请求的返回值设置为验证失败对应的值。
3.根据权利要求1所述的测试方法,其特征在于,所述获取所述应用中各节点的节点信息,包括:
通过代理接口对每个所述节点的方法进行调用,并拦截所述节点的至少一个日志;
对所述日志进行关键词匹配,以确定所述节点的节点信息。
4.根据权利要求3所述的测试方法,其特征在于,所述获取所述应用中各节点的节点信息,包括:
将所述节点的方法替换为第二预设方法;
通过执行所述第二预设方法以调用所述节点的方法,并采集所述节点的节点信息。
5.根据权利要求4所述的测试方法,其特征在于,所述将所述节点的方法替换为第二预设方法之前,还包括:
检测所述应用的头文件中是否存在所述节点的方法所归属的第三类;
在所述应用的头文件中存在所述节点的方法所归属的第三类的情况下,在所述第三类中定义所述第二预设方法;
在所述应用的头文件中不存在所述节点的方法所归属的第三类的情况下,创建第四类,并在所述第四类中定义所述第二预设方法。
6.根据权利要求1所述的测试方法,其特征在于,所述展示所述节点信息,包括:基于所述节点执行的顺序依次展示所述节点对应的所述节点信息。
7.根据权利要求1至6中任一项所述的测试方法,其特征在于,所述节点信息至少包括:
节点标题、节点描述、时间戳、节点类型、日志来源。
8.根据权利要求7所述的测试方法,其特征在于,在展示所述节点信息时,使用不同颜色展示具有不同节点类型的节点对应的节点信息。
9.一种应用测试装置,其特征在于,包括:
模拟模块,用于在应用中模拟异常事件,在通过交换关键方法的方式模拟所述异常事件的情况下,所述在所述应用中模拟异常事件包括:检测所述应用的头文件中是否存在所述应用中节点的方法所归属的第一类,在所述应用的头文件中存在所述节点的方法所归属的第一类的情况下,在所述第一类中定义第一预设方法;在所述应用的头文件中不存在所述节点的方法所归属的第一类的情况下,创建第二类,并在所述第二类中定义所述第一预设方法;将所述节点的方法替换为所述第一预设方法;通过执行所述第一预设方法以调用所述节点的方法,并将所述节点的方法的返回值调整为异常值,其中,所述节点的方法被配置为用于实现所述节点在所述应用内的相应功能;
获取模块,用于获取所述应用中各节点的节点信息;
展示模块,用于展示所述节点信息。
10.一种存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8中任一项所述的应用测试方法的步骤。
11.一种电子设备,至少包括存储器、处理器,所述存储器上存储有计算机程序,其特征在于,所述处理器在执行所述存储器上的计算机程序时实现权利要求1至8中任一项所述的应用测试方法的步骤。
CN202110368089.7A 2021-04-06 2021-04-06 应用测试方法、装置、电子设备及存储介质 Active CN113127345B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110368089.7A CN113127345B (zh) 2021-04-06 2021-04-06 应用测试方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110368089.7A CN113127345B (zh) 2021-04-06 2021-04-06 应用测试方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN113127345A CN113127345A (zh) 2021-07-16
CN113127345B true CN113127345B (zh) 2023-07-14

Family

ID=76774954

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110368089.7A Active CN113127345B (zh) 2021-04-06 2021-04-06 应用测试方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN113127345B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113626239A (zh) * 2021-07-27 2021-11-09 福建天泉教育科技有限公司 一种功能验证方法及终端

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106294106A (zh) * 2015-05-27 2017-01-04 航天信息股份有限公司 Web应用系统的测试方法及装置
CN110427323A (zh) * 2019-07-29 2019-11-08 天津车之家数据信息技术有限公司 一种应用测试方法、装置、代理服务器和系统
CN111176981A (zh) * 2019-12-11 2020-05-19 南京理工大学 Android应用网络相关行为测试方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170300402A1 (en) * 2016-04-19 2017-10-19 Sap Se Mock server and extensions for application testing
CN108733554A (zh) * 2017-04-21 2018-11-02 北京京东尚科信息技术有限公司 Mock方法和装置
CN109634605B (zh) * 2018-12-05 2021-11-02 思必驰科技股份有限公司 用于web前端的模拟数据生成方法及系统
CN109783363A (zh) * 2018-12-14 2019-05-21 深圳壹账通智能科技有限公司 一种异常事件模拟方法和装置、以及计算机设备
CN110362472A (zh) * 2019-05-31 2019-10-22 口碑(上海)信息技术有限公司 Mock测试方法、装置及设备
CN111881041A (zh) * 2020-07-23 2020-11-03 平安付科技服务有限公司 前端应用测试方法、装置、终端设备及存储介质
CN111949551A (zh) * 2020-09-01 2020-11-17 网易(杭州)网络有限公司 应用程序测试方法、装置、设备及存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106294106A (zh) * 2015-05-27 2017-01-04 航天信息股份有限公司 Web应用系统的测试方法及装置
CN110427323A (zh) * 2019-07-29 2019-11-08 天津车之家数据信息技术有限公司 一种应用测试方法、装置、代理服务器和系统
CN111176981A (zh) * 2019-12-11 2020-05-19 南京理工大学 Android应用网络相关行为测试方法

Also Published As

Publication number Publication date
CN113127345A (zh) 2021-07-16

Similar Documents

Publication Publication Date Title
US8613080B2 (en) Assessment and analysis of software security flaws in virtual machines
US8079017B2 (en) Automated QS interface testing framework
US8918885B2 (en) Automatic discovery of system integrity exposures in system code
US7996818B1 (en) Method for testing using client specified references
CN108459850B (zh) 生成测试脚本的方法、装置及系统
CN105787364B (zh) 任务的自动化测试方法、装置及系统
TWI574173B (zh) 決定受測應用程式安全活動之技術
CN111143192A (zh) 接口自动化测试方法、装置以及相关产品
CN109543417B (zh) 一种基于Qemu平台的漏洞挖掘方法和装置
CN110706010B (zh) 计费模型监控方法及其系统、计算机系统及计算机可读介质
US20160275000A1 (en) System and method of automated application screen flow generation for detecting aberration in mobile application
CN113127345B (zh) 应用测试方法、装置、电子设备及存储介质
CN111858375A (zh) 软件测试方法、装置、电子设备和介质
CN110401580A (zh) 基于心跳机制的网页状态监听方法及相关设备
CN111045935B (zh) 版本自动审核方法、装置、设备及存储介质
CN108073499A (zh) 应用程序的测试方法及装置
CN109408361A (zh) Monkey测试复原方法、装置、电子设备及计算机可读存储介质
CN106997322B (zh) 用于自动化测试的方法及设备
CN112882957B (zh) 一种测试任务有效性检查方法和装置
KR101480040B1 (ko) 웹 페이지 변조 식별방법, 시스템 및 컴퓨터로 판독 가능한 기록매체
CN117131545A (zh) 数据处理方法及装置、存储介质、终端
CN109214189B (zh) 识别程序漏洞的方法、装置、存储介质和电子设备
CN115795475A (zh) 软件系统风险的确定方法、装置及电子设备
CN112769609B (zh) 控制故障模拟和模拟故障的方法、系统、介质和产品
CN115269415A (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
GR01 Patent grant
GR01 Patent grant