测试用例生成方法、装置、电子设备及存储介质与流程
1.本技术涉及计算机技术领域,尤其涉及一种测试用例生成方法、装置、电子设备及存储介质。
背景技术:
2.自动化是测试方向的重要领域,不仅可以有效的识别程序问题还可以大幅度的提升测试工作效率。自动化测试具有一致性和重复性,能够支撑业务的快速发展和迭代,如何做好自动化和怎样快速响应代码变动实现t+0自动化,是当前自动化研究的重点。
3.在传统的自动化测试中,需要由测试人员手动编写自动化测试案例和测试案例中的测试数据,人力成本高,耗时较长,且在相关业务升级时,需要对自动化测试用例从头分析到尾后再进行修改,因此效率较低,难以满足测试工作的需求。
4.因此,当前的自动化测试过程存在测试效率较低的技术问题,需要改进。
技术实现要素:
5.本技术实施例提供一种测试用例生成方法、装置、电子设备及存储介质,用以缓解当前的自动化测试过程中测试效率较低的技术问题。
6.为解决上述技术问题,本技术实施例提供以下技术方案:
7.本技术提供一种测试用例生成方法,包括:
8.接收测试用例生成请求,所述测试用例生成请求携带目标链路标识和测试需求信息;
9.根据所述目标链路标识和所述测试需求信息,从全链路日志中获取目标链路的各目标接口的接口信息和接口传参信息;
10.根据所述接口信息和所述接口传参信息,调用各目标接口生成初始测试用例;
11.根据所述接口传参信息和所述测试需求信息,生成所述初始测试用例对应的目标测试数据;
12.将所述目标测试数据填充至所述初始测试用例中,得到目标测试用例。
13.同时,本技术实施例还提供了一种测试用例生成装置,包括:
14.接收模块,用于接收测试用例生成请求,所述测试用例生成请求携带目标链路标识和测试需求信息;
15.获取模块,用于根据所述目标链路标识和所述测试需求信息,从全链路日志中获取目标链路的各目标接口的接口信息和接口传参信息;
16.调用模块,用于根据所述接口信息和所述接口传参信息,调用各目标接口生成初始测试用例;
17.生成模块,用于根据所述接口传参信息和所述测试需求信息,生成所述初始测试用例对应的目标测试数据;
18.得到模块,用于将所述目标测试数据填充至所述初始测试用例中,得到目标测试
用例。
19.本技术还提供一种电子设备,包括存储器和处理器;所述存储器存储有应用程序,所述处理器用于运行所述存储器内的应用程序,以执行上述任一项所述的测试用例生成方法中的步骤。
20.本技术实施例提供一种计算机可读存储介质,计算机可读存储介质存储有多条指令,指令适于处理器进行加载,以执行上述测试用例生成方法中的步骤。
21.有益效果:本技术提供一种测试用例生成方法、装置、电子设备及存储介质,该方法先接收测试用例生成请求,测试用例生成请求携带目标链路标识和测试需求信息,然后根据目标链路标识和测试需求信息,从全链路日志中获取目标链路的各目标接口的接口信息和接口传参信息,再根据接口信息和接口传参信息,调用各目标接口生成初始测试用例,根据接口传参信息和测试需求信息,生成初始测试用例对应的目标测试数据,最后将目标测试数据填充至初始测试用例中,得到目标测试用例。本技术仅需发出测试用例生成请求,即可基于全链路日志来自动生成包含有目标测试数据的目标测试用例,因此降低了编写的人工和时间成本,极大地提高了测试效率。
附图说明
22.下面结合附图,通过对本技术的具体实施方式详细描述,将使本技术的技术方案及其它有益效果显而易见。
23.图1是本技术实施例提供的测试用例生成方法的应用场景示意图。
24.图2为本技术实施例提供的测试用例生成方法的流程示意图。
25.图3为本技术实施例提供的测试用例生成方法的架构图。
26.图4为本技术实施例提供的测试用例生成装置的结构示意图。
27.图5为本技术实施例提供的电子设备的结构示意图。
具体实施方式
28.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
29.本技术实施例提供一种测试用例生成方法、装置、电子设备和计算机可读存储介质,其中,该测试用例生成装置可以集成在电子设备中,该电子设备可以是服务器,也可以是终端等设备。
30.请参阅图1,图1为本技术实施例所提供的测试用例生成方法应用的场景示意图,该场景可以包括终端以及服务器,终端之间、服务器之间、以及终端与服务器之间通过各种网关组成的互联网等方式连接通信,该应用场景中包括用户终端11和服务器12;其中,用户终端11可以是具有人机交互功能的设备;服务器12包括本地服务器和/或远程服务器等。
31.用户终端11和服务器12位于无线网络或有线网络中,以实现两者之间的数据交互,其中:
32.测试人员在用户终端11的界面上进行配置操作,生成测试用例生成请求,测试用
例生成请求携带目标链路标识和测试需求信息。服务器12接收该测试用例生成请求,根据其携带的目标链路标识和测试需求信息去查业务系统的全链路日志,从全链路日志中获取目标链路的各目标接口的接口信息和接口传参信息,再根据接口信息和接口传参信息,调用各目标接口生成初始测试用例,根据接口传参信息和测试需求信息,生成初始测试用例对应的目标测试数据,最后将目标测试数据填充至初始测试用例中,得到目标测试用例并返回给用户终端11。测试人员从用户终端11中得到目标测试用例后,可将其用于自动化测试。
33.需要说明的是,图1所示的系统场景示意图仅仅是一个示例,本技术实施例描述的服务器以及场景是为了更加清楚地说明本技术实施例的技术方案,并不构成对于本技术实施例提供的技术方案的限定,本领域普通技术人员可知,随着系统的演变和新业务场景的出现,本技术实施例提供的技术方案对于类似的技术问题,同样适用。以下分别进行详细说明。需说明的是,以下实施例的描述顺序不作为对实施例优选顺序的限定。
34.请参阅图2,图2是本技术实施例提供的测试用例生成方法的流程示意图,该方法具体包括:
35.s1:接收测试用例生成请求,测试用例生成请求携带目标链路标识和测试需求信息。
36.测试用例是指由前提条件、测试输入、执行条件以及预期结果等组成,以完成对某个特定需求或者目标测试的数据,体现测试方案、方法、技术和策略的文档。测试用例通常可包括多个要素,例如可包括用例编号、所属项目、预置条件、测试输入、预期输出、执行条件、概要、级别等。具体地,测试用例编号由字符和数字组合成的字符串,用例编号具有唯一性,容易识别;所属项目用于表示该测试用例属于哪个项目或者模块、单元等;预置条件是指执行当前测试用例需要的前提条件,如果前提条件不满足,则后面的测试步骤不能进行或者达不到预期的结果;测试输入是指测试用例执行过程中需要输入的数据;预期输出是指测试用例的预期输出结果,包括返回值内容、界面响应结果等;执行条件包括执行当前测试用例需要经过哪些接口、各接口的顺序、各接口对应的服务的操作步骤,需要明确的给出各步骤的描述;概要是指用概括的语言描述该测试用例的测试点;级别是指当前测试用例的测试重要性等级,如高级别、中级别、低级别等。
37.在本技术实施例中,在需要生成测试用例时,先接收测试用例生成请求,该请求可以是测试人员在客户端的测试案例生成界面上执行相关配置操作后发起,由服务器接收到。在完成一个业务的过程中,从一个请求开始到最后业务完成响应,中间所有经过的服务以及各服务之间的调用关系构成了一个链路。不同业务对应的链路不完全相同,如对于一个较为复杂的业务,涉及的服务较多,对于简单的业务,涉及的服务则较少。
38.在本技术实施例中,测试用例生成请求携带目标链路标识和测试需求信息,测试用例是基于测试需求来生成的,测试需求信息用于表示所需生成的测试用例时用于测试什么业务,目标链路标识则用于表示完成该业务需要调用哪条链路。
39.在某个业务的完成过程中,业务请求在依次被所有服务处理时,由第一个被调起的服务生成一个标识,也即trace_id,然后依次将其传递给下游的服务,直至最终的业务响应。该标识可以用于表示当前业务所需要调用的所有服务,各服务形成了一条目标链路,因此该标识可作为目标链路标识。需要说明的是,一个复杂的业务可以包括多个环节,其中的
一部分环节可以单独形成一个小业务,对于业务系统的某个复杂业务的业务请求,在完成某个小业务生成业务响应后,可以继续完成后面的小业务,则上述trace_id可以继续传递,因此这些小业务可以对应一个相同的目标链路标识,而测试需求信息则用于确定需要完成的是复杂的大业务还是其中的某个或某几个小业务。
40.s2:根据目标链路标识和测试需求信息,从全链路日志中获取目标链路的各目标接口的接口信息和接口传参信息。
41.对于一个业务系统,其包括多项服务,各服务分别提供各自的逻辑功能,且可以相互调用,根据参与某个业务的服务类型、数量、调用关系的不同,业务系统可以形成多个不同的链路,以完成不同的业务。在每个业务的处理过程中,各环节均会产生日志,业务系统的所有日志形成全链路日志,其记录了业务系统中所有接收到的请求被各服务进行处理时的过程详情。
42.各服务具有各自的接口,在全链路日志中记录了各接口的接口信息和接口传参信息,其中接口信息可以包括各接口的标识、接口的协议、接口对应的服务或应用、接口调用的时间等,接口传参信息包括接口传入和传出的参数类型、格式、数值等。在得到目标链路标识和测试需求信息后,可以根据该目标链路标识确定目标链路,根据测试需求信息从目标链路的所有接口中确定目标接口,然后从全链路日志中获取这些目标接口的接口信息和接口传参信息。
43.在一种实施例中,s2具体包括:根据目标链路标识,从全链路日志中确定目标链路,并确定目标链路中所有的接口以及各接口的调用顺序;根据测试需求信息,确定目标链路的起始接口和结束接口,根据起始接口、结束接口和调用顺序,确定目标链路中的目标接口;从全链路日志中获取各目标接口的接口信息和接口传参信息。先根据目标链路标识,从全链路日志中确定目标链路,然后确定目标链路对应哪些服务,并获取所有这些服务的接口以及各接口之间的调用顺序。然后,根据测试需求信息确定测试案例对应的业务具体是什么业务,该业务的初始环节和结束环节分别是什么,进而从目标链路中确定起始服务和结束服务,并确定对应的起始接口和结束接口。再然后,根据上述获取的各接口之间的调用顺序,确定位于起始接口和结束接口之间的其他接口,将起始接口、结束接口以及中间的这些接口共同确定为目标接口,最后获取所有目标接口的接口信息和接口传参信息。
44.在一种实施例中,目标链路包括至少一个子链路,子链路包括至少两个接口,根据测试需求信息,确定目标链路的起始接口和结束接口,根据起始接口、结束接口和调用顺序,确定目标链路中的目标接口的步骤,包括:根据测试需求信息,确定目标链路中的目标子链路,并确定目标子链路的起始接口和结束接口;根据起始接口、结束接口和调用顺序,确定目标子链路中的目标接口。
45.在上述实施例中提到,系统中的某个复杂的大业务对应一条较长的链路,而大业务可以是几个小业务的组合,每个小业务对应该链路中的一小段,也即一个子链路。例如,对于贷款业务,可以分为贷款请求、贷款审批、贷款放款等多个子业务,整个贷款业务对应一条完整的贷款链路,该贷款链路又包括贷款请求子链路、贷款审批子链路和贷款放款子链路等多个子链路,每个子业务的完成也需要经过多个步骤,因此每个子链路至少包括两个接口。在本实施例中,先根据测试需求信息确定子业务,进而确定目标链路中的目标子链路,目标子链路具有起始接口和结束接口,然后根据各接口之间的调用顺序,确定目标子链
路中的所有目标接口。例如,当测试需求信息表示需要完成整个贷款业务时,整个贷款链路中的所有子链路均为目标子链路,所有接口均为目标接口;而当测试需求信息表示仅需要完成贷款审批这一业务时,则只需要将贷款审批这个子链路作为目标子链路,其包含的所有接口作为目标接口。通过上述过程,实现了不同场景下的测试用例生成需求。
46.在一种实施例中,测试需求信息包括第一链路长度,根据测试需求信息,确定目标链路中的目标子链路的步骤,包括:获取各子链路的第二链路长度;匹配第一链路长度和各第二链路长度,得到第一匹配结果;根据第一匹配结果,确定目标链路中的目标子链路。
47.在一些情况下,当选定了某个目标链路,且想要对其中的某个或某几个子链路对应的业务构建测试用例,但测试人员又不清楚当前链路中的子业务是如果划分的,或者知道子业务的划分,但想要通过较为简单的操作一次性生成多个子链路对应的测试用例,此时可以使得测试需求信息包括第一链路长度,也即表示想要从目标链路中获取所有与该长度一致的子链路。然后,服务器会从全链路日志中获取各子链路的第二链路长度,并将各第二链路长度与第一链路长度进行匹配,如果存在与第一链路长度相等的第二链路长度,则将其对应的子链路作为目标子链路,如果不存在,则返回不存在的响应,如果存在多个与第一链路长度相等的第二链路长度,则将对应的多个子链路均作为目标子链路。例如,测试需求信息中的第一链路长度为10,各子链路的第二链路长度分别为8、10、6、10,则将两个第二链路长度为10的子链路作为目标子链路。通过上述操作,仅需在对应的测试用例生成界面上执行对第一链路长度的配置操作,即可生成目标链路中所有符合的子链路对应的测试用例,实现了批量化生成,因此提升了效率。
48.在一种实施例中,测试需求信息包括第一业务功能,根据测试需求信息,确定目标链路中的目标子链路的步骤,包括:获取各子链路的第二业务功能;匹配第一业务功能和各第二业务功能,得到第二匹配结果;根据第二匹配结果,确定目标链路中的目标子链路。
49.在一些情况下,测试人员知晓目标链路对应的业务中存在哪些子业务,则直接使得测试需求信息包括第一业务功能,第一业务功能用于表示需要请求哪个子业务,服务器会从全链路日志中获取各子链路的第二业务功能,并将各第二业务功能与第一业务功能进行匹配,如果存在与第一业务功能相同的第二业务功能,则将其对应的子链路作为目标子链路,如果不存在,则返回不存在的响应。当需要生成多个子业务对应的测试用例时,可使得测试需求信息包括多个独立的第一业务功能,或者多个第一业务功能的集合,例如测试需求信息包括独立的贷款审批子业务和贷款放款子业务时,可以分别获取这两个子业务对应的目标子链路,并在后续分别生成这两个子业务对应的测试用例,如果测试需求信息包括贷款审批子业务加贷款放款子业务的集合,则将这两个子业务对应的目标子链路组合形成一个较大的目标子链路,在后续生成同时包括这两个环节的一个测试用例。
50.s3:根据接口信息和接口传参信息,调用各目标接口生成初始测试用例。
51.接口信息包括各接口的标识、接口的协议、接口对应的服务或应用、接口调用的时间等,接口传参信息包括接口传入和传出的参数类型、格式、数值等,在得到了各目标接口的接口信息和接口传参信息后,调用各目标接口生成初始测试用例。具体地,根据接口信息调用目标接口,从而获取各目标接口对应的服务的执行逻辑,根据各目标接口的顺序和各服务的执行逻辑可以生成测试用例的执行条件。根据接口传参信息,可以确定测试用例的测试输入、预期输出等。从全链路日志中再获取每次调用时各目标接口所处的环境,如网络
环境、系统环境等,可以确定测试用例的预置条件。最后,将预置条件、测试输入、预期输出、执行条件等组合,并添加用例编号、所属项目、概要、级别等要素,可以形成初始测试用例。
52.s4:根据接口传参信息和测试需求信息,生成初始测试用例对应的目标测试数据。
53.测试需求信息除了表示所需生成的测试用例时用于测试什么业务,还用于表示需要在什么样的场景下进行测试,具体地,测试场景可以包括正常场景和异常场景,每个场景下又可以包括单一测试和批量测试等各类情况,如xx时间段内a个用户同时请求的场景、xx时间段内b个用户依次请求的场景等。在不同的场景下,所需要的测试数据是不同的,测试数据包括测试输入和预期输出,对于单一请求的测试场景,其所需的测试数据的数据量较少,而对于批量请求的测试场景,其所需的测试数据的数据量较大。在上述步骤中得到的初始测试用例中,接口传参信息的数据量有限,因此还需要根据测试需求信息确定需要多少测试数据,根据接口传参信息确定各测试数据分别是什么样的,然后生成与测试需求的数量匹配,且与接口传参信息相似的测试输入和预期输出数据,作为初始测试用例对应的目标测试数据。
54.在一种实施例中,s4具体包括:根据测试需求信息,确定初始测试用例所需的测试场景;从全链路日志中获取历史时间段内各测试场景下的第一接口传参信息;根据第一接口传参信息,生成初始测试用例对应的目标测试数据。
55.在本实施例中,先根据测试需求信息确定初始测试用例所需的测试场景,设测试场景包括3个,分别为多个用户同时提请求且均成功的场景1,各用户依次提请求且均成功的场景2,多个用户同时提请求仅有部分成功的场景3。在确定了测试场景后,从全链路日志中来获取3类测试场景下的所有目标接口的第一接口传参信息,由于所需的数据量涉及多个用户,则可以获取某个历史时间段内的数据,历史时间段的时长和时间可以根据测试需要进行选择。对于场景1,第一接口传参信息包括m个用户同时请求时的请求数据和成功响应数据,对于场景2,第一接口传参信息包括n个用户依次请求时的请求数据和成功响应数据,对于场景3,第一接口传参信息包括s个用户同时请求时的请求数据、以及一部分成功响应数据和一部分失败响应数据。
56.在得到第一接口传参信息后,将这些第一接口传参信息中的请求数据处理为初始测试用例所需的测试输入,响应数据处理为初始测试用例所需的预期输出,得到初始测试用例对应的目标测试数据。即,在得到了测试需求信息后,可以从全链路日志中获取所有所需的目标测试数据,该方式使得测试数据均来源于客户的真实数据,则测试的准确性更高。
57.在一种实施例中,s4具体包括:根据测试需求信息,确定初始测试用例所需的测试场景;从全链路日志中获取历史时间段内各测试场景下的第二接口传参信息,根据第二接口传参信息和预设造数模型,生成初始测试用例对应的目标测试数据。
58.在本实施例中,先根据测试需求信息确定初始测试用例所需的测试场景,设测试场景包括3类,分别为多个用户同时提请求且均成功的场景1,各用户依次提请求且均成功的场景2,多个用户同时提请求仅有部分成功的场景3,每类场景下分别需要测试10次。在确定了测试场景后,从全链路日志中来获取3类测试场景下的所有目标接口的第二接口传参信息,由于所需的数据量涉及多个用户,则可以获取某个历史时间段内的数据,历史时间段的时长和时间可以根据测试需要进行选择。对于场景1,第二接口传参信息包括m个用户同时请求时的请求数据和成功响应数据,对于场景2,第二接口传参信息包括n个用户依次请
求时的请求数据和成功响应数据,对于场景3,第二接口传参信息包括s个用户同时请求时的请求数据、以及一部分成功响应数据和一部分失败响应数据。
59.在得到第二接口传参信息后,由于某些场景所需的测试数据的数据量较大,全链路日志中记载的真实用户的数据量可能不足以支撑该测试需求,例如想要测试100个用户同时发起访问的数据,但全链路日志中仅记载了30个用户同时发起访问的数据,则从全链路日志中无法直接得到所需的数据。此时,可以根据第二接口传参信息来对真实的测试输入和预期输出进行分析,然后调用预设造数模型来造出剩余的70个用户的数据,或者造出新的100个用户的数据,将这些数据作为目标测试数据。即,本技术可以与预设造数模型进行结合,在想要生成测试案例时,调用预设造数模型对接口传参信息进行分析来造出所需的测试数据,从而可以高效率地满足大批量测试的需求。
60.s5:将目标测试数据填充至初始测试用例中,得到目标测试用例。
61.在得到目标测试数据后,将目标测试数据按照特定的格式填充至初始测试用例中,则得到最终测试所需的目标测试用例。
62.通过上述各实施例可知,本技术的测试用例生成方法,先接收测试用例生成请求,测试用例生成请求携带目标链路标识和测试需求信息,然后根据目标链路标识和测试需求信息,从全链路日志中获取目标链路的各目标接口的接口信息和接口传参信息,再根据接口信息和接口传参信息,调用各目标接口生成初始测试用例,根据接口传参信息和测试需求信息,生成初始测试用例对应的目标测试数据,最后将目标测试数据填充至初始测试用例中,得到目标测试用例。本技术仅需发出测试用例生成请求,即可基于全链路日志来自动生成包含有目标测试数据的目标测试用例,因此降低了编写的人工和时间成本,极大地提高了测试效率。
63.下面结合图3对上述方法进行进一步说明。在图3中,设业务系统包括服务1、服务2、服务3和服务4,服务1的接口1与服务2的接口2相互调用,服务2的接口3与服务3的接口4相互调用,服务2的接口5与服务4的接口6相互调用,服务4的接口7与服务3的接口8相互调用。根据上述调用关系,服务1、服务2和服务3可以组成链路1,服务1、服务2、服务4和服务3可以组成链路2,在各服务进行相互调用时,产生的各种数据均记录在日志中,整个系统的日志形成全链路日志。
64.当需要生成测试用例时,测试人员在界面上对测试需求信息进行配置,并选择需要的链路,如链路1,则生成的测试案例生成请求携带目标链路标识和测试需求信息,服务器根据目标链路标识和测试需求信息,从全链路日志中获取链路1的各目标接口的接口信息和接口传参信息,目标接口包括接口1、接口2、接口3和接口4,然后去调用各目标接口生成初始测试用例,并生成初始测试用例对应的目标测试数据,最后把目标测试数据填充到初始测试用例中,得到目标测试用例。
65.在整个过程中,测试人员只需在前端界面上执行一些配置操作,并发起请求,服务器即可自动执行后续步骤,去获取目标链路的目标接口的相关信息,并调用接口一键生成测试案例,操作简单,降低了对测试人员技能的要求。且在业务变动时不需要对测试案例进行修改,只需要重新执行一遍上述步骤即可得到最新的测试案例,因此大大降低了测试案例的构建成本和维护成本。
66.在上述实施例所述方法的基础上,本实施例将从测试用例生成装置的角度进一步
进行描述,请参阅图4,测试用例生成装置可以包括:
67.接收模块110,用于接收测试用例生成请求,所述测试用例生成请求携带目标链路标识和测试需求信息;
68.获取模块120,用于根据所述目标链路标识和所述测试需求信息,从全链路日志中获取目标链路的各目标接口的接口信息和接口传参信息;
69.调用模块130,用于根据所述接口信息和所述接口传参信息,调用各目标接口生成初始测试用例;
70.生成模块140,用于根据所述接口传参信息和所述测试需求信息,生成所述初始测试用例对应的目标测试数据;
71.得到模块150,用于将所述目标测试数据填充至所述初始测试用例中,得到目标测试用例。
72.在一种实施例中,获取模块120包括:
73.第一确定模块,用于根据所述目标链路标识,从所述全链路日志中确定目标链路,并确定所述目标链路中所有的接口以及各接口的调用顺序;
74.第二确定模块,用于根据所述测试需求信息,确定所述目标链路的起始接口和结束接口,根据所述起始接口、所述结束接口和所述调用顺序,确定所述目标链路中的目标接口;
75.第一获取模块,用于从全链路日志中获取各目标接口的接口信息和接口传参信息。
76.在一种实施例中,所述目标链路包括至少一个子链路,所述子链路包括至少两个接口,第二确定模块包括:
77.第一确定子模块,用于根据所述测试需求信息,确定所述目标链路中的目标子链路,并确定所述目标子链路的起始接口和结束接口;
78.第二确定子模块,用于根据所述起始接口、所述结束接口和所述调用顺序,确定所述目标子链路中的目标接口。
79.在一种实施例中,所述测试需求信息包括第一链路长度,第一确定子模块包括:
80.第一获取单元,用于获取各子链路的第二链路长度;
81.第一匹配单元,用于匹配所述第一链路长度和各第二链路长度,得到第一匹配结果;
82.第一确定单元,用于根据所述第一匹配结果,确定所述目标链路中的目标子链路。
83.在一种实施例中,所述测试需求信息包括第一业务功能,第一确定子模块包括:
84.第二获取单元,用于获取各子链路的第二业务功能;
85.第二匹配单元,用于匹配所述第一业务功能和各第二业务功能,得到第二匹配结果;
86.第三确定单元,用于根据所述第二匹配结果,确定所述目标链路中的目标子链路。
87.在一种实施例中,生成模块140包括:
88.第三确定子模块,用于根据所述测试需求信息,确定所述初始测试用例所需的测试场景;
89.第二获取子模块,用于从全链路日志中获取历史时间段内各测试场景下的第一接
口传参信息;
90.第一生成子模块,用于根据所述第一接口传参信息,生成所述初始测试用例对应的目标测试数据。
91.在一种实施例中,生成模块140包括:
92.第四确定子模块,用于根据所述测试需求信息,确定所述初始测试用例所需的测试场景;
93.第三获取子模块,用于从全链路日志中获取历史时间段内各测试场景下的第二接口传参信息;
94.第二生成子模块,用于根据所述第二接口传参信息和预设造数模型,生成所述初始测试用例对应的目标测试数据。
95.区别于现有技术,本技术提供的测试用例生成装置,先接收测试用例生成请求,测试用例生成请求携带目标链路标识和测试需求信息,然后根据目标链路标识和测试需求信息,从全链路日志中获取目标链路的各目标接口的接口信息和接口传参信息,再根据接口信息和接口传参信息,调用各目标接口生成初始测试用例,根据接口传参信息和测试需求信息,生成初始测试用例对应的目标测试数据,最后将目标测试数据填充至初始测试用例中,得到目标测试用例。本技术仅需发出测试用例生成请求,即可基于全链路日志来自动生成包含有目标测试数据的目标测试用例,因此降低了编写的人工和时间成本,极大地提高了测试效率。
96.相应的,本技术实施例还提供一种电子设备,如图5所示,该电子设备可以包括射频(rf,radio frequency)电路501、包括有一个或一个以上计算机可读存储介质的存储器502、输入单元503、显示单元504、传感器505、音频电路506、wifi模块507、包括有一个或者一个以上处理核心的处理器508、以及电源509等部件。本领域技术人员可以理解,图5中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
97.射频电路501可用于收发信息或通话过程中,信号的接收和发送,特别地,将的下行信息接收后,交由一个或者一个以上处理器508处理;另外,将涉及上行的数据发送给。存储器502可用于存储软件程序以及模块,处理器508通过运行存储在存储器502的软件程序以及模块,从而执行各种功能应用以及测试用例生成。输入单元503可用于接收输入的数字或字符信息,以及产生与客户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
98.显示单元504可用于显示由客户输入的信息或提供给客户的信息以及服务器的各种图形客户接口,这些图形客户接口可以由图形、文本、图标、视频和其任意组合来构成。
99.电子设备还可包括至少一种传感器505,比如光传感器、运动传感器以及其他传感器。音频电路506包括扬声器,扬声器可提供客户与电子设备之间的音频接口。
100.wifi属于短距离无线传输技术,电子设备通过wifi模块507可以帮助客户收发、浏览网页和随访流式媒体等,它为客户提供了无线的宽带互联网随访。虽然图5示出了wifi模块507,但是可以理解的是,其并不属于电子设备的必须构成,完全可以根据需要在不改变申请的本质的范围内而省略。
101.处理器508是电子设备的控制中心,利用各种接口和线路连接整个手机的各个部
分,通过运行或执行存储在存储器502内的软件程序和/或模块,以及调用存储在存储器502内的数据,执行电子设备的各种功能和处理数据,从而对手机进行整体监控。
102.电子设备还包括给各个部件供电的电源509(比如电池),优选的,电源可以通过电源管理系统与处理器508逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
103.尽管未示出,电子设备还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,服务器中的处理器508会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器502中,并由处理器508来运行存储在存储器502中的应用程序,从而实现以下功能:
104.接收测试用例生成请求,所述测试用例生成请求携带目标链路标识和测试需求信息;
105.根据所述目标链路标识和所述测试需求信息,从全链路日志中获取目标链路的各目标接口的接口信息和接口传参信息;
106.根据所述接口信息和所述接口传参信息,调用各目标接口生成初始测试用例;
107.根据所述接口传参信息和所述测试需求信息,生成所述初始测试用例对应的目标测试数据;
108.将所述目标测试数据填充至所述初始测试用例中,得到目标测试用例。
109.在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见上文的详细描述,此处不再赘述。
110.本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
111.为此,本技术实施例提供一种计算机可读存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以实现以下功能:
112.接收测试用例生成请求,所述测试用例生成请求携带目标链路标识和测试需求信息;
113.根据所述目标链路标识和所述测试需求信息,从全链路日志中获取目标链路的各目标接口的接口信息和接口传参信息;
114.根据所述接口信息和所述接口传参信息,调用各目标接口生成初始测试用例;
115.根据所述接口传参信息和所述测试需求信息,生成所述初始测试用例对应的目标测试数据;
116.将所述目标测试数据填充至所述初始测试用例中,得到目标测试用例。
117.以上对本技术实施例所提供的一种测试用例生成方法、装置、电子设备和计算机可读存储介质进行了详细介绍,本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的技术方案及其核心思想;本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例的技术方案的范围。