CN115509918A - 一种软件测试方法、装置、电子设备及存储介质 - Google Patents
一种软件测试方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115509918A CN115509918A CN202211192496.8A CN202211192496A CN115509918A CN 115509918 A CN115509918 A CN 115509918A CN 202211192496 A CN202211192496 A CN 202211192496A CN 115509918 A CN115509918 A CN 115509918A
- Authority
- CN
- China
- Prior art keywords
- interface
- target
- operation chain
- chain
- user
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
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
技术领域
本发明涉及计算机应用技术领域,特别是涉及一种软件测试方法、装置、电子设备及存储介质。
背景技术
计算机软件,如APP(Application,应用程序),的迭代升级通常是通过增加后端接口或改进原先的接口来实现。为了保证升级后软件的可用性和稳定性,通常需要对升级后的软件进行测试。
现有的软件测试方式通常是由测试人员编写大量测试用例来对升级后软件的各个接口功能进行测试。但这种测试方式需要测试人员对使用的测试用例进行编写,而人工编写测试用例容易出现不合实际的数据,导致需要进行重复测试,使得软件测试效率较低。
发明内容
本发明实施例的目的在于提供一种软件测试方法、装置、电子设备及存储介质,以提高软件测试效率。具体技术方案如下:
在本发明实施的第一方面,首先提供了一种软件测试方法,所述方法包括:
获取目标操作链;所述目标操作链为预先基于终端设备运行软件过程中对各接口的调用行为得到的;所述目标操作链包括目标接口以及各所述目标接口的调用顺序;
基于所述目标操作链,按照所述调用顺序调用各所述目标接口;
获取基于各所述目标接口被调用后返回的结果得到的软件测试结果。
在一种可能的实现方式中,针对各个接口均预设操作链标识;
所述获取目标操作链,包括:从预设操作日志库中获取目标操作链;所述操作日志库按照以下步骤预先建立:
针对各个用户,确定该用户预设时间段内的操作行为中调用的各接口以及所述各接口的调用顺序;
针对所述各个用户,将所述各接口中对应同一操作链标识的接口,按照所述调用顺序排列,得到各所述操作链标识对应的操作链;
针对所述各个用户,存储所述操作链。
在一种可能的实现方式中,所述存储所述操作链,包括:将所述操作链标识与所述操作链对应存储;
所述获取目标操作链,包括:
获取待测试接口的接口信息;所述接口信息包括针对所述待测试接口预设的操作链标识;
基于所述待测试接口的接口信息,从所述操作日志库中获取目标操作链。
在一种可能的实现方式中,所述软件测试结果为监控***基于各所述目标接口被调用后返回的结果得到的。
在一种可能的实现方式中,所述获取基于各所述目标接口被调用后返回的结果得到的软件测试结果,包括:
获取并显示各所述目标接口被调用后返回的结果;
获取针对各所述目标接口被调用后返回的结果输入的软件测试结果。
在本发明实施的第二方面,还提供了一种软件测试装置,所述装置包括:
抽取模块,用于获取目标操作链;所述目标操作链为预先基于终端设备运行软件过程中对各接口的调用行为得到的;所述目标操作链包括目标接口以及各所述目标接口的调用顺序;
调用模块,用于基于所述目标操作链,按照所述调用顺序调用各所述目标接口;
测试结果获取模块,用于获取基于各所述目标接口被调用后返回的结果得到的软件测试结果。
在一种可能的实现方式中,针对各个接口均预设操作链标识;
所述获取目标操作链,包括:从预设操作日志库中获取目标操作链;所述操作日志库按照以下步骤预先建立:
针对各个用户,确定该用户预设时间段内的操作行为中调用的各接口以及所述各接口的调用顺序;
针对所述各个用户,将所述各接口中对应同一操作链标识的接口,按照所述调用顺序排列,得到各所述操作链标识对应的操作链;
针对所述各个用户,存储所述操作链。
在一种可能的实现方式中,所述存储所述操作链,包括:将所述操作链标识与所述操作链对应存储;
所述获取目标操作链,包括:
获取待测试接口的接口信息;所述接口信息包括针对所述待测试接口预设的操作链标识;
基于所述待测试接口的接口信息,从所述操作日志库中获取目标操作链。
本发明实施还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述任一所述的软件测试方法步骤。
在本发明实施的又一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述的软件测试方法。
在本发明实施的又一方面,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的软件测试方法。
本发明实施例提供的软件测试方法,获取目标操作链;所述目标操作链为预先基于终端设备运行软件过程中对各接口的调用行为得到的;所述目标操作链包括目标接口以及各所述目标接口的调用顺序;基于所述目标操作链,按照所述调用顺序调用各所述目标接口;获取基于各所述目标接口被调用后返回的结果得到的软件测试结果。应用本发明实施例,通过预先基于用户使用软件的过程中操作终端设备产生的对各接口的调用行为得到操作链,再基于操作链调用接口,来对各接口功能进行测试,由于测试用例无需人工编写,而是基于真实的用户操作终端设备产生的对各接口的调用行为预先得到,提高了测试用例的可靠性,避免由于测试用例不合理导致的重复测试,从而提高软件测试效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本发明实施例中提供的软件测试方法的一种流程图;
图2为本发明实施例中建立操作日志库的一种流程图;
图3为本发明实施例中提供的软件测试方法的又一种流程图;
图4为本发明实施例中提供的软件测试方法的又一种流程图;
图5为本发明实施例中提供的软件测试装置的一种结构示意图;
图6为本发明实施例中提供的电子设备的一种结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
现有技术中通常通过以下方式对更新后的软件进行测试:方式1,由测试人员定期回归测试或重新编写大量测试用例进行线上测试,并通过接口监控的方式监控接口状态。方式2、使用Nginx(一种高性能的HTTP和反向代理的web服务器)的mirror模块对软件中的实时流量进行复制,得到实时流量中包含的接口请求信息,对软件的接口进行测试。
但方式1中,测试使用的测试用例需要专人编写与维护,人工成本较高,且测试用例需要人工编写,因此可能会出现不合理的测试用例,影响接口测试效果,导致软件测试效率低。且接口监控的方式一般监控的是单独接口的成功率,并不能保证整个访问链处处畅通。方式2中,需要专门人员配置Nginx,而Nginx配置难度较大,也需要较高的人工成本,且Nginx的mirror模块实现流量复制会影响软件中的实时流量,即会影响软件的正常使用,且不可对相同流量进行多次请求来排查软件中的问题,也不可通过流量回放来复现线上问题。
为了解决以上问题,本发明提供了一种软件测试方法、装置、电子设备及存储介质。下面首先对本发明提供的软件测试方法进行示例性说明。
如图1所示,图1为本发明实施例提供的软件测试方法的一种流程图,具体可以包括以下步骤:
步骤S110、获取目标操作链;所述目标操作链为预先基于终端设备运行软件过程中对各接口的调用行为得到的;所述目标操作链包括目标接口以及各所述目标接口的调用顺序;
步骤S120、基于所述目标操作链,按照所述调用顺序调用各所述目标接口;
步骤S130、获取基于各所述目标接口被调用后返回的结果得到的软件测试结果。
本发明实施例提供的软件测试方法,获取目标操作链;所述目标操作链为预先基于终端设备运行软件过程中对各接口的调用行为得到的;所述目标操作链包括目标接口以及各所述目标接口的调用顺序;基于所述目标操作链,按照所述调用顺序调用各所述目标接口;获取基于各所述目标接口被调用后返回的结果得到的软件测试结果。应用本发明实施例,通过预先基于用户使用软件的过程中操作终端设备产生的对各接口的调用行为得到操作链,再基于操作链调用接口,来对各接口功能进行测试,由于测试用例无需人工编写,而是基于真实的用户在实际使用软件过程中操作终端设备产生的对各接口的调用行为预先得到,提高了测试用例的可靠性,避免由于测试用例不合理导致的重复测试,从而提高软件测试效率。
另外,应用本发明实施例,由于无需人工编写大量测试用例,降低了人工成本。其次,按照目标操作链调用各个接口进行测试,可以保证服务的整个调用链顺畅。再有,应用本发明实施例,无需配置Nginx,降低软件测试人工成本,且上述操作链为预先基于用户操作终端设备产生的对各接口的调用行为得到,即是通过异步采集的方式获取操作链,并不会对正在进行的线上服务产生影响,且可以对同一操作链进行多次请求来排查软件中的问题,也可以重复使用同一操作链来复现线上问题。
下面对上述步骤S110-S130进行示例性说明:
本发明实施例提供的软件测试方法可以应用于任意具有软件测试功能的电子设备中。上述电子设备可以是服务器,计算机等等。且本发明实施例提供的软件测试方法可以应用于灰度测试或预发布环境等等测试环境中,对将要上线的代码或者重构代码等进行验证,本发明对此不做具体限定。
步骤S110中,一次可以获取一个或多个目标操作链,各目标操作链中均包括目标接口以及各目标接口的调用顺序。不同目标操作链中可以包含不同的目标接口,也可以包含相同的目标接口,但各目标接口的调用顺序不同。
例如,目标操作链1中包含接口A、B、C,且三个接口的调用顺序为A-B-C,目标操作链2中同样包含接口A、B、C,且三个接口的调用顺序为B-A-C,由于接口调用顺序不同,因此目标操作链1和目标操作链2是不同的操作链。
上述目标操作链可以是基于测试人员对软件使用过程中产生的操作行为得到。在另一种可能的实施方式中,上述目标操作链可以是从预设操作日志库中获取的。上述操作日志库基于终端设备运行软件过程中对各接口的调用行为预先建立。也就是说,上述操作日志库是基于用户使用软件过程中产生的操作行为得到。
上述操作日志库中包含多个操作链,每个操作链中均包括该操作链中调用的接口以及该操作链中调用各个接口的顺序。上述各操作链中还可以包括各接口的接口信息。上述接口信息中可以包括接口的地址,即接口的URI(Uniform Resource Identifier,统一资源标识符)地址。上述URI地址可以唯一标识接口。
上述接口信息还可以包括各接口的操作链标识traceid。上述操作链标识可以针对各接口预先设置,标记接口参与的操作流程。以视频APP为例,用户登录-打开相机-拍摄视频-上传视频构成一个完整的上传视频流程,那么就可以为这一操作流程中调用的各个接口设置相同的traceid。在实际应用中,不同的操作流程可能会调用相同的接口,如上述视频APP中各个流程都会涉及到用户登录操作,也就是说该APP中不同操作流程都会调用用户登录接口。因此,针对同一接口可以设置多个操作链traceid,来标识该接口参与的各个操作流程。
上述接口信息中还可以包括接口对应的软件版本信息appversion。在实际应用中,每次对软件进行更新后,会同时更新软件的版本号。上述接口信息中的软件版本信息可以标识接口对应的软件版本。
上述操作日志库可以针对使用软件的各个用户进行设置,作为一种具体实施方式,如图2所示,上述操作日志库可以通过以下步骤预先建立:
步骤S210、针对各个用户,确定该用户预设时间段内的操作行为中调用的各接口以及所述各接口的调用顺序;
步骤S220、针对所述各个用户,将所述各接口中对应同一操作链标识的接口,按照所述调用顺序排列,得到各所述操作链标识对应的操作链;
步骤S230、针对所述各个用户,存储所述操作链。
下面对上述步骤S210-S230进行示例性说明:
步骤S210中,上述预设时间段可以预先设置,例如,可以设置定时采集各个用户的操作行为,来对操作日志库中各用户的操作链进行更新。例如,可以在每天的00:00时采集用户在前一天内的操作行为,相应的预设时间段就是24小时。也可以每隔10分钟、20分钟采集一次用户的操作行为。本发明对此不做具体限定。
上述各个用户的操作行为中包括用户设备的请求参数,如包括用户设备请求的接口地址、请求上述接口地址的顺序、发起请求的客户端类型、数据类型等等。因此,在获取到各个用户的操作行为后,即可从该用户的操作行为中获取调用的接口,接口的接口信息以及调用上述接口的顺序。
通常,用户的各种操作行为数据均会存储在用户日志中,且针对各类型的数据均会预设该数据的存储字段。例如,使用traceid存储操作链标识、使用userid存储用户标识、使用appversion存储版本号,利用URL存储调用的接口地址。因此,本发明实施例可以基于上述预设的存储字段从用户日志中获取相应的数据,如用户标识、操作链标识以及接口地址等等。
如上所述,各接口的接口信息中包含操作链标识。因此,步骤S220中,可以针对各个用户,确定出该用户操作行为调用的各个接口中,同一操作链标识对应的各个接口,再将各接口按照上述调用顺序进行排列,得到相应操作链标识对应的操作链。
例如,若采集到用户a十分钟内的操作行为调用的接口包括接口A、B、C、D、E、F。其中,接口A的操作链标识为t1、t2、t3,接口B、C的操作链标识均为t1、接口D、E、F的操作链标识均为t2。那么,基于该用户的操作行为得到的操作链分别为的A-B-C、A-D-E-F和A。
得到上述操作链标识后,即可针对各用户,将基于该用户操作行为得到的操作链与该用户对应存储,如可以将用户标识userid与操作链对应存储。也可以针对各用户设置用户操作日志,并将基于各用户操作行为得到的操作链存储至该用户的用户操作日志中。
如上所述,上述各操作链是以操作链标识进行区分,因此,在另一种可能的实现方式中,可以针对各用户,将操作链标识与操作链对应存储。例如,可以将用户标识userid、操作链标识traceid以及操作链对应存储,得到操作日志库。上述操作链中包括接口、各接口的接口信息以及调用各接口的顺序。当然,也可以将操作链标识traceid以及操作链对应存储至相应用户的用户操作日志中。各用户的用户操作日志即构成操作日志库。各用户操作日志中存储基于该用户操作行为得到的各操作链以及对应的操作链标识。
每次针对上述各用户得到上述操作链后,即可对操作日志库进行更新。对操作日志库进行更新可以是对用户操作日志进行更新,也可以对用户标识对应的操作链进行更新。下面以对用户操作日志进行更新为例,说明对操作日志库进行更新的方式:
作为一种实施方式,可以针对各用户,将步骤S230中得到的操作链按照操作标识添加至该操作标识对应的当前操作行为链后,来更新上述操作链标识对应的操作链。当然,还可以针对各用户将步骤S230中得到的操作链作为新的操作链,与上述操作链标识对应存储。本发明对此不作具体限定。
例如,针对用户a,得到操作链标识t1对应的操作链为A-B-C,当前用户a的用户操作日志中存储的操作链标识t1对应的操作链为D-B-A-C-E,那么,对用户a的用户操作日志进行更新后,得到操作链标识t1对应的操作链为D-B-A-C-E-A-B-C,也可以将A-B-C作为单独的操作链与操作链标识t1对应存储,来更新用户a的用户操作日志。
当需要对软件进行测试时,则可从上述操作日志库中抽取目标操作链,对软件的各个接口进行测试。关于如何从上述操作日志库中抽取目标操作链可以根据具体的使用场景确定。例如,若需要对各操作流程均会使用到的接口进行测试,如需对用户登录、显示APP开屏广告等等所调用的接口进行测试,则可以随机从上述操作日志库中抽取目标操作链,并按照目标操作链中的调用顺序调用接口,来对接口自身的功能以及上述接口与其他接口之间的交互进行测试。如上所述,操作日志库中对应存储有用户标识userid、操作链标识traceid以及操作链。在随机抽取操作链时,即可按照上述userid和/或traceid随机抽取操作链。本发明对此不做具体限制。
对于其他场景,则可以按照其他的方式从上述操作日志库中抽取用于测试的目标操作链。
例如,若需要测试实现特定功能的接口,如需要对视频APP拍摄视频所调用的接口、上传视频所述调用的接口等进行测试,则可按照待测试接口的信息从上述操作日志库中抽取操作链,对上述待测试接口进行测试。
具体的,基于图1,如图3所示,上述步骤S110具体可以包括以下步骤:
步骤S111、获取待测试接口的接口信息;所述接口信息包括针对所述待测试接口预设的操作链标识;
步骤S112、基于所述待测试接口的接口信息,从所述操作日志库中获取目标操作链;所述目标操作链为预先基于终端设备运行软件过程中对各接口的调用行为得到的;所述目标操作链包括目标接口以及各所述目标接口的调用顺序。
步骤S111中,上述待测试接口的接口信息可以包括接口地址、操作链标识以及软件版本号等等。
如上所述,操作日志库中对应存储有用户标识userid、操作链标识traceid以及操作链,上述操作链中包含了调用的接口、调用的各接口的接口信息以及调用各个接口的顺序。而上述各接口的接口信息中包含了接口的版本号appversion、地址以及操作链标识traceid等等。因此,步骤S112中,可以根据在步骤S111中获取目标接口的接口信息,如基于目标接口的接口地址、操作链标识以及接口版本号appversion在上述操作日志库中抽取操作链。
上述抽取的目标操作链的数量可以预先设置,如10000、15000等等。也可以将所有符合要求的操作链作为目标操作链,本发明对此不做具体限定。
在一种可能的实现方式中,在抽取上述目标操作链后,还可以对上述目标操作链进行筛选,如可以过滤掉重复的操作链,以进一步提高软件测试效率。
确定上述目标操作链后,即可按照上述目标操作链中包含的目标接口以及调用目标接口顺序调用上述目标接口。上述目标接口中包含上述待测试接口。
之后可以基于上述各目标接口返回的结果,得到软件的测试结果。如确定软件是否出现异常,并在软件出现异常的情况下确定具体的异常信息。上述具体的异常信息可以包括:故障类型、发生故障的接口以及发生故障的原因等等。
上述步骤S130中,基于各所述目标接口被调用后返回的结果获取软件测试结果时,可以由测试人员进行目标接口返回结果的监控。
具体的,在本发明的一种实施方式中,基于图1,如图3所示,上述步骤S130可以包括:
步骤S131、获取并显示各所述目标接口被调用后返回的结果;
步骤S132、获取针对各所述目标接口被调用后返回的结果输入的软件测试结果。
电子设备将上述目标接口被调用后返回的结果进行显示,测试人员可以基于电子设备显示的目标接口被调用后返回的结果获取软件测试结果。并将获取到的软件测试结果输入至电子设备进行记录、分发等等。
在另一种可能的实现方式中,还可以利用监控***监控接口的状态,并利用监控***基于各所述目标接口被调用后返回的结果得到软件测试结果,进一步提高软件测试效率,节省人力成本。
上述监控***可以是开源的监控***,如开源的prometheus、kubertnetes以及fluentd监控***等等。作为本发明实施例的一种具体实施方式,可以选用prometheus监控***对各接口的状态进行实时监控,接口状态包含上述接口被调用后返回的结果。
在一种可能的实施方式中,还可以在上述prometheus监控***中接入告警***,以在监测到任意所述目标接口运行异常时,由告警***发送告警信息。上述告警***可以是开源的告警***,如hubble告警***,也可以是自行开发的告警***,本发明对此不做具体限定。
在一种可能的实施方式中,可以预先在hubble告警***中配置告警规则。上述告警规则可以包括故障类型与通知人员的对应关系。例如,可以设置出现404故障或500故障时需要通知的人员信息,设置流程不通(即接口之间交互异常)或者前后版本不一致(即各目标接口对应的软件版本不同)需要通知的人员信息等等,以及时将接口故障情况通知至相关人员,进一步提高测试效率。
如图4所示,图4为本发明实施例提供的软件测试方法的一种具体应用流程示意图,具体可以包括以下步骤:
①、根据用户标识userid、操作链标识traceid、版本号appversion等关键字从用户操作行为中获取用户请求参数,存储至用户操作日志,各用户操作日志构成操作日志库。
上述用户请求参数包括基于用户操作行为中调用的接口、接口的接口信息以及调用接口的顺序得到的各个操作链。上述步骤①在软件测试之前执行。
②、从操作日志库中抽取一条操作链。
上述步骤②可以定时执行。得到上述操作链后,即可按照上述操作链调用各个接口。
③、记录各个接口的返回结果。
④、对各接口返回的结果进行监控观察,并在接口返回结果异常时发送告警信息。
应用本发明实施例,异步采集用户请求参数,对线上服务无影响,且用真实有效的用户操作请求验证接口功能,不用人为编造数据,保证服务整个调用链顺畅,降低测试人员成本,且可定时自动执行测试用例,及时发现问题并预警。对预发布服务也可以应用本发明实施例所提供的方法进行验证,观察各个指标,提前发现潜在问题,规避风险,提高软件的可用性。
基于相同的技术构思,本发明实施例还提供了一种软件测试装置,如图5所示,所述装置可以包括:
抽取模块510,用于获取目标操作链;所述目标操作链为预先基于终端设备运行软件过程中对各接口的调用行为得到的;所述目标操作链包括目标接口以及各所述目标接口的调用顺序;
调用模块520,用于基于所述目标操作链,按照所述调用顺序调用各所述目标接口;
测试结果获取模块530,用于获取基于各所述目标接口被调用后返回的结果得到的软件测试结果。
本发明实施例提供的软件测试装置,获取目标操作链;所述目标操作链为预先基于终端设备运行软件过程中对各接口的调用行为得到的;所述目标操作链包括目标接口以及各所述目标接口的调用顺序;基于所述目标操作链,按照所述调用顺序调用各所述目标接口;获取基于各所述目标接口被调用后返回的结果得到的软件测试结果。应用本发明实施例,通过预先基于用户使用软件的过程中操作终端设备产生的对各接口的调用行为得到操作链,再基于操作链调用接口,来对各接口功能进行测试,由于测试用例无需人工编写,而是基于真实的用户操作终端设备产生的对各接口的调用行为预先得到,提高了测试用例的可靠性,避免由于测试用例不合理导致的重复测试,从而提高软件测试效率。
在一种可能的实现方式中,针对各个接口均预设操作链标识;
所述获取目标操作链,包括:从预设操作日志库中获取目标操作链;所述操作日志库按照以下步骤预先建立:
针对各个用户,确定该用户预设时间段内的操作行为中调用的各接口以及所述各接口的调用顺序;
针对所述各个用户,将所述各接口中对应同一操作链标识的接口,按照所述调用顺序排列,得到各所述操作链标识对应的操作链;
针对所述各个用户,存储所述操作链。
在一种可能的实现方式中,所述存储所述操作链,包括:将所述操作链标识与所述操作链对应存储;
所述获取目标操作链,包括:
获取待测试接口的接口信息;所述接口信息包括针对所述待测试接口预设的操作链标识;
基于所述待测试接口的接口信息,从所述操作日志库中获取目标操作链。
在一种可能的实现方式中,所述软件测试结果为监控***基于各所述目标接口被调用后返回的结果得到的。
在一种可能的实现方式中,所述获取基于各所述目标接口被调用后返回的结果得到的软件测试结果,包括:
获取并显示各所述目标接口被调用后返回的结果;
获取针对各所述目标接口被调用后返回的结果输入的软件测试结果。
本发明实施例还提供了一种电子设备,如图6所示,包括处理器601、通信接口602、存储器603和通信总线604,其中,处理器601,通信接口602,存储器603通过通信总线604完成相互间的通信,
存储器603,用于存放计算机程序;
处理器601,用于执行存储器603上所存放的程序时,实现如下步骤:
获取目标操作链;所述目标操作链为预先基于终端设备运行软件过程中对各接口的调用行为得到的;所述目标操作链包括目标接口以及各所述目标接口的调用顺序;
基于所述目标操作链,按照所述调用顺序调用各所述目标接口;
获取基于各所述目标接口被调用后返回的结果得到的软件测试结果。
上述终端提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述终端与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processor,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述实施例中任一所述的软件测试方法。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的软件测试方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、存储介质以及程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种软件测试方法,其特征在于,所述方法包括:
获取目标操作链;所述目标操作链为预先基于终端设备运行软件过程中对各接口的调用行为得到的;所述目标操作链包括目标接口以及各所述目标接口的调用顺序;
基于所述目标操作链,按照所述调用顺序调用各所述目标接口;
获取基于各所述目标接口被调用后返回的结果得到的软件测试结果。
2.根据权利要求1所述的方法,其特征在于,针对各个接口均预设操作链标识;
所述获取目标操作链,包括:从预设操作日志库中获取目标操作链;所述操作日志库按照以下步骤预先建立:
针对各个用户,确定该用户预设时间段内的操作行为中调用的各接口以及所述各接口的调用顺序;
针对所述各个用户,将所述各接口中对应同一操作链标识的接口,按照所述调用顺序排列,得到各所述操作链标识对应的操作链;
针对所述各个用户,存储所述操作链。
3.根据权利要求2所述的方法,其特征在于,
所述存储所述操作链,包括:将所述操作链标识与所述操作链对应存储;
所述获取目标操作链,包括:
获取待测试接口的接口信息;所述接口信息包括针对所述待测试接口预设的操作链标识;
基于所述待测试接口的接口信息,从所述操作日志库中获取目标操作链。
4.根据权利要求1所述的方法,其特征在于,所述软件测试结果为监控***基于各所述目标接口被调用后返回的结果得到的。
5.根据权利要求1所述的方法,其特征在于,所述获取基于各所述目标接口被调用后返回的结果得到的软件测试结果,包括:
获取并显示各所述目标接口被调用后返回的结果;
获取针对各所述目标接口被调用后返回的结果输入的软件测试结果。
6.一种软件测试装置,其特征在于,所述装置包括:
抽取模块,用于获取目标操作链;所述目标操作链为预先基于终端设备运行软件过程中对各接口的调用行为得到的;所述目标操作链包括目标接口以及各所述目标接口的调用顺序;
调用模块,用于基于所述目标操作链,按照所述调用顺序调用各所述目标接口;
测试结果获取模块,用于获取基于各所述目标接口被调用后返回的结果得到的软件测试结果。
7.根据权利要求6所述的装置,其特征在于,针对各个接口均预设操作链标识;
所述获取目标操作链,包括:从预设操作日志库中获取目标操作链;所述操作日志库按照以下步骤预先建立:
针对各个用户,确定该用户预设时间段内的操作行为中调用的各接口以及所述各接口的调用顺序;
针对所述各个用户,将所述各接口中对应同一操作链标识的接口,按照所述调用顺序排列,得到各所述操作链标识对应的操作链;
针对所述各个用户,存储所述操作链。
8.根据权利要求7所述的装置,其特征在于,
所述存储所述操作链,包括:将所述操作链标识与所述操作链对应存储;
所述获取目标操作链,包括:
获取待测试接口的接口信息;所述接口信息包括针对所述待测试接口预设的操作链标识;
基于所述待测试接口的接口信息,从所述操作日志库中获取目标操作链。
9.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-5任一所述的方法步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-5任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211192496.8A CN115509918A (zh) | 2022-09-28 | 2022-09-28 | 一种软件测试方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211192496.8A CN115509918A (zh) | 2022-09-28 | 2022-09-28 | 一种软件测试方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115509918A true CN115509918A (zh) | 2022-12-23 |
Family
ID=84505835
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211192496.8A Pending CN115509918A (zh) | 2022-09-28 | 2022-09-28 | 一种软件测试方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115509918A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115858395A (zh) * | 2023-01-28 | 2023-03-28 | 北京蓝色星际科技股份有限公司 | 一种密码功能测试方法、装置、电子设备及存储介质 |
-
2022
- 2022-09-28 CN CN202211192496.8A patent/CN115509918A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115858395A (zh) * | 2023-01-28 | 2023-03-28 | 北京蓝色星际科技股份有限公司 | 一种密码功能测试方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107402880B (zh) | 一种测试方法及电子设备 | |
US10642725B2 (en) | Automated test generation for multi-interface enterprise virtualization management environment | |
CN107710683B (zh) | 弹性即服务 | |
CN115190035B (zh) | 用于提供移动设备支持服务的***、方法、装置和介质 | |
US9378015B2 (en) | Predicting defects in code | |
Syer et al. | Continuous validation of performance test workloads | |
CN103946809A (zh) | 为测试服务器产生产品服务器负载活动 | |
Syer et al. | Continuous validation of load test suites | |
CN110007921B (zh) | 一种代码发布方法及装置 | |
CN112650688A (zh) | 自动化回归测试方法、关联设备以及计算机程序产品 | |
CN111611140A (zh) | 埋点数据的上报验证方法、装置、电子设备及存储介质 | |
CN114490375A (zh) | 应用程序的性能测试方法、装置、设备及存储介质 | |
CN115509918A (zh) | 一种软件测试方法、装置、电子设备及存储介质 | |
CN113014445A (zh) | 用于服务器的运维方法、装置、平台及电子设备 | |
CN115812298A (zh) | 供应故障的区块链管理 | |
CN115904938A (zh) | 变更风险防控***、方法、电子设备及存储介质 | |
CN112953904B (zh) | 异常检测方法、装置、服务器以及存储介质 | |
CN116405412B (zh) | 基于混沌工程故障模拟服务端集群有效性验证方法和*** | |
CN115774707B (zh) | 基于对象属性数据处理方法和装置、电子设备和存储介质 | |
CN116010244A (zh) | 自动化测试方法、装置、电子设备及存储介质 | |
US10380339B1 (en) | Reactively identifying software products exhibiting anomalous behavior | |
CN109814911A (zh) | 用于管理脚本程序的方法、装置、计算机设备及存储介质 | |
CN114385498A (zh) | 性能测试方法、***、计算机设备及可读存储介质 | |
US20170068918A1 (en) | Risk assessment in online collaborative environments | |
CN108536604B (zh) | 一种测试web页面响应时间的方法及终端 |
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 |