CN108804271A - 接口容错测试方法及装置 - Google Patents
接口容错测试方法及装置 Download PDFInfo
- Publication number
- CN108804271A CN108804271A CN201810690763.1A CN201810690763A CN108804271A CN 108804271 A CN108804271 A CN 108804271A CN 201810690763 A CN201810690763 A CN 201810690763A CN 108804271 A CN108804271 A CN 108804271A
- Authority
- CN
- China
- Prior art keywords
- interface
- fault
- tolerant networks
- state machine
- returned data
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
- G06F11/221—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test buses, lines or interfaces, e.g. stuck-at or open line faults
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2273—Test methods
Abstract
本发明实施例提供一种接口容错测试方法及装置,涉及计算机应用技术领域。其中,方法,包括:在满足当前测试策略下的更新条件时,更新状态机中的容错方案;劫持接口返回的返回数据;根据所述状态机中当前容错方案来修改所述返回数据,并将修改后的返回数据转发给客户端以进行接口容错测试。采用本发明提供的技术方案能够在测试运行中动态修改容错方案,且实时应用修改后的容错方案,操作简单,测试效率高。
Description
技术领域
本发明实施例涉及计算机应用技术领域,尤其涉及一种接口容错测试方法及装置。
背景技术
客户端在运行过程中,由于服务端服务不稳定或网络不稳定,导致服务端的接口会有很多异常返回,例如:返回数据中部分字段丢失了或返回为空。此时,若客户端没有对这种状态做好保护措施,很容易导致客户端产生崩溃。
因此,测试人员在测试过程中需对接口做一定的容错测试。而现有技术中,在每次测试运行过程中,针对所有的接口只能做一种既定的容错方案的容错测试,若想再做另一种容错方案的容错测试,则需重启测试模块或装置才能让新配置的容错方案生效。可见,现有技术中的接口容错测试方案操作复杂度高,测试效率低下。
发明内容
本发明实施例提供一种接口容错测试方法及装置,用以解决现有技术中操作复杂度高,测试效率低下的问题。
本发明的一个方面提供了一种接口容错测试方法,包括:
在满足当前测试策略下的更新条件时,更新状态机中的容错方案;
劫持接口返回的返回数据;
根据所述状态机中当前容错方案来修改所述返回数据,并将修改后的返回数据转发给客户端以进行接口容错测试。
可选地,上述方法,还包括:当前测试策略为命令注入测试策略时,则监测是否有外部注入的更新指令;
若监测到有外部注入的更新指令,则满足所述更新条件;以及
更新状态机中的容错方案,包括:根据所述更新指令,更新所述状态机中的容错方案。
可选地,上述方法,还包括:当前测试策略为自轮询测试策略时,若监测到自轮询列表中第i个容错方案的执行完成事件,则满足所述更新条件,其中,所述自轮询列表中包括有n个容错方案,n为大于1的整数;以及
更新状态机中的容错方案,包括:若i大于等于1且小于n,则将所述状态机中的容错方案更新为所述自轮询列表中第i+1个容错方案;若i等于n,则将所述状态机中的容错方案更新为所述自轮询列表中第1个容错方案。
可选地,上述方法,还包括:
接收测试策略切换指令;
根据所述测试策略切换指令,切换当前测试策略。
可选地,上述方法,还包括:确定被触发的接口对应的接口名;以及
劫持接口返回的返回数据,包括:若所述接口对应的接口名不在已测接口列表中,则劫持所述接口返回的返回数据。
可选地,上述方法,还包括:将修改后的返回数据转发给客户端后,判断所述接口是否测试完成;
若所述接口未测试完成,则指示触发模块根据所述接口的触发操作路径再次触发所述接口。
可选地,上述方法,还包括:若所述接口测试完成,则将所述接口对应的接口名写入至所述已测接口列表中并指示所述触发模块采用UI遍历方式来触发所述客户端。
可选地,上述方法,所述返回数据中包括至少一个信息项;
根据所述状态机中当前容错方案来修改所述返回数据,包括:根据所述接口对应的已测信息项列表在所述至少一个信息项中确定当前待修改信息项;根据所述状态机中当前容错方案来修改所述当前待修改信息项,以得到修改后的返回数据。
本发明的又一个方面提供了一种接口容错测试装置,包括:
更新模块,用于在满足当前测试策略下的更新条件时,更新状态机中的容错方案;
劫持模块,用于劫持接口返回的返回数据;
修改模块,用于根据所述状态机中当前容错方案来修改所述返回数据,并将修改后的返回数据转发给客户端以进行接口容错测试。
可选地,上述装置,还包括:
第一监测模块,用于当前测试策略为命令注入测试策略时,则监测是否有外部注入的更新指令;若监测到有外部注入的更新指令,则满足所述更新条件;以及
所述更新模块,具体用于:根据所述更新指令,更新所述状态机中的容错方案。
本发明实施例提供的技术方案中,先内置一状态机,将每一种容错方案作为状态机的每一种状态,通过状态机的状态迁移来实现容错方案的更改,后续根据更改后的容错方案进行接口容错测试,测试模块或装置无需重启,更改后的容错方案即可生效。可见,采用本发明提供的技术方案能够在测试运行中动态修改容错方案,且实时应用执行修改后的容错方案,操作简单,测试效率高。
本发明的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了根据本发明一个实施例的接口容错测试方法的流程示意图;
图2示出了本发明一个实施例的自轮询列表的示意图;
图3示出了根据本发明另一个实施例的自轮询列表的示意图;
图4示出了根据本发明一个实施例的接口容错测试装置的框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
在本发明的说明书和权利要求书及上述附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如101、102等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明一实施例提供的接口容错测试方法的流程示意图。如图1所示,该方法包括:
101、在满足当前测试策略下的更新条件时,更新状态机中的容错方案。
102、劫持接口返回的返回数据。
103、根据所述状态机中当前容错方案来修改所述返回数据,并将修改后的返回数据转发给客户端以进行接口容错测试。
在上述步骤101中,测试策略可为一种,或多种。当测试策略为多种时,可根据需要进行测试策略的切换。可采用如下方式实现测试策略的切换:接收测试策略切换指令;根据所述测试策略切换指令,切换当前测试策略。测试策略切换指令可由测试人员触发生成,例如:为测试人员提供一测试策略切换按钮,响应于测试人员对测试策略切换按钮的触发操作,生成测试策略切换指令;或者,为测试人员提供一选择界面,选择界面上显示有多种测试策略选项,根据测试人员选中的测试策略选项生成测试策略切换指令,测试策略切换指令中携带有测试人员选中的测试策略。
此外,每种测试策略对应的更新条件可相同或不相同。本实施例对此不作具体限定,本领域的技术人员可根据项目设计需求进行事先配置。一旦满足当前测试策略下的更新条件,即可更新状态机中的容错方案。
一个客户端(例如:游戏客户端、社交客户端等)可能包括多个应用界面,每个应用界面上会包括多个控件。例如:在测试过程中,客户端通常会随着所触发的控件不断跳转应用界面,即一个控件被触发之后,很可能触发了某一接口,客户端后续根据这个接口返回的返回数据来生成新的应用界面并在客户端进行展示。为了实现接口的容错测试,则需在返回数据传输至客户端之前,执行上述步骤102,即劫持接口返回的返回数据。
在上述步骤103中,根据状态机中当前容错方案来修改返回数据,例如:当当前容错方案为:接口返回为空时,则将所述返回数据替换为Null;当当前容错方案为:接口返回数据中字符串超长,则将所述返回数据中的某一字符串进行超长处理;当当前容错方案为:接口返回数据中删除字符串,则将所述返回数据中的某一字符串进行删除。得到修改后的返回数据后,将修改后的返回数据转发至客户端,以检测客户端在接收到异常返回数据时是否发生崩溃。若未发生崩溃,则说明该接口容错测试通过;若发生崩溃,则说明该接口容错测试未通过,后续工作人员可根据崩溃时产生的崩溃日志来定位问题并进行客户端(例如:应用程序APP)的完善。
本发明实施例提供的技术方案中,先内置一状态机,将每一种容错方案作为状态机的每一种状态,通过状态机的状态迁移来实现容错方案的更改,后续根据更改后的容错方案进行接口容错测试,测试模块或装置无需重启,更改后的容错方案即可生效。可见,采用本发明提供的技术方案能够在测试运行中动态修改容错方案,且实时应用执行修改后的容错方案,操作简单,测试效率高。
状态机中的容错方案可通过两种修改方式进行修改,一是命令注入修改方式;二是自轮询修改方式。上述的测试策略与状态机中容错方案的修改方式一一对应,例如:命令注入修改方式对应的测试策略为命令注入测试策略;自轮询修改方式对应的测试策略为自轮询测试策略。
通过命令注入的方式更新状态机中的容错方案,具体可采用如下方法实现:当前测试策略为命令注入测试策略时,则监测是否有外部注入的更新指令;若监测到有外部注入的更新指令,则满足所述更新条件;根据所述更新指令,更新所述状态机中的容错方案。更新指令可以是人工注入,例如:为测试人员提供一配置界面;根据测试人员在配置界面的配置操作生成并注入更新指令;或者可以是通过外部程序来自动注入,本发明实施例对此不作具体限定。更新指令中携带有新的容错方案,将更新指令中携带的新的容错方案来替换状态机中原有的容错方案。
通过自轮询的方式更新状态机中的容错方案,具体可采用如下方法实现:当前测试策略为自轮询测试策略时,若监测到自轮询列表中第i个容错方案的执行完成事件,则满足所述更新条件,其中,所述自轮询列表中包括有n个容错方案,n为大于1的整数;以及更新状态机中的容错方案,包括:若i大于等于1且小于n,则将所述状态机中的容错方案更新为所述自轮询列表中第i+1个容错方案;若i等于n,则将所述状态机中的容错方案更新为所述自轮询列表中第1个容错方案。自轮询列表中的容错方案以及容错方案的先后顺序可事先自定义设置。
为了方便理解,在本实施例中提供了一个自轮询列表Z1,如图2所示,n=5,五个容错方案从下到上依次排列,列表中的序列号即为各行的容错方案的排列顺序。在一具体实例中,在某个时刻,劫持到某一接口返回的返回数据,并按照状态机中的容错方案(在这个时刻,状态机中的容错方案为自轮询列表中的第2个容错方案:返回404)修改这一接口返回的返回数据,一旦修改完成或一旦将修改后的返回数据转发给客户端,就会触发一相应的执行完成事件,执行完成事件信息中可携带有状态机中当前容错方案和/或其序列号。这时,由于更新条件满足,即可将状态机中的容错方案更新为自轮询列表中的第3个容错方案:删除字符串。在另一具体实例中,某一时刻,状态机中的容错方案为自轮询列表Z1中第5个容错方案:字符串超长,一旦第5个容错方案执行完毕,状态机中的容错方案会被更新为自轮询列表Z1中第1个容错方案。
通常,客户端APP会对应大量的接口,为了避免对某些接口重复进行容错测试导致的测试效率低下问题,可事先生成一个已测接口列表,在每个接口完成测试时,将接口对应的接口名写入至已测接口列表中以进行记录。具体地,上述方法,还包括:确定被触发的接口对应的接口名;以及劫持接口返回的返回数据,包括:若所述接口对应的接口名不在已测接口列表中,则劫持所述接口返回的返回数据。若接口对应的接口名在已测接口列表中则不需要进行容错测试,因此,无需对其返回的返回数据进行劫持。
需要说明的是,接口返回的返回数据中包含至少一个信息项,那么针对至少一个信息项中每个信息项都要分别进行相同容错方案的测试。例如:状态机中的容错方案为字符串超长,接口A的返回数据中包含字符串a=10101;字符串b=10111,接口A触发一次时,只能对字符串a和字符串b中的一个执行超长处理。也就是说,针对一个容错方案,接口A需被触发两次才能完成测试。为了确保同一个接口能够完成测试,触发模块可在首次触发接口时记录下接口的触发操作路径(每个接口对应的触发操作路径的起始操作节点可均为打开首页),例如:打开首页-点击首页中h按钮-双击H界面中j按钮,其中,H界面为点击h按钮后跳转得到的界面。这样,下次触发模块就可根据接口A的触发操作路径再次触发接口A。具体地,上述方法,还包括:将修改后的返回数据转发给客户端后,判断所述接口是否测试完成;若所述接口未测试完成,则指示触发模块根据所述接口的触发操作路径再次触发所述接口。这样可连续去触发同一个接口,使得这个接口完成测试。
进一步的,判断所述接口是否测试完成,可采用如下方式实现:获取所述接口对应的已测信息项列表;若在所述至少一个信息项中存在一个信息项未记录在已测信息项列表中,则判定所述接口未测试完成;若所述至少一个信息项全部记录在已测信息项列表中,则判定所述接口测试完成。
根据所述状态机中当前容错方案来修改所述返回数据,具体地包括:根据所述接口对应的已测信息项列表在所述至少一个信息项中确定当前待修改信息项;根据所述状态机中当前容错方案来修改所述当前待修改信息项,以得到修改后的返回数据。例如:接口A的返回数据中包含字符串a=10101和字符串b=10111,已测信息项列表中记录有字符串a,则可确定当前待修改信息项为字符串b,若当前容错方案为:删除字符串,则删除返回数据中的字符串b,得到的修改后的返回数据仅包括:字符串a=10101。
在自轮询测试策略下,返回数据中的任一信息项需分别按照自轮询列表中的全部容错方案进行修改处理后,才能算该信息项完成测试。因此,上述方法,还包括:在得到修改后的返回数据后,将当前容错方案记录至当前待修改信息项对应的已测容错方案列表中,再获取当前待修改信息项对应的已测容错方案列表;若自轮询列表中的所有容错方案均记录在当前待修改信息项对应的已测容错方案列表中,则将当前待修改信息项记录至所述已测信息项列表中。
在本实施例中,根据所述接口对应的已测信息项列表在所述至少一个信息项中确定当前待修改信息项,包括:根据所述接口对应的已侧信息项列表确定至少一个未完成测试信息项(未完成测试信息项包括未测试过的信息项和测试过但未完成测试的信息项);若至少一个未完成测试信息项中不存在已测试过但未完成测试的信息项,则随机选取其中一个作为当前待修改信息项;若至少一个未完成测试信息项中存在一个已测试过但未完成测试的信息项,则将已测试过但未完成测试的信息项作为当前待修改信息项。具体实施时,可根据各未完成测试信息项对应的已测容错方案列表来确定,例如:已测容错方案列表不为空的信息项即为已测试过但未完成测试的信息项;已测容错方案列表为空的信息项即为为测试过的信息项
在一种可实现的方案中,为了能够将客户端APP的所有接口都能测试到,可采用UI遍历方式来触发客户端。具体地,上述方法,还包括:若所述接口测试完成,则将所述接口对应的接口名写入至所述已测接口列表中并指示所述触发模块采用UI遍历方式来触发所述客户端。
在另一种可实现的方案中,考虑到同一操作路径可能会同时触发多个接口,且可能存在某些接口只能通过一个操作路径进行触发,避免遗漏某些接口。可根据已测接口列表,将同一操作路径同时触发的多个接口中未测试完成接口的接口名写入待测已触发接口列表中。在待测已触发接口列表中选中当前待测的接口;确定当前待测的接口对应的接口名。在这个接口测试完成后,指示触发模块根据操作路径再次触发这几个接口,再对这几个接口中的下一个接口进行测试,直至这几个接口均测试完成。具体地,上述方法,还包括:若接口测试完成,则将所述接口对应的接口名写入至所述已测接口列表中,并在待测已触发接口列表中删除所述接口对应的接口名;若待测已触发接口列表中还存在待测已触发接口;则指示触发模块根据所述待测已触发接口的触发操作路径再次触发所述待测已触发接口。若待测已触发接口列表中不存在待测已触发接口,则指示所述触发模块采用UI遍历方式来触发所述客户端。
本实施例中,上述确定被触发的接口对应的接口名的步骤,包括:确定被触发的多个接口;根据已测接口列表在所述被触发的多个接口中确定至少一个未完成测试的接口(未完成测试的接口包括未测试过的接口和测试过但未完成测试的接口);将至少一个未完成测试的接口对应的接口名写入至待测已触发接口列表中;在待测已触发接口列表中优先选择被测试过但未完成测试的接口,若待测已触发接口列表中不存在被测试过但未完成测试的接口,则从中随机选择一个未测试过的接口;确定最终选择的接口对应的接口名。需要说明的是,触发模块在每次触发后,待测已触发接口列表都会被更新。
下面将简要介绍自轮询测试策略下的遍历测试方法,该方法包括:
201、若监测到自轮询列表中第i个容错方案的执行完成事件,若i大于等于1且小于n,则将所述状态机中的容错方案更新为所述自轮询列表中第i+1个容错方案;若i等于n,则将所述状态机中的容错方案更新为所述自轮询列表中第1个容错方案,其中,所述自轮询列表中包括有n个容错方案,n为大于1的整数。
202、确定触发模块当前所触发的接口对应的接口名。
203、若所述接口对应的接口名不在已测接口列表中,则劫持所述接口返回的返回数据。
204、根据所述接口对应的已测信息项列表在所述接口数据所包含的至少一个信息项中确定当前待修改信息项。
205、根据所述状态机中当前容错方案来修改所述当前待修改信息项,以得到修改后的返回数据,将修改后的返回数据转发至客户端以进行接口容错测试。步骤205完成后,会生成一执行完成事件,则再次执行步骤201使得状态机中的容错方案更新为自轮询列表中下一个容错方案,同时执行下述步骤206。
206、在将修改后的返回数据转发至客户端后,将当前容错方案记录至当前待修改信息项对应的已测容错方案列表中,再获取当前待修改信息项对应的已测容错方案列表。
207、若自轮询列表中的所有容错方案均记录在当前待修改信息项对应的已测容错方案列表中,则将当前待修改信息项记录至所述已测信息项列表中。
208、获取接口对应的已测信息项列表;若在接口返回的返回数据中的至少一个信息项中存在一个信息项未记录在已测信息项列表中,则判定所述接口未测试完成;若所述至少一个信息项全部记录在已测信息项列表中,则判定所述接口测试完成。
209、若所述接口未测试完成,则指示触发模块根据所述接口的触发操作路径再次触发所述接口。若所述接口测试完成,则将所述接口对应的接口名写入至所述已测接口列表中并指示所述触发模块采用UI遍历方式来触发所述客户端的下一个控件。触发之后,返回至步骤202。
循环执行上述步骤201-209,直至UI遍历结束。需要说明的是,上述步骤可参照上述各实施例中相应内容,再次不再赘述。
为了方便理解,下面将以具体实例来解释说明:如图3所示,自轮询列表Z2包括第1个容错方案:非法字符;第2个容错方案:返回404。在测试开始时,可执行初始化处理,使得状态机中的容错方案初始化为自轮询列表中第1个容错方案:非法字符。触发模块通过UI遍历方式触发了一条操作路径L,同时触发了接口A、接口B,确定接口A、接口B的接口名,并在已测接口列表中未查找到接口A、接口B对应的接口名,因此,接口A、接口B均为首次触发。随机选择接口A进行测试,劫持接口A返回的返回数据JA,JA包括字符串a=10101和字符串b=10111。接口A对应的已侧信息项列表为空,则说明接口A任一字符串均未完成测试,则选取JA中的字符串a,作为当前待修改信息项。状态机中当前容错方案为:非法字符(例如:中文),因此,将字符串a=10101修改为字符串a=张,即将字符串a的值修改为“张”。修改后的JA包括字符串a=张,字符串b=10111,将修改后的JA返回给客户端以进行接口容错测试。由于第1个容错方案已执行完成,则将状态机中的容错方案更新为第2个容错方案:返回404。将第1个容错方案记录至字符串a对应的已测容错方案列表中。字符串a对应的已侧容错方案列表中仅记录了第1个容错方案,因此,无需将字符串a记录至接口A对应的已测信息项列表中。接口A对应的已侧信息项列表为空,则判定接口A未测试完成,指示触发模块根据接口A对应的操作路径L再次触发接口A以对接口A的字符串a进行第2个容错方案修改,在对字符串a进行第2个容错方案修改后,字符串a的已测容错方案列表中就包含了自轮询列表Z2的所有容错方案,因此,可将字符串a记录至接口A对应的已测信息项列表中。继续指示触发模块触发接口A以完成接口A的测试。接口A测试完成后,继续指示触发模块按照操作路径L触发接口B进行测试。在接口B测试完成后,指示触发模块按照UI遍历方式触发客户端,这样就可对其他接口进行测试。
本发明又一实施例还提供了一种接口容错测试装置。如图4所示,该装置,包括:更新模块401、劫持模块402和修改模块403。其中,更新模块401,用于在满足当前测试策略下的更新条件时,更新状态机中的容错方案;劫持模块402,用于劫持接口返回的返回数据;修改模块403,用于根据所述状态机中当前容错方案来修改所述返回数据,并将修改后的返回数据转发给客户端以进行接口容错测试。
上述装置,还包括:第一监测模块,用于当前测试策略为命令注入测试策略时,则监测是否有外部注入的更新指令;若监测到有外部注入的更新指令,则满足所述更新条件;以及所述更新模块,具体用于:根据所述更新指令,更新所述状态机中的容错方案。
上述装置,还包括:
第二监测模块,用于当前测试策略为自轮询测试策略时,若监测到自轮询列表中第i个容错方案的执行完成事件,则满足所述更新条件,其中,所述自轮询列表中包括有n个容错方案,n为大于1的整数;以及
所述更新模块,具体用于:若i大于等于1且小于n,则将所述状态机中的容错方案更新为所述自轮询列表中第i+1个容错方案;若i等于n,则将所述状态机中的容错方案更新为所述自轮询列表中第1个容错方案。
上述装置,还包括:
接收模块,用于接收测试策略切换指令;
切换模块,用于根据所述测试策略切换指令,切换当前测试策略。
上述装置,还包括:确定模块,用于确定被触发的接口对应的接口名;以及劫持模块,具体用于:若所述接口对应的接口名不在已测接口列表中,则劫持所述接口返回的返回数据。
上述装置,还包括:判断模块,用于将修改后的返回数据转发给客户端后,判断所述接口是否测试完成;指示模块,用于若所述接口未测试完成,则指示触发模块根据所述接口的触发操作路径再次触发所述接口。
上述装置,还包括:所述指示模块,还用于:若所述接口测试完成,则将所述接口对应的接口名写入至所述已测接口列表中并指示所述触发模块采用UI遍历方式来触发所述客户端。
上述装置,所述返回数据中包括至少一个信息项;所述修改模块,具体用于:根据所述接口对应的已测信息项列表在所述至少一个信息项中确定当前待修改信息项;根据所述状态机中当前容错方案来修改所述当前待修改信息项,以得到修改后的返回数据。
本发明实施例提供的技术方案中,先内置一状态机,将每一种容错方案作为状态机的每一种状态,通过状态机的状态迁移来实现容错方案的更改,后续根据更改后的容错方案进行接口容错测试,测试模块或装置无需重启,更改后的容错方案即可生效。可见,采用本发明提供的技术方案能够在测试运行中动态修改容错方案,且实时应用执行修改后的容错方案,操作简单,测试效率高。
需要说明的是,本实施例提供的接口容错测试装置可实现上述各接口容错测试方法实施例提供的技术方案,具体的实现原理可参见上述各实施例中的相应内容,此处不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种接口容错测试方法,其特征在于,包括:
在满足当前测试策略下的更新条件时,更新状态机中的容错方案;
劫持接口返回的返回数据;
根据所述状态机中当前容错方案来修改所述返回数据,并将修改后的返回数据转发给客户端以进行接口容错测试。
2.根据权利要求1所述的方法,其特征在于,还包括:当前测试策略为命令注入测试策略时,则监测是否有外部注入的更新指令;
若监测到有外部注入的更新指令,则满足所述更新条件;以及
更新状态机中的容错方案,包括:根据所述更新指令,更新所述状态机中的容错方案。
3.根据权利要求1所述的方法,其特征在于,还包括:当前测试策略为自轮询测试策略时,若监测到自轮询列表中第i个容错方案的执行完成事件,则满足所述更新条件,其中,所述自轮询列表中包括有n个容错方案,n为大于1的整数;以及
更新状态机中的容错方案,包括:若i大于等于1且小于n,则将所述状态机中的容错方案更新为所述自轮询列表中第i+1个容错方案;若i等于n,则将所述状态机中的容错方案更新为所述自轮询列表中第1个容错方案。
4.根据权利要求1-3中任一项所述的方法,其特征在于,还包括:
接收测试策略切换指令;
根据所述测试策略切换指令,切换当前测试策略。
5.根据权利要求1-3中任一项所述的方法,其特征在于,还包括:确定被触发的接口对应的接口名;以及
劫持接口返回的返回数据,包括:若所述接口对应的接口名不在已测接口列表中,则劫持所述接口返回的返回数据。
6.根据权利要求5所述的方法,其特征在于,还包括:将修改后的返回数据转发给所述客户端后,判断所述接口是否测试完成;
若所述接口未测试完成,则指示触发模块根据所述接口的触发操作路径再次触发所述接口。
7.根据权利要求6所述的方法,其特征在于,还包括:若所述接口测试完成,则将所述接口对应的接口名写入至所述已测接口列表中并指示所述触发模块采用UI遍历方式来触发所述客户端。
8.根据权利要求6所述的方法,其特征在于,所述返回数据中包括至少一个信息项;
根据所述状态机中当前容错方案来修改所述返回数据,包括:根据所述接口对应的已测信息项列表在所述至少一个信息项中确定当前待修改信息项;根据所述状态机中当前容错方案来修改所述当前待修改信息项,以得到修改后的返回数据。
9.一种接口容错测试装置,其特征在于,包括:
更新模块,用于在满足当前测试策略下的更新条件时,更新状态机中的容错方案;
劫持模块,用于劫持接口返回的返回数据;
修改模块,用于根据所述状态机中当前容错方案来修改所述返回数据,并将修改后的返回数据转发给客户端以进行接口容错测试。
10.根据权利要求9所述的装置,其特征在于,还包括:
第一监测模块,用于当前测试策略为命令注入测试策略时,则监测是否有外部注入的更新指令;若监测到有外部注入的更新指令,则满足所述更新条件;以及
所述更新模块,具体用于:根据所述更新指令,更新所述状态机中的容错方案。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810690763.1A CN108804271A (zh) | 2018-06-28 | 2018-06-28 | 接口容错测试方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810690763.1A CN108804271A (zh) | 2018-06-28 | 2018-06-28 | 接口容错测试方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108804271A true CN108804271A (zh) | 2018-11-13 |
Family
ID=64072384
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810690763.1A Pending CN108804271A (zh) | 2018-06-28 | 2018-06-28 | 接口容错测试方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108804271A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110597706A (zh) * | 2019-08-02 | 2019-12-20 | 贝壳技术有限公司 | 一种用于应用程序接口数据异常测试的方法和装置 |
CN111352610A (zh) * | 2020-03-03 | 2020-06-30 | 五八有限公司 | 接口返回值修改方法、装置、电子设备及存储介质 |
CN111555940A (zh) * | 2020-04-28 | 2020-08-18 | 北京字节跳动网络技术有限公司 | 客户端的测试方法、装置、电子设备及计算机可读存储介质 |
CN112131093A (zh) * | 2019-06-24 | 2020-12-25 | 腾讯科技(深圳)有限公司 | 一种基于混沌测试的测试用例自动生成方法和装置 |
Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0710910A2 (en) * | 1994-11-03 | 1996-05-08 | Motorola, Inc. | Integrated test and measurement means and method employing a graphical user interface |
US20020124217A1 (en) * | 2000-12-07 | 2002-09-05 | Fujitsu Limited | Testing apparatus and testing method for an integrated circuit, and integrated circuit |
CN1503168A (zh) * | 2002-11-22 | 2004-06-09 | 深圳市中兴通讯股份有限公司 | 一种系统产品的自动化测试方法 |
CN1519721A (zh) * | 2003-01-23 | 2004-08-11 | 英业达股份有限公司 | 可动态扩充的计算机测试系统及其方法 |
US20050044418A1 (en) * | 2003-07-25 | 2005-02-24 | Gary Miliefsky | Proactive network security system to protect against hackers |
CN1787461A (zh) * | 2004-12-06 | 2006-06-14 | 华为技术有限公司 | 一种使用状态机测试网元接口的方法 |
US20070240114A1 (en) * | 2006-03-30 | 2007-10-11 | Ugs Corp. | Testing Transformed Interfaces |
CN102609357A (zh) * | 2012-02-17 | 2012-07-25 | 浙江大学 | 符合autosar标准自动化测试的测试案例动态构建方法 |
CN104461865A (zh) * | 2014-11-04 | 2015-03-25 | 哈尔滨工业大学 | 云环境下分布式文件系统可靠性测试套件 |
CN105005509A (zh) * | 2015-07-07 | 2015-10-28 | 北京大学 | 一种基于运行时模型的云计算容错机制配置方法 |
CN105227411A (zh) * | 2015-11-16 | 2016-01-06 | 北京京东尚科信息技术有限公司 | 测试接口的方法、网络代理和系统 |
CN105760299A (zh) * | 2016-02-18 | 2016-07-13 | 云南电网有限责任公司电力科学研究院 | 一种基于智能变电站全自动脚本测试方法 |
CN105988928A (zh) * | 2015-03-02 | 2016-10-05 | 腾讯科技(深圳)有限公司 | 终端应用的测试方法及移动终端 |
CN106648945A (zh) * | 2016-09-30 | 2017-05-10 | 北京金山安全软件有限公司 | 一种接口数据测试方法、装置及电子设备 |
CN106681656A (zh) * | 2016-11-16 | 2017-05-17 | 南京云创大数据科技股份有限公司 | 一种动态可调的云存储系统容错方法 |
CN106909498A (zh) * | 2015-12-22 | 2017-06-30 | 阿里巴巴集团控股有限公司 | 一种Java程序注入故障的方法和系统 |
CN107729231A (zh) * | 2017-09-19 | 2018-02-23 | 北京东土科技股份有限公司 | 一种基于操作系统的故障注入方法及装置 |
-
2018
- 2018-06-28 CN CN201810690763.1A patent/CN108804271A/zh active Pending
Patent Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0710910A2 (en) * | 1994-11-03 | 1996-05-08 | Motorola, Inc. | Integrated test and measurement means and method employing a graphical user interface |
US20020124217A1 (en) * | 2000-12-07 | 2002-09-05 | Fujitsu Limited | Testing apparatus and testing method for an integrated circuit, and integrated circuit |
CN1503168A (zh) * | 2002-11-22 | 2004-06-09 | 深圳市中兴通讯股份有限公司 | 一种系统产品的自动化测试方法 |
CN1519721A (zh) * | 2003-01-23 | 2004-08-11 | 英业达股份有限公司 | 可动态扩充的计算机测试系统及其方法 |
US20050044418A1 (en) * | 2003-07-25 | 2005-02-24 | Gary Miliefsky | Proactive network security system to protect against hackers |
CN1787461A (zh) * | 2004-12-06 | 2006-06-14 | 华为技术有限公司 | 一种使用状态机测试网元接口的方法 |
US20070240114A1 (en) * | 2006-03-30 | 2007-10-11 | Ugs Corp. | Testing Transformed Interfaces |
CN102609357A (zh) * | 2012-02-17 | 2012-07-25 | 浙江大学 | 符合autosar标准自动化测试的测试案例动态构建方法 |
CN104461865A (zh) * | 2014-11-04 | 2015-03-25 | 哈尔滨工业大学 | 云环境下分布式文件系统可靠性测试套件 |
CN105988928A (zh) * | 2015-03-02 | 2016-10-05 | 腾讯科技(深圳)有限公司 | 终端应用的测试方法及移动终端 |
CN105005509A (zh) * | 2015-07-07 | 2015-10-28 | 北京大学 | 一种基于运行时模型的云计算容错机制配置方法 |
CN105227411A (zh) * | 2015-11-16 | 2016-01-06 | 北京京东尚科信息技术有限公司 | 测试接口的方法、网络代理和系统 |
CN106909498A (zh) * | 2015-12-22 | 2017-06-30 | 阿里巴巴集团控股有限公司 | 一种Java程序注入故障的方法和系统 |
CN105760299A (zh) * | 2016-02-18 | 2016-07-13 | 云南电网有限责任公司电力科学研究院 | 一种基于智能变电站全自动脚本测试方法 |
CN106648945A (zh) * | 2016-09-30 | 2017-05-10 | 北京金山安全软件有限公司 | 一种接口数据测试方法、装置及电子设备 |
CN106681656A (zh) * | 2016-11-16 | 2017-05-17 | 南京云创大数据科技股份有限公司 | 一种动态可调的云存储系统容错方法 |
CN107729231A (zh) * | 2017-09-19 | 2018-02-23 | 北京东土科技股份有限公司 | 一种基于操作系统的故障注入方法及装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112131093A (zh) * | 2019-06-24 | 2020-12-25 | 腾讯科技(深圳)有限公司 | 一种基于混沌测试的测试用例自动生成方法和装置 |
CN110597706A (zh) * | 2019-08-02 | 2019-12-20 | 贝壳技术有限公司 | 一种用于应用程序接口数据异常测试的方法和装置 |
CN111352610A (zh) * | 2020-03-03 | 2020-06-30 | 五八有限公司 | 接口返回值修改方法、装置、电子设备及存储介质 |
CN111555940A (zh) * | 2020-04-28 | 2020-08-18 | 北京字节跳动网络技术有限公司 | 客户端的测试方法、装置、电子设备及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108804271A (zh) | 接口容错测试方法及装置 | |
CN106033393B (zh) | 一种应用程序测试方法及系统以及移动终端 | |
CN109857668A (zh) | Ui自动化功能测试方法、测试装置、测试设备及存储介质 | |
CN105656688B (zh) | 状态控制方法和装置 | |
CN105468529B (zh) | 一种安卓应用ui控件精准遍历方法和装置 | |
CN104049848B (zh) | 应用提醒方法、装置、客户端及电子设备 | |
CN108027720A (zh) | 可视化内容开发 | |
CN107943707A (zh) | 行为树的测试方法、装置和存储介质以及终端 | |
CN106326125B (zh) | 一种测试用例生成方法 | |
CN104136086B (zh) | 信息处理系统、信息处理方法以及信息处理设备 | |
CN110083541A (zh) | 游戏测试方法、装置、计算机存储介质和电子设备 | |
CN109189374A (zh) | 基于对象引用链的对象构造代码生成方法及系统 | |
CN109876445A (zh) | 一种基于行为树的高解耦引导方法及系统 | |
CN107707986A (zh) | 一种在直播软件的开发中模拟弹幕消息的方法及装置 | |
CN110287088A (zh) | 一种基于动态ui模型的自动化测试方法 | |
CN107908420A (zh) | 一种代码处理方法、装置及系统 | |
CN113778890B (zh) | 代码测试方法、装置、电子设备及存储介质 | |
CN107273112A (zh) | 一种礼物榜单信息显示方法及装置 | |
CN108654088A (zh) | 程序调试方法和装置、存储介质及电子装置 | |
CN107562619A (zh) | 一种基于神经元模型的自动遍历控件方法及终端 | |
CN107943378A (zh) | 数据自动采集的方法和装置 | |
CN110752964A (zh) | 一种网络设备的测试方法及装置 | |
CN112131112B (zh) | 操作信息的获取方法和装置、存储介质及电子设备 | |
CN110333999A (zh) | 一种用于手机客户端进行测试环境切换的方法 | |
CN115237422A (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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20210315 Address after: 101300 309, 3rd floor, 60 Fuqian 1st Street, Tianzhu District, Shunyi District, Beijing Applicant after: Beijing longzhixin Technology Co.,Ltd. Address before: 100041 room 120, 4th floor, building 17, yard 30, Shixing street, Shijingshan District, Beijing Applicant before: BEIJING PANDA MUTUAL ENTERTAINMENT TECHNOLOGY Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20181113 |
|
WD01 | Invention patent application deemed withdrawn after publication |