CN110245086B - 应用程序稳定性测试方法、装置及设备 - Google Patents

应用程序稳定性测试方法、装置及设备 Download PDF

Info

Publication number
CN110245086B
CN110245086B CN201910532642.9A CN201910532642A CN110245086B CN 110245086 B CN110245086 B CN 110245086B CN 201910532642 A CN201910532642 A CN 201910532642A CN 110245086 B CN110245086 B CN 110245086B
Authority
CN
China
Prior art keywords
code
interference
page
application program
test
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
CN201910532642.9A
Other languages
English (en)
Other versions
CN110245086A (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 ByteDance Network Technology Co Ltd
Original Assignee
Beijing ByteDance 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 ByteDance Network Technology Co Ltd filed Critical Beijing ByteDance Network Technology Co Ltd
Priority to CN201910532642.9A priority Critical patent/CN110245086B/zh
Publication of CN110245086A publication Critical patent/CN110245086A/zh
Application granted granted Critical
Publication of CN110245086B publication Critical patent/CN110245086B/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/3604Software analysis for verifying properties of programs
    • 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
    • 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)
  • Software Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

本公开实施例提供一种应用程序稳定性测试方法、装置及设备,该方法包括:在应用程序的第一页面对应的页面代码中设置测试代码,所述测试代码用于改变显示所述第一页面时的代码执行逻辑;在电子设备显示所述第一页面的过程中,执行所述测试代码,得到所述应用程序的实际响应结果;根据所述实际响应结果和所述测试代码对应的期望响应结果,确定所述应用程序的稳定性。提高了对应用程序的稳定性测试的准确性。

Description

应用程序稳定性测试方法、装置及设备
技术领域
本公开实施例涉及计算机技术领域,尤其涉及一种应用程序稳定性测试方法、装置及设备。
背景技术
应用程序的稳定性是指,在应用程序的部分模块或者功能运行出错时,应用程序是否能够进行正确的应对,正确的应对包括容错处理、降级处理、生成提示信息等。
目前,在应用程序上线之前,通常对应用程序进行试使用,以判断应用程序的各个模块或者功能是否可以正常运行,并在各个模块或者功能运行出错时,获取应用程序的响应,由人工根据应用程序的响应对应用程序的稳定性进行预估。然而,在对应用程序进行试使用的过程中,应用程序出错的概率较小,使得人工无法对应用程序的稳定性进行准确的预估,导致对应用程序的稳定性测试的准确性较差。
发明内容
本公开实施例提供一种应用程序稳定性测试方法、装置及设备,提高了对应用程序的稳定性测试的准确性。
第一方面,本公开实施例提供一种应用程序稳定性测试方法,其特征在于,包括:
在应用程序的第一页面对应的页面代码中设置测试代码,所述测试代码用于改变显示所述第一页面时的代码执行逻辑;
在电子设备显示所述第一页面的过程中,执行所述测试代码,得到所述应用程序的实际响应结果;
根据所述实际响应结果和所述测试代码对应的期望响应结果,确定所述应用程序的稳定性。
在一种可能的实施方式中,所述测试代码包括至少一条干扰代码和逻辑控制代码;在电子设备显示所述第一页面的过程中,执行所述测试代码,得到所述应用程序的实际响应结果,包括:
根据所述逻辑控制代码,在所述至少一条干扰代码中确定目标干扰代码;
在电子设备显示所述第一页面的过程中,执行所述目标干扰代码,得到所述应用程序的实际响应结果。
在一种可能的实施方式中,根据所述实际响应结果和所述测试代码对应的期望响应结果,确定所述应用程序的稳定性,包括:
根据所述实际响应结果和所述目标干扰代码对应的期望响应结果,确定所述应用程序的稳定性。
在一种可能的实施方式中,在应用程序的第一页面对应的页面代码中设置测试代码,包括:
在所述页面代码中获取干扰策略,所述干扰策略用于指示对所述第一页面的显示进行干扰的方式;
根据所述干扰策略,在所述页面代码中设置所述测试代码。
在一种可能的实施方式中,所述干扰策略中包括策略标识和初始干扰指令;根据所述干扰策略,在所述页面代码中设置所述测试代码,包括:
根据所述干扰策略中的所述初始干扰指令确定所述干扰代码,并在所述页面代码中设置所述干扰代码;
根据所述策略标识,生成所述逻辑控制代码,并在所述页面代码中设置所述逻辑控制代码,逻辑控制代码用于控制所述干扰代码被执行。
在一种可能的实施方式中,根据所述干扰策略中的所述初始干扰指令确定所述干扰代码,包括:
判断所述初始干扰指令中的最后一个字符是否为预设字符;
若是,则将所述初始干扰指令确定为所述干扰代码;
若否,则在所述初始干扰指令中添加预设指令,得到所述干扰代码。
在一种可能的实施方式中,在所述页面代码中获取干扰策略,包括:
获取所述干扰策略的格式;
根据所述干扰策略的格式,在所述页面代码中获取所述干扰策略。
在一种可能的实施方式中,根据所述干扰策略,在所述页面代码中设置所述测试代码之前,还包括:
对所述干扰策略进行转义处理,转义处理后的所述干扰策略为所述电子设备可识别的策略。
第二方面,本公开实施例提供一种应用程序稳定性测试装置,包括设置模块、执行模块和确定模块,其中,
所述设置模块用于,在应用程序的第一页面对应的页面代码中设置测试代码,所述测试代码用于改变显示所述第一页面时的代码执行逻辑;
所述执行模块用于,在电子设备显示所述第一页面的过程中,执行所述测试代码,得到所述应用程序的实际响应结果;
所述确定模块用于,根据所述实际响应结果和所述测试代码对应的期望响应结果,确定所述应用程序的稳定性。
在一种可能的实施方式中,所述测试代码包括至少一条干扰代码和逻辑控制代码;所述执行模块具体用于:
根据所述逻辑控制代码,在所述至少一条干扰代码中确定目标干扰代码;
在电子设备显示所述第一页面的过程中,执行所述目标干扰代码,得到所述应用程序的实际响应结果。
在一种可能的实施方式中,所述确定模块具体用于:
根据所述实际响应结果和所述目标干扰代码对应的期望响应结果,确定所述应用程序的稳定性。
在一种可能的实施方式中,所述设置模块具体用于:
在所述页面代码中获取干扰策略,所述干扰策略用于指示对所述第一页面的显示进行干扰的方式;
根据所述干扰策略,在所述页面代码中设置所述测试代码。
在一种可能的实施方式中,所述干扰策略中包括策略标识和初始干扰指令;所述设置模块具体用于:
根据所述干扰策略中的所述初始干扰指令确定所述干扰代码,并在所述页面代码中设置所述干扰代码;
根据所述策略标识,生成所述逻辑控制代码,并在所述页面代码中设置所述逻辑控制代码,逻辑控制代码用于控制所述干扰代码被执行。
在一种可能的实施方式中,所述设置模块具体用于:
判断所述初始干扰指令中的最后一个字符是否为预设字符;
若是,则将所述初始干扰指令确定为所述干扰代码;
若否,则在所述初始干扰指令中添加预设指令,得到所述干扰代码。
在一种可能的实施方式中,所述设置模块具体用于:
获取所述干扰策略的格式;
根据所述干扰策略的格式,在所述页面代码中获取所述干扰策略。
在一种可能的实施方式中,所述装置还包括转义模块,其中,
所述转义模块用于,在所述设置模块根据所述干扰策略,在所述页面代码中设置所述测试代码之前,对所述干扰策略进行转义处理,转义处理后的所述干扰策略为所述电子设备可识别的策略。
第三方面,本公开实施例提供一种电子设备,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如第一方面任一项所述的应用程序稳定性测试方法。
第四方面,本公开实施例提供一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如第一方面任一项所述的应用程序稳定性测试方法。
本公开实施例提供的应用程序稳定性测试方法、装置及设备,在应用程序的页面的代码中添加测试代码后,在电子设备显示该页面的过程中,当该页面的代码中的测试代码被执行时,页面对应的代码执行逻辑被改变,进而对页面的显示造成干扰,可以获取测试代码被执行时应用程序的实际响应,还可以预设测试代码被执行时期望应用程序响应的期望响应结果,根据测试代码对应的期望响应结果和该实际响应结果可以准确的确定应用程序的稳定性,提高了对应用程序的稳定性测试的准确性。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1A为本公开实施例提供的一种应用场景示意图;
图1B为本公开实施例提供的另一种应用场景示意图;
图2为本公开实施例提供的一种应用程序稳定性测试方法的流程示意图;
图3为本公开实施例提供的另一种应用程序稳定性测试方法的流程示意图;
图4为本公开实施例提供的设置测试代码的过程示意图;
图5为本公开实施例提供的一种应用程序稳定性测试装置的结构示意图;
图6为本公开实施例提供的另一种应用程序稳定性测试装置的结构示意图;
图7为本公开实施例提供的电子设备的结构示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
图1A为本公开实施例提供的一种应用场景示意图。请参见图1A,在终端设备(例如,手机、电脑、电视等设备)中安装待测试的应用程序(下文简称应用程序),应用程序中包括多个页面,终端设备可以对应用程序的多个页面进行显示。例如,终端设备可以在用户的操作下,对应用程序中的页面进行显示。
图1B为本公开实施例提供的另一种应用场景示意图。请参见图1B,包括终端设备101和应用程序服务器102(下文简称服务器)。服务器中设置有待测试的应用程序(下文简称应用程序),应用程序中包括多个页面。终端设备可以通过浏览器等程序访问应用程序中的页面,例如,终端设备可以向服务器发送页面请求,服务器向终端设备发送终端设备请求的页面的代码,以使终端设备根据页面的代码进行页面显示。
在上述任意一个应用场景中,应用程序的代码中包括多个页面对应的代码,一个页面对应的代码中可以包括页面代码和测试代码。页面代码为用于进行正常页面显示的代码,测试代码为为了对应用程序进行测试而在页面代码中添加的代码,测试代码可以改变显示页面时的代码执行逻辑,以使得应用程序显示页面时出错。可选的,应用程序的代码中还可以包括其它代码,例如,对应用程序的启动进行控制的代码、多个页面中的代码需要共同调用的代码等。在上述过程中,在应用程序的页面的代码中添加测试代码后,在终端设备显示该页面的过程中,当该页面的代码中的测试代码被执行时,页面对应的代码执行逻辑被改变,进而对页面的显示造成干扰,可以获取测试代码被执行时应用程序的实际响应,还可以预设测试代码被执行时期望应用程序响应的期望响应结果,根据测试代码对应的期望响应结果和该实际响应结果可以准确的确定应用程序的稳定性。
下面,通过具体实施例对本申请所示的技术方案进行详细说明。需要说明的是,下面几个具体实施例可以相互结合,对于相同或相似的内容,在不同的实施例中不再进行重复说明。
图2为本公开实施例提供的一种应用程序稳定性测试方法的流程示意图。请参见图2,该方法可以包括:
S201、在应用程序的第一页面对应的页面代码中设置测试代码,测试代码用于改变显示第一页面时的代码执行逻辑。
可选的,本公开实施例的执行主体可以为电子设备,也可以为设置在电子设备中的应用程序稳定性测试装置。可选的,电子设备可以为手机、电脑、电视、服务器等设备。可选的,应用程序稳定性测试装置可以通过软件实现,也可以通过软件和硬件的结合实现。
可选的,应用程序为待测试的应用程序。第一页面可以为应用程序中的任意一个页面。第一页面为前端页面,即,在可以在用户设备(例如手机、电脑等设备)中进行显示的页面。
需要说明的是,在对应用程序进行测试时,可以在应用程序的多个页面中设置测试代码,并根据该多个页面的显示对应用程序进行测试。每个页面中设置的测试代码可以相同,也可以不同。根据每个页面的显示对应用程序的测试过程相同,本公开实施例以根据第一页面的显示对应用程序的测试过程为例进行说明。
可选的,可以通过如下可行的实现方式在应用程序的第一页面对应的页面代码中设置测试代码:在应用程序的编写过程中,在编写第一页面对应的页面代码时,在第一页面对应的页面代码中添加干扰策略,在编译应用程序时,根据干扰策略生成测试代码。例如,干扰策略可以为混沌(chaos策略)。
其中,干扰策略用于指示对页面显示进行干扰的方式。例如,对页面显示进行干扰的方式包括:在页面显示的过程中通过代码抛出异常,在页面显示的过程中调用其它页面中的函数,在页面显示过程中提前返回(执行return指令)。
可选的,一个干扰策略中可以指示一种或多种干扰方式,还可以控制在页面显示的过程中通过该一种或多种干扰方式对页面显示造成干扰。例如,干扰策略可以控制在该一种或多种干扰方式中随机选择一种干扰方式对页面显示造成干扰,或者,干扰策略可以控制在该一种或多种干扰方式中选择指定的一种干扰方式对页面显示造成干扰等。
例如,干扰策略可以指示干扰方式1、干扰方式2和干扰方式3,在页面显示过程中,干扰策略可以在干扰方式1、干扰方式2和干扰方式3中随机选择一种干扰方式对页面显示造成干扰,或者,干扰策略可以在干扰方式1、干扰方式2和干扰方式3中选择指定的一种干扰方式对页面显示造成干扰,或者,干扰策略还可以选择不对页面显示造成干扰等。
可选的,可以通过人工的方式在第一页面对应的页面代码中插入干扰策略。也可以设置添加策略和干扰策略,以使电子设备根据添加策略在第一页面对应的页面代码中添加干扰策略。可选的,添加策略可以包括页面标识、函数标识、插入位置等。例如,添加策略中包括页面1、函数1、第10行,则电子设备可以根据该添加策略,在页面1对应的页面代码中的函数1的第10行添加干扰策略。
需要说明的是,在图3所示的实施例中,对在应用程序的第一页面对应的页面代码中设置测试代码的过程进行详细说明,此处不再进行赘述。
需要说明的是,在应用程序的编译阶段执行S201所示的过程。
S202、在电子设备显示第一页面的过程中,执行测试代码,得到应用程序的实际响应结果。
电子设备可以通过执行第一页面对应的页面代码实现对第一页面的显示。例如,请参见图1A,电子设备中安装有应用程序,电子设备可以在本地获取应用程序中第一页面对应的页面代码,并执行第一页面对应的页面代码以实现显示第一页面。例如,请参见图1B,电子设备中未安装有应用程序,电子设备可以向服务器发送页面请求,以获取第一页面对应的页面代码,并执行第一页面对应的页面代码以实现显示第一页面。
在电子设备显示第一页面的过程中,测试代码被执行,以改变显示第一页面的代码执行逻辑。在第一页面的代码执行逻辑被改变之后,获取应用程序的实际响应结果。
可选的,可以获取应用程序的执行日志,根据执行日志判断测试代码是否被执行、以及根据执行日志获取应用程序的实际响应结果。
可选的,应用程序的实际响应结果可以包括退出应用程序、生成提示信息、返回上一个页面、跳转到其它页面、存储第一页面中的用户数据、应用程序卡死(例如显示在固定的页面,且无法响应用户的操作)等。
S203、根据实际响应结果和测试代码对应的期望响应结果,确定应用程序的稳定性。
其中,期望响应结果为应用程序的稳定性较高时的、应用程序的响应结果。
可选的,可以预先设置测试代码对应的期望响应结果。
例如,假设测试代码对页面显示的干扰方式为抛出异常,则该测试代码对应的期望响应结果为生成提示信息,例如提示用户进行数据保存等,以防止用户数据出现丢失。例如,假设测试代码对页面显示的干扰方式为调用一个第一页面中不包括的控件的执行函数,则该测试代码对应的期望响应结果为不响应。
可选的,可以获取实际响应结果的响应类型和期望响应结果的响应类型,并实际响应结果的响应类型和期望响应结果的响应类型,确定应用程序的稳定性。例如,当实际响应结果的响应类型和期望响应结果的响应类型相同时,则确定应用程序的稳定性较高,当实际响应结果的响应类型和期望响应结果的响应类型不相同时,则确定应用程序的稳定性较低。
可选的,可以对应用程序中的多个页面按照图2实施例所示的方法进行多次测试,并根据多次测试的测试结果确定应用程序的稳定性。例如,若多次测试结果均指示应用程序的稳定性较高,则可以确定应用程序的稳定性较高。
可选的,可以通过稳定系数表示应用程序的稳定性。例如,可以通过0至1之间的数据表示应用程序的稳定性,该稳定系数越大,说明应用程序的稳定性越高。
本公开实施例提供的应用程序稳定性测试方法,在应用程序的页面的代码中添加测试代码后,在电子设备显示该页面的过程中,当该页面的代码中的测试代码被执行时,页面对应的代码执行逻辑被改变,进而对页面的显示造成干扰,可以获取测试代码被执行时应用程序的实际响应,还可以预设测试代码被执行时期望应用程序响应的期望响应结果,根据测试代码对应的期望响应结果和该实际响应结果可以准确的确定应用程序的稳定性,提高了对应用程序的稳定性测试的准确性。
在上述任意一个实施例的基础上,下面,结合图3,对应用程序的稳定性测试方法进行说明。
图3为本公开实施例提供的另一种应用程序稳定性测试方法的流程示意图。请参见图3,该方法可以包括:
S301、在页面代码中获取干扰策略,干扰策略用于指示对页面代码进行干扰的方式。
可选的,干扰策略可以为预先设置在页面代码中。干扰策略可以被预先设置在页面代码中的任意一行。
干扰策略通常满足预设的格式。例如,当干扰策略为chaos策略时,干扰策略的格式可以为:@chaos+name[-|value|value|…]。
其中,@chaos为干扰策略的前缀,该前缀可以指示代码为干扰策略。name为干扰策略的标识,当干扰策略的标识不同时,干扰策略对应的逻辑控制代码可能不同,可以根据实际需要设置name,在进行日志记录(例如,console打印)时,可以根据name确定执行的干扰策略。“-”为预设初始干扰指令(或者称为特殊值),在该初始干扰指令被执行时不对页面显示造成干扰,可选的,还可以通过其它符号表示该预设初始干扰指令。value为初始干扰指令,value表示的初始干扰指令执行时对页面显示造成干扰,一个干扰策略中可以包括一个或多个初始干扰指令。
可选的,可以通过如下可行的实现方式在页面代码中获取干扰策略:获取干扰策略的格式,根据干扰策略的格式,在页面代码中获取干扰策略。
例如,假设干扰策略的格式为@chaos+name[-|value|value|…]时,可以先根据干扰策略的前缀@chaos,在页面代码中查找干扰策略,在查找到@chaos之后,再按照上述策略的格式,在页面代码中确定干扰策略。
S302、对干扰策略进行转义处理。
其中,转义处理后的干扰策略为电子设备可识别的策略。即,转义处理后的干扰策略对应的代码为电子设备可识别、可处理的代码。
可选的,可以通过babel插件对干扰策略进行babel解析,以实现将干扰策略按照预设规则转换成电子设备可以识别、可处理的代码。
S303、根据干扰策略中的初始干扰指令确定至少一条干扰代码,并在页面代码中设置至少一条干扰代码。
可选的,可以先在干扰策略中获取初始干扰指令,并根据初始干扰指令确定干扰代码。
可选的,针对干扰策略中的任意一个初始干扰指令,可以通过如下可行的实现方式确定该初始干扰指令对应的干扰代码:判断初始干扰指令中的最后一个字符是否为预设字符;若是,则将初始干扰指令确定为干扰代码;若否,则在初始干扰指令中添加预设指令,得到干扰代码。
当一个初始干扰指令中的最后一个字符为预设字符时,说明该干扰代码为一个完整的代码句,在该种情况下,可以直接将该初始干扰指令确定为干扰代码。
可选的,预设字符可以包括:“、”、“,”、“)”等,当然,预设字符还可以包括其它,本公开实施例对此不作具体限定。
当一个初始干扰指令中的最后一个字符不是预设字符时,说明该干扰代码不是一个完整的代码句,为了得到一个可被执行的干扰代码,可以在初始干扰指令中添加预设指令,以得到干扰代码。例如,预设指令可以为return。例如,假设一个初始干扰指令为false,则可以在该初始干扰指令前加return指令,得到可被执行的干扰代码return false。例如,假设一个初始干扰指令为5008,则可以在该初始干扰指令前加return指令,得到可被执行的干扰代码return 5008。
可选的,在得到干扰代码之后,可以在页面代码中、干扰策略所在的位置上添加干扰代码。
S304、根据策略标识,生成逻辑控制代码,并在页面代码中设置逻辑控制代码。
其中,逻辑控制代码用于控制所述干扰代码被执行。
可选的,逻辑控制代码可以为判断指令,在判断指令对应的判断条件被满足时,执行对应的干扰代码。
示例1,假设逻辑控制代码用于指定干扰代码1被执行,则逻辑控制代码可以如下:
Figure BDA0002100213800000111
通过设置上述逻辑控制代码,可以使得干扰代码1被执行。
示例2,假设逻辑控制代码用于指示干扰代码1被随机执行,则逻辑控制代码可以如下所示:
Figure BDA0002100213800000112
通过设置上述逻辑控制代码,可以使得num为0至5之间的随机数,当num为2时,则使得干扰代码1被执行。
S305、在电子设备显示第一页面的过程中,根据逻辑控制代码,在至少一条干扰代码中确定目标干扰代码。
可选的,假设逻辑控制代码用于指定干扰代码被执行,则逻辑控制代码指定的干扰代码为目标干扰代码。例如,假设逻辑控制代码如S304中的示例1所示,则目标干扰代码为干扰代码1。
可选的,假设逻辑控制代码用于指示至少一个干扰代码被随机执行,则根据逻辑控制代码的实际运行情况确定目标干扰代码。
例如,假设第一页面中包括三个干扰代码,分别记为干扰代码1、干扰代码2和干扰代码3,假设逻辑控制代码如下所示:
Figure BDA0002100213800000121
由上可知,当随机数num为0时,目标干扰代码为干扰代码1,当随机数num为1时,目标干扰代码为干扰代码2,当随机数num为2时,目标干扰代码为干扰代码3。
S306、执行目标干扰代码,得到应用程序的实际响应结果。
S307、根据实际响应结果和目标干扰代码对应的期望响应结果,确定应用程序的稳定性。
需要说明的是,S306-S307的执行过程可以参见S202-S203的执行过程,此处不再进行赘述。
在图3所示的实施例中,在应用程序的页面的代码中添加测试代码后,在电子设备显示该页面的过程中,当该页面的代码中的测试代码被执行时,页面对应的代码执行逻辑被改变,进而对页面的显示造成干扰,可以获取测试代码被执行时应用程序的实际响应,还可以预设测试代码被执行时期望应用程序响应的期望响应结果,根据测试代码对应的期望响应结果和该实际响应结果可以准确的确定应用程序的稳定性,提高了对应用程序的稳定性测试的准确性。
在上述任意一个实施例的基础上,下面,结合图4,通过具体示例对上述方法实施例所示的技术方案进行详细说明。
图4为本公开实施例提供的设置测试代码的过程示意图。在对应用程序进行编译时,根据干扰策略的格式,在页面1的代码中查找干扰策略,获取得到的干扰策略如下:@chaos+name1[-|干扰代码1|干扰代码2|],通过babel插件对该干扰策略进行转义处理,得到电子设备可识别以及可处理的代码。根据该干扰策略中的策略标识1,生成对应的逻辑控制代码,并将逻辑控制代码和干扰代码添加至页面代码中,添加逻辑控制代码和干扰代码后的页面代码如图4所示。
在测试过程中,在电子设备显示页面1的过程中,生成随机数num,并根据num的值确定目标干扰代码。
假设num的值为0,则确定目标干扰代码为空,即,不对页面1的显示造成干扰。
假设num的值为1,则确定目标干扰代码为干扰代码1,则执行目标干扰代码1。在执行完干扰代码1之后,获取应用程序的实际响应结果,并判断该实际响应结果与干扰代码1对应的期望响应结果是否一致。
假设num的值为2,则确定目标干扰代码为干扰代码2,则执行目标干扰代码2。在执行完干扰代码2之后,获取应用程序的实际响应结果,并判断该实际响应结果与干扰代码2对应的期望响应结果是否一致。
重复上述过程,或者在应用程序显示其它页面时进行类似上述过程的测试,若多数实际响应结果与对应的期望响应结果一致,则确定应用程序的稳定性较高,否则,则确定应用程序的稳定性较低。
在上述过程中,在应用程序的页面的代码中添加测试代码后,在电子设备显示该页面的过程中,当该页面的代码中的测试代码被执行时,页面对应的代码执行逻辑被改变,进而对页面的显示造成干扰,可以获取测试代码被执行时应用程序的实际响应,还可以预设测试代码被执行时期望应用程序响应的期望响应结果,根据测试代码对应的期望响应结果和该实际响应结果可以准确的确定应用程序的稳定性,提高了对应用程序的稳定性测试的准确性。
图5为本公开实施例提供的一种应用程序稳定性测试装置的结构示意图。请参见图5,该应用程序稳定性测试装置10可以包括设置模块11、执行模块12和确定模块13,其中,
所述设置模块11用于,在应用程序的第一页面对应的页面代码中设置测试代码,所述测试代码用于改变显示所述第一页面时的代码执行逻辑;
所述执行模块12用于,在电子设备显示所述第一页面的过程中,执行所述测试代码,得到所述应用程序的实际响应结果;
所述确定模块13用于,根据所述实际响应结果和所述测试代码对应的期望响应结果,确定所述应用程序的稳定性。
本公开实施例提供的应用程序稳定性测试装置可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
在一种可能的实施方式中,所述测试代码包括至少一条干扰代码和逻辑控制代码;所述执行模块12具体用于:
根据所述逻辑控制代码,在所述至少一条干扰代码中确定目标干扰代码;
在电子设备显示所述第一页面的过程中,执行所述目标干扰代码,得到所述应用程序的实际响应结果。
在一种可能的实施方式中,所述确定模块13具体用于:
根据所述实际响应结果和所述目标干扰代码对应的期望响应结果,确定所述应用程序的稳定性。
在一种可能的实施方式中,所述设置模块11具体用于:
在所述页面代码中获取干扰策略,所述干扰策略用于指示对所述第一页面的显示进行干扰的方式;
根据所述干扰策略,在所述页面代码中设置所述测试代码。
在一种可能的实施方式中,所述干扰策略中包括策略标识和初始干扰指令;所述设置模块11具体用于:
根据所述干扰策略中的所述初始干扰指令确定所述干扰代码,并在所述页面代码中设置所述干扰代码;
根据所述策略标识,生成所述逻辑控制代码,并在所述页面代码中设置所述逻辑控制代码,逻辑控制代码用于控制所述干扰代码被执行。
在一种可能的实施方式中,所述设置模块11具体用于:
判断所述初始干扰指令中的最后一个字符是否为预设字符;
若是,则将所述初始干扰指令确定为所述干扰代码;
若否,则在所述初始干扰指令中添加预设指令,得到所述干扰代码。
在一种可能的实施方式中,所述设置模块11具体用于:
获取所述干扰策略的格式;
根据所述干扰策略的格式,在所述页面代码中获取所述干扰策略。
图6为本公开实施例提供的另一种应用程序稳定性测试装置的结构示意图。在图5所示实施例的基础上,请参见图6,应用程序稳定性测试装置还包括转义模块14,其中,
所述转义模块14用于,在所述设置模块11根据所述干扰策略,在所述页面代码中设置所述测试代码之前,对所述干扰策略进行转义处理,转义处理后的所述干扰策略为所述电子设备可识别的策略。
本公开实施例提供的应用程序稳定性测试装置可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
图7为本公开实施例提供的电子设备的结构示意图。电子设备20可以为终端设备或服务器。其中,终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、个人数字助理(Personal Digital Assistant,简称PDA)、平板电脑(Portable AndroidDevice,简称PAD)、便携式多媒体播放器(Portable Media Player,简称PMP)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图7示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
请参见图7,电子设备20可以包括处理装置(例如中央处理器、图形处理器等)21,其可以根据存储在只读存储器(Read Only Memory,简称ROM)22中的程序或者从存储装置28加载到随机访问存储器(Random Access Memory,简称RAM)23中的程序而执行各种适当的动作和处理。在RAM 23中,还存储有电子设备20操作所需的各种程序和数据。处理装置21、ROM 22以及RAM 23通过总线24彼此相连。输入/输出(I/O)接口25也连接至总线24。
通常,以下装置可以连接至I/O接口25:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置26;包括例如液晶显示器(Liquid CrystalDisplay,简称LCD)、扬声器、振动器等的输出装置27;包括例如磁带、硬盘等的存储装置28;以及通信装置29。通信装置29可以允许电子设备20与其他设备进行无线或有线通信以交换数据。虽然图7示出了具有各种装置的电子设备20,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置29从网络上被下载和安装,或者从存储装置28被安装,或者从ROM22被安装。在该计算机程序被处理装置21执行时,执行本公开实施例的方法中限定的上述功能。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备执行上述实施例所示的方法。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LocalArea Network,简称LAN)或广域网(Wide Area Network,简称WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。
最后应说明的是:以上各实施例仅用以说明本公开实施例的技术方案,而非对其限制;尽管参照前述各实施例对本公开实施例进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本公开实施例方案的范围。

Claims (9)

1.一种应用程序稳定性测试方法,其特征在于,包括:
在应用程序的第一页面对应的页面代码中设置测试代码,所述测试代码用于改变显示所述第一页面时的代码执行逻辑;所述测试代码包括至少一条干扰代码和逻辑控制代码;
根据所述逻辑控制代码,在所述至少一条干扰代码中确定目标干扰代码;
在电子设备显示所述第一页面的过程中,执行所述目标干扰代码,得到所述应用程序的实际响应结果;
根据所述实际响应结果和所述测试代码对应的期望响应结果,确定所述应用程序的稳定性;
在应用程序的第一页面对应的页面代码中设置测试代码,包括:
在所述页面代码中获取干扰策略,所述干扰策略用于指示对所述第一页面的显示进行干扰的方式;
根据所述干扰策略,在所述页面代码中设置所述测试代码。
2.根据权利要求1所述的方法,其特征在于,根据所述实际响应结果和所述测试代码对应的期望响应结果,确定所述应用程序的稳定性,包括:
根据所述实际响应结果和所述目标干扰代码对应的期望响应结果,确定所述应用程序的稳定性。
3.根据权利要求1所述的方法,其特征在于,所述干扰策略中包括策略标识和初始干扰指令;根据所述干扰策略,在所述页面代码中设置所述测试代码,包括:
根据所述干扰策略中的所述初始干扰指令确定所述干扰代码,并在所述页面代码中设置所述干扰代码;
根据所述策略标识,生成所述逻辑控制代码,并在所述页面代码中设置所述逻辑控制代码,逻辑控制代码用于控制所述干扰代码被执行。
4.根据权利要求3所述的方法,其特征在于,根据所述干扰策略中的所述初始干扰指令确定所述干扰代码,包括:
判断所述初始干扰指令中的最后一个字符是否为预设字符;
若是,则将所述初始干扰指令确定为所述干扰代码;
若否,则在所述初始干扰指令中添加预设指令,得到所述干扰代码。
5.根据权利要求1、3-4任一项所述的方法,其特征在于,在所述页面代码中获取干扰策略,包括:
获取所述干扰策略的格式;
根据所述干扰策略的格式,在所述页面代码中获取所述干扰策略。
6.根据权利要求1、3-4任一项所述的方法,其特征在于,根据所述干扰策略,在所述页面代码中设置所述测试代码之前,还包括:
对所述干扰策略进行转义处理,转义处理后的所述干扰策略为所述电子设备可识别的策略。
7.一种应用程序稳定性测试装置,其特征在于,包括设置模块、执行模块和确定模块,其中,
所述设置模块用于,在应用程序的第一页面对应的页面代码中设置测试代码,所述测试代码用于改变显示所述第一页面时的代码执行逻辑;所述测试代码包括至少一条干扰代码和逻辑控制代码;
所述执行模块用于,根据所述逻辑控制代码,在所述至少一条干扰代码中确定目标干扰代码;在电子设备显示所述第一页面的过程中,执行所述目标干扰代码,得到所述应用程序的实际响应结果;
所述确定模块用于,根据所述实际响应结果和所述测试代码对应的期望响应结果,确定所述应用程序的稳定性;
所述设置模块具体用于:
在所述页面代码中获取干扰策略,所述干扰策略用于指示对所述第一页面的显示进行干扰的方式;
根据所述干扰策略,在所述页面代码中设置所述测试代码。
8.一种电子设备,其特征在于,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如权利要求1-6任一项所述的应用程序稳定性测试方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如权利要求1-6任一项所述的应用程序稳定性测试方法。
CN201910532642.9A 2019-06-19 2019-06-19 应用程序稳定性测试方法、装置及设备 Active CN110245086B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910532642.9A CN110245086B (zh) 2019-06-19 2019-06-19 应用程序稳定性测试方法、装置及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910532642.9A CN110245086B (zh) 2019-06-19 2019-06-19 应用程序稳定性测试方法、装置及设备

Publications (2)

Publication Number Publication Date
CN110245086A CN110245086A (zh) 2019-09-17
CN110245086B true CN110245086B (zh) 2023-05-16

Family

ID=67888150

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910532642.9A Active CN110245086B (zh) 2019-06-19 2019-06-19 应用程序稳定性测试方法、装置及设备

Country Status (1)

Country Link
CN (1) CN110245086B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102511037A (zh) * 2010-08-10 2012-06-20 国际商业机器公司 用于自动测试web应用的方法和系统
CN104504336A (zh) * 2014-12-30 2015-04-08 大连楼兰科技股份有限公司 防止嵌入式系统被恶意在线调试的方法和装置
CN107590066A (zh) * 2016-07-08 2018-01-16 广州市动景计算机科技有限公司 应用程序的测试方法、设备及可编程设备
CN107784203A (zh) * 2016-08-25 2018-03-09 大连楼兰科技股份有限公司 利用代码自判断芯片加密信息防止在线调试的方法及系统
CN108197024A (zh) * 2017-12-28 2018-06-22 深圳Tcl数字技术有限公司 嵌入式浏览器调试方法、调试终端及计算机可读存储介质
CN109522201A (zh) * 2017-09-18 2019-03-26 北京京东尚科信息技术有限公司 一种应用程序稳定性测试的方法和装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060143689A1 (en) * 2004-12-21 2006-06-29 Docomo Communications Laboratories Usa, Inc. Information flow enforcement for RISC-style assembly code

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102511037A (zh) * 2010-08-10 2012-06-20 国际商业机器公司 用于自动测试web应用的方法和系统
CN104504336A (zh) * 2014-12-30 2015-04-08 大连楼兰科技股份有限公司 防止嵌入式系统被恶意在线调试的方法和装置
CN107590066A (zh) * 2016-07-08 2018-01-16 广州市动景计算机科技有限公司 应用程序的测试方法、设备及可编程设备
CN107784203A (zh) * 2016-08-25 2018-03-09 大连楼兰科技股份有限公司 利用代码自判断芯片加密信息防止在线调试的方法及系统
CN109522201A (zh) * 2017-09-18 2019-03-26 北京京东尚科信息技术有限公司 一种应用程序稳定性测试的方法和装置
CN108197024A (zh) * 2017-12-28 2018-06-22 深圳Tcl数字技术有限公司 嵌入式浏览器调试方法、调试终端及计算机可读存储介质

Also Published As

Publication number Publication date
CN110245086A (zh) 2019-09-17

Similar Documents

Publication Publication Date Title
CN110362488B (zh) 一种页面测试方法、装置、电子设备及存储介质
CN110865852B (zh) 网页组件的加载方法、装置、电子设备、及存储介质
WO2021147455A1 (zh) 消息处理方法、装置及电子设备
CN113835992B (zh) 内存泄露的处理方法、装置、电子设备及计算机存储介质
CN110659210A (zh) 一种信息获取方法、装置、电子设备及存储介质
CN109739582B (zh) 函数调用方法、装置、电子设备和计算机可读存储介质
CN104268472A (zh) 还原被第三方动态库修改函数地址的方法和装置
CN107133169B (zh) 应用测试包生成方法及生成装置
CN110245086B (zh) 应用程序稳定性测试方法、装置及设备
CN110674050A (zh) 内存越界检测方法、装置、电子设备及计算机存储介质
CN111506904A (zh) 漏洞在线修复的方法和装置
CN110908882A (zh) 一种应用程序的性能分析方法、装置、终端设备及介质
CN112379967B (zh) 模拟器检测方法、装置、设备及介质
CN114185805A (zh) 一种埋点验证方法、装置、设备及存储介质
CN110674491B (zh) 用于安卓应用的实时取证的方法、装置和电子设备
CN111258797B (zh) 一种内存泄露的检测方法、装置、介质和电子设备
CN114328215A (zh) 测试数据部署方法、装置、设备、可读存储介质及产品
CN112306683A (zh) 一种函数劫持方法、装置、介质和电子设备
CN111209739A (zh) 电子表单、电子表单的校验方法、电子设备、及存储介质
CN111210271B (zh) 识别表单作弊的方法、装置、电子设备、及存储介质
CN111506299B (zh) 前端数据验证方法、装置和计算机设备
CN113760706B (zh) 网页调试方法及装置
CN111562913B (zh) 视图组件的预创建方法、装置、设备及计算机可读介质
CN111367555B (zh) 断言的方法、装置、电子设备及计算机可读介质
CN117667588A (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