应用测试方法、装置、系统、电子设备及存储介质与流程

文档序号:32338525发布日期:2022-11-26 08:52阅读:27来源:国知局
应用测试方法、装置、系统、电子设备及存储介质与流程

1.本技术实施例涉及软件测试技术领域,尤其涉及一种应用测试方法、装置、系统、电子设备及计算机可读存储介质。


背景技术:

2.目前,随着计算机应用行业的迅速发展,对应用质量的要求也不断提高,在应用发布上线之前,需要对应用进行测试,并根据测试结果对应用的错误进行修复,以使应用上线运行的应用可以正常提供服务。
3.相关技术中,测试人员在对应用测试之前,通常需要根据待测试应用能够提供的业务,设计测试数据,测试数据中包括输入数据,以及针对输入数据,待测试应用应该输出的正确结果。
4.但是,在实际应用中,由于应用的结构较为复杂,应用覆盖的业务范围和业务种类较多,导致测试应用需要的测试数据量较为庞大,测试人员需要消耗较大的精力和时间成本为待测试应用准备测试数据,这会导致应用测试的效率较低。


技术实现要素:

5.本技术实施例提供一种应用测试方法、装置、系统、电子设备及计算机可读存储介质,以解决相关技术中应用测试效率较低的问题。
6.第一方面,本技术实施例提供了一种应用测试方法,应用于采集端,该方法包括:
7.获取待采集应用的待采集接口标识,并根据所述待采集接口标识确定待采集接口,其中,所述待采集接口标识包括外部调用接口标识,以及内部调用接口标识;
8.采集所述待采集接口的接口调用信息,其中,所述接口调用信息包括接口外部调用信息和接口内部调用信息;
9.将所述接口调用信息发送至测试端,以使得所述测试端根据所述接口调用信息对待测试应用进行测试。
10.第二方面,本技术实施例提供了一种应用测试方法,应用于测试端,该方法包括:
11.获取从待采集应用采集到的接口调用信息,其中,所述接口调用信息包括接口外部调用信息和接口内部调用信息;
12.根据所述接口调用信息对待测试应用进行测试,得到所述待测试应用的测试输出结果;
13.将所述测试输出结果发送至服务端,以使得所述服务端根据所述测试输出结果和所述接口调用信息生成应用测试报告。
14.第三方面,本技术实施例提供了一种应用测试方法,应用于服务端,该方法包括:
15.获取从待采集应用采集到的接口调用信息,其中,所述接口调用信息包括接口外部调用信息和接口内部调用信息;
16.获取从待测试应用采集到的测试输出结果,其中,所述测试输出结果由测试端通
过所述接口调用信息对所述待测试应用进行测试得到;
17.根据所述接口调用信息和所述测试输出结果生成应用测试报告。
18.第四方面,本技术实施例提供了一种应用测试装置,该装置包括:
19.获取模块,用于获取待采集应用的待采集接口标识,并根据所述待采集接口标识确定待采集接口,其中,所述待采集接口标识包括外部调用接口标识,以及内部调用接口标识;
20.采集模块,用于采集所述待采集接口的接口调用信息,其中,所述接口调用信息包括接口外部调用信息和接口内部调用信息;
21.发送模块,用于将所述接口调用信息发送至测试端,以使得所述测试端根据所述接口调用信息对待测试应用进行测试。
22.第五方面,本技术实施例提供了一种应用测试装置,该装置包括:
23.获取模块,用于获取从待采集应用采集到的接口调用信息,其中,所述接口调用信息包括接口外部调用信息和接口内部调用信息;
24.测试模块,用于根据所述接口调用信息对待测试应用进行测试,得到所述待测试应用的测试输出结果;
25.发送模块,用于将所述测试输出结果发送至服务端,以使得所述服务端根据所述测试输出结果和所述接口调用信息生成应用测试报告。
26.第六方面,本技术实施例提供了一种应用测试方法,应用于服务端,该方法包括:
27.第一获取模块,用于获取从待采集应用采集到的接口调用信息,其中,所述接口调用信息包括接口外部调用信息和接口内部调用信息;
28.第二获取模块,用于获取从待测试应用采集到的测试输出结果,其中,所述测试输出结果由测试端通过所述接口调用信息对所述待测试应用进行测试得到;
29.生成模块,用于根据所述接口调用信息和所述测试输出结果生成应用测试报告。
30.第七方面,本技术实施例还提供了一种应用测试系统,所述系统包括:
31.采集端,用于获取待采集应用的待采集接口标识,并根据所述待采集接口标识确定待采集接口;采集所述待采集接口的接口调用信息;将所述接口调用信息发送至测试端,以使得所述测试端根据所述接口调用信息对待测试应用进行测试;其中,所述待采集接口标识包括外部调用接口标识,以及内部调用接口标识,所述接口调用信息包括接口外部调用信息和接口内部调用信息;
32.测试端,用于获取从待采集应用采集到的接口调用信息;根据所述接口调用信息对待测试应用进行测试,得到所述待测试应用的测试输出结果;将所述测试输出结果发送至服务端,以使得所述服务端根据所述测试输出结果和所述接口调用信息生成应用测试报告;
33.服务端,用于获取从待采集应用采集到的接口调用信息;获取从待测试应用采集到的测试输出结果;根据所述接口调用信息和所述测试输出结果生成应用测试报告;其中,所述接口调用信息包括接口外部调用信息和接口内部调用信息,所述测试输出结果由测试端通过所述接口调用信息对所述待测试应用进行测试得到。
34.第八方面,本技术实施例还提供了一种电子设备,包括:处理器;用于存储所述处理器可执行指令的存储器,其中,所述处理器被配置为执行所述指令,以实现所述的应用测
试方法。
35.第九方面,本技术实施例还提供了一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行所述的应用测试方法。
36.在本技术实施例中,包括:获取待采集应用的待采集接口标识,并根据待采集接口标识确定待采集接口,其中,待采集接口标识包括外部调用接口标识,以及内部调用接口标识;采集待采集接口的接口调用信息,其中,接口调用信息包括外部调用信息和内部调用信息;将接口调用信息发送至测试端,以使得测试端根据接口调用信息对待测试应用进行测试。本技术可以在待采集应用运行过程中,采集待采集应用的接口调用信息,并根据待采集应用的接口调用信息对待测试应用进行测试,无需测试人员人工为待测试应用准备测试数据,提高了应用测试的效率,并且,由于采集的接口调用信息包含接口外部调用信息和接口内部调用信息,不仅可以对待测试应用的外部接口进行测试,还可以对待测试应用的内部接口进行测试,提高了应用测试的效果,在待采集应用于待测试应用不同的情况下,即使两者不具备相同的外部接口,也可以通过接口内部调用信息对相同的内部接口进行测试,因此本方案可以实现跨应用的接口测试任务,有助于在大型应用重构及迁移中,减少海量的测试工作量。还能在测试过程中忽略部分接口调用信息,使被忽略的接口调用信息不参与对待测试应用的测试过程,有助于提升测试效率,并且在得到接口调用信息对应的测试结果后,对部分测试结果进行忽略,从而提高生成最终测试报告的速度。
37.上述说明仅是本技术技术方案的概述,为了能够更清楚了解本技术的技术手段,而可依照说明书的内容予以实施,并且为了让本技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本技术的具体实施方式。
附图说明
38.通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
39.图1是本技术实施例提供的一种应用测试方法的步骤流程图;
40.图2是本技术实施例提供的另一种应用测试方法的步骤流程图;
41.图3是本技术实施例提供的再一种应用测试方法的步骤流程图;
42.图4是本技术实施例提供的一种应用测试装置结构图;
43.图5是本技术实施例提供的另一种应用测试装置结构图;
44.图6是本技术实施例提供的再一种应用测试装置结构图;
45.图7是本技术一个实施例的电子设备的逻辑框图;
46.图8是本技术另一个实施例的电子设备的逻辑框图。
具体实施方式
47.下面将参照附图更详细地描述本技术的示例性实施例。虽然附图中显示了本技术的示例性实施例,然而应当理解,可以以各种形式实现本技术而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本技术,并且能够将本技术的范围
完整的传达给本领域的技术人员。
48.图1是本技术实施例提供的一种应用测试方法的步骤流程图,如图1所示,该方法包括:
49.步骤101、获取待采集应用的待采集接口标识,并根据所述待采集接口标识确定待采集接口,其中,所述待采集接口标识包括外部调用接口标识,以及内部调用接口标识。
50.在本技术实施例中,采集端可以是运行待采集应用的终端设备,也可以是运行待采集应用的终端设备之外的其他终端设备。在采集端是运行待采集应用的终端设备的情况下,可以在待采集应用中内嵌测试子程序,待采集应用运行时,内嵌子程序与待采集应用程序同步启动,并从服务端获取针对待采集应用的待采集接口标识,或读取预设的针对待采集应用的待采集接口标识。在采集端是运行待采集应用的终端设备之外的其他终端设备的情况下,运行待采集应用的终端设备可以在待采集应用启动时向采集端发送启动指令,以使采集端获取针对待采集应用的待采集接口标识,并根据待采集接口标识对待采集应用的接口进行监控。
51.待采集接口标识是指在待采集应用可被调用的所有接口中,需要被采集端监控并获取接口调用信息的接口的标识。根据待采集接口标识,采集端可以确定待采集应用中需要被监控的待采集接口。其中,待采集接口可以包括http接口、dubbo接口等任何类型的接口。如果待采集接口标识包括待采集应用的http接口的标识,则采集端可以根据该http接口的标识识别出调用待采集应用的http接口的http接口调用请求,从而通过监控发送至待采集应用的http接口调用请求,对待采集应用的http接口进行监控。
52.需要说明的是,在本技术实施例中,对待采集应用的某一接口进行监控,本质上是通过对调用该接口的调用请求而实现的,其中,调用请求可以包括外部调用请求和内部调用请求。因此对应的,调用接口标识可以包括外部调用接口标识和内部调用接口标识,根据外部调用接口标识可以实现对待采集应用的接口外部调用进行监控,通过内部调用接口标识可以实现对待采集应用的接口内部调用进行监控。
53.在外部调用请求针对待采集应用的接口外部进行调用时,该外部调用请求可能会在应用程序内部引起其他接口调用请求,则上述外部调用请求在应用程序内部引起其他接口调用请求而引发的接口调用即为接口内部调用。举例来说,如果待采集应用是一款购物应用,一个获取商品信息的外部调用请求调用了待采集应用的http接口,则为了响应该获取商品信息的外部调用请求,待采集应用需要在应用程序内部产生获取商品剩余数量的接口调用请求、获取商品图片的接口调用请求、获取商品价格的接口调用请求等等,上述在应用程序内部产生获取商品剩余数量的接口调用请求、获取商品图片的接口调用请求、获取商品价格的接口调用请求对接口的调用即为接口内部调用。
54.进一步地,接口内部调用还可以包括多层级的接口内部调用,接口外部调用直接引发的接口内部调用可以为一级接口内部调用,一级接口内部调用直接引发的接口内部调用可以为二级接口内部调用,以此类推。延续上述示例,获取商品价格的接口调用请求可以为一级接口调用请求,其引发的接口调用即为一级接口调用,该一级接口调用请求触发后,还可以触发获取商品原价的二级接口调用,以及触发获取商品当前价格的二级接口调用。
55.可选地,步骤101包括:
56.子步骤1011,向服务端发送配置信息加载请求。
57.在本技术实施示例中,可以向服务端发送配置信息加载请求,以确定需要采集接口调用信息的待采集应用标识、待采集接口标识、运行待采集应用的终端设备标识等。
58.子步骤1012,接收所述服务端发送的配置信息,并从所述配置信息中获取待采集应用的待采集接口标识。
59.步骤102,采集所述待采集接口的接口调用信息,其中,所述接口调用信息包括接口外部调用信息和接口内部调用信息。
60.由于对待采集应用的接口调用包括接口外部调用,以及由接口外部调用引发的接口内部调用,因此,在本技术实施例中,需要采集的接口调用信息不仅包括针对待采集应用的接口外部调用信息,还包括针对待采集应用的接口内部调用信息。
61.需要说明的是,接口内部调用信息可以包含多层级的接口内部调用信息,例如由接口外部调用引发的一级接口内部调用信息,由一级接口内部调用引发的二级接口调用信息,以此类推。这样,针对待采集应用的每个外部调用,均可以获取到该外部调用引发的全量调用信息。
62.可选地,步骤102包括:
63.子步骤1021,采集外部调用请求对所述待采集接口进行调用时,产生的接口外部调用信息。
64.在本技术实施例中,可以对所有针对待采集应用的外部调用请求进行监控,获取每个针对待采集应用的外部调用请求的接口调用地址,并将外部调用请求的接口调用地址与待采集接口标识进行比对,确定该外部调用请求调用的接口是否为待采集接口。
65.举例来说,如果待采集接口包括http接口,待采集应用的http接口标识为“/riskservice”(即待采集应用的http接口的调用路径),某个外部调用请求的调用地址为“https://xx.xx.xx.xx/riskservice”,则该外部调用请求即为调用待采集应用的http接口的调用请求。其中“xx.xx.xx.xx”表示运行待采集应用的终端设备标识或地址。
66.接口外部调用信息可以包括调用入参和接口外部调用结果,如果确定某个外部调用请求调用的接口为待采集接口,则获取该外部调用请求的调用入参,并获取被该外部调用请求调用的待采集接口输出的接口外部调用结果。
67.举例来说,某个针对待采集应用的待采集接口的外部调用请求的调用入参可以是商品标识,被该外部调用请求调用的待采集接口输出的接口外部调用结果可以是该商品标识对应商品的商品信息。
68.可选地,子步骤1021包括:
69.子步骤a1,确定所述待采集接口被所述外部调用请求调用时,触发的接口外部调用程序。
70.在对待采集应用的接口进行调用时,待采集应用为了响应和处理调用,必然通过待采集应用中的某些程序(例如类、方法、函数等)来实现。因此,在本技术实施例中,为了获取更加完整的调用信息,可以直接对待采集应用响应针对待采集接口的调用所触发的程序进行监控,以获取更为完整的接口调用信息。因此,在本技术实施例中,外部调用信息可以包括接口外部调用程序、接口外部调用入参和接口外部调用结果。
71.在待采集应用中,针对不同的接口的调用,需要通过不同的程序进行处理和响应。因此,可以预先设置各个待采集接口被外部调用请求调用时,触发的接口外部调用程序和
待采集接口的对应关系,在获取到外部调用请求时,直接对该外部调用请求调用的待采集接口对应的接口外部调用程序进行监控。
72.在本技术实施例中,可以通过bytebuddy技术,对接口外部调用程序进行监控。其中,bytebuddy是一个代码生成和操作库,用于在java应用程序运行时创建和修改java程序(类、方法、函数等),而无需编译器的帮助。通过bytebuddy可以实现在待采集应用运行过程中,对其正在运行的类、方法、函数等进行监控。
73.需要说明的是,上述各个待采集接口被外部调用请求调用时,触发的接口外部调用程序和待采集接口的对应关系可以预先存储在采集端,也可以由采集端开始采集任务时,从服务端进行获取,本技术对于上述对应关系的获取方式并不进行具体限定。
74.子步骤a2,根据所述接口外部调用程序的输入确定所述接口外部调用入参。
75.在本技术实施例中,可以为每个待采集接口设置对应的监控子程序,每个监控子程序可以监控对应的待采集接口的接口外部调用程序,在待采集接口被外部调用请求调用时,获取接口外部调用程序的输入,将该输入确定为该外部调用请求对应的接口外部调用入参。
76.需要说明的是,每个待采集接口可以对应有不止一个接口外部调用程序,因此,每个外部调用请求可以对应有不止一个接口外部调用入参。
77.子步骤a3,根据所述接口外部调用程序的输出确定所述接口外部调用结果。
78.在本技术实施例中,可以为每个待采集接口设置对应的监控子程序,每个监控子程序可以监控对应的待采集接口的接口外部调用程序,在待采集接口被外部调用请求调用时,获取接口外部调用程序的输出,将该输出确定为该外部调用请求对应的接口外部调用结果。
79.需要说明的是,每个待采集接口可以对应有不止一个接口外部调用程序,因此,每个外部调用请求可以对应有不止一个接口外部调用结果。
80.子步骤1022,采集由所述外部调用请求产生的内部调用请求对所述待采集接口进行调用时,产生的接口内部调用信息。
81.在本技术实施例中,可以对外部调用请求引发的内部调用请求进行监控,获取每个内部调用请求的接口调用地址,并将内部调用请求的接口调用地址与待采集接口标识进行比对,确定该内部调用请求调用的接口是否为待采集接口。
82.接口内部调用信息可以包括调用入参和接口内部调用结果,如果确定某个内部调用请求调用的接口为待采集接口,则获取该内部调用请求的调用入参,并获取被该内部调用请求调用的待采集接口输出的接口内部调用结果。
83.子步骤b1,采集所述待采集接口被所述内部调用请求调用时,触发的接口内部调用程序。
84.在本技术实施例中,对于外部调用请求产生的内部调用请求,可以通过监控对应的接口内部调用程序实现对接口调用信息的采集。
85.在对待采集应用的接口进行调用时,待采集应用为了响应和处理调用,必然通过待采集应用中的某些程序(例如类、方法、函数等)来实现。因此,在本技术实施例中,为了获取更加完整的调用信息,可以直接对待采集应用响应针对待采集接口的调用所触发的程序进行监控,以获取更为完整的接口调用信息。因此,在本技术实施例中,外部调用信息可以
包括接口外部调用程序、接口外部调用入参和接口外部调用结果。
86.在待采集应用中,针对不同的接口的调用,需要通过不同的程序进行处理和响应。因此,可以预先设置各个待采集接口被内部调用请求调用时,触发的接口内部调用程序和待采集接口的对应关系,在获取到内部调用请求时,直接对该内部调用请求调用的待采集接口对应的接口内部调用程序进行监控。
87.在本技术实施例中,可以通过bytebuddy技术,对接口内部调用程序进行监控。
88.需要说明的是,上述各个待采集接口被内部调用请求调用时,触发的接口内部调用程序和待采集接口的对应关系可以预先存储在采集端,也可以由采集端开始采集任务时,从服务端进行获取,本技术对于上述对应关系的获取方式并不进行具体限定。
89.子步骤b2,根据所述接口内部调用程序的输入确定所述接口内部调用入参。
90.在本技术实施例中,可以为每个待采集接口设置对应的监控子程序,每个监控子程序可以监控对应的待采集接口的接口内部调用程序,在待采集接口被内部调用请求调用时,获取接口内部调用程序的输入,将该输入确定为该内部调用请求对应的接口内部调用入参。
91.需要说明的是,每个待采集接口可以对应有不止一个接口内部调用程序,因此,每个内部调用请求可以对应有不止一个接口内部调用入参。
92.子步骤b3,根据所述接口内部调用程序的输出确定所述接口内部调用结果。
93.在本技术实施例中,可以为每个待采集接口设置对应的监控子程序,每个监控子程序可以监控对应的待采集接口的接口内部调用程序,在待采集接口被内部调用请求调用时,获取接口内部调用程序的输出,将该输出确定为该内部调用请求对应的接口内部调用结果。
94.需要说明的是,每个待采集接口可以对应有不止一个接口内部调用程序,因此,每个内部调用请求可以对应有不止一个接口内部调用结果。
95.步骤103,将所述接口调用信息发送至测试端,以使得所述测试端根据所述接口调用信息对待测试应用进行测试。
96.在本技术实施例中,采集端可以对待采集应用的待采集接口进行调用信息的采集,在采集到待采集接口的接口调用信息后,可以将接口调用信息发送至测试端,以供测试端根据接口调用信息对待测试应用进行测试。
97.具体地,可以在每采集到一个接口调用信息后,直接将该接口调用信息发送至测试端,也可以在每次采集任务完成后,将采集任务中采集到的全部接口调用信息统一打包发送至测试端。
98.可选地,步骤103包括:
99.将所述接口调用信息发送至消息中间件,以使得所述消息中间件将所述调用信息异步传输至测试端。
100.在本技术实施示例中,还可以设置有消息中间件,消息中间件可用于转发由采集端发送至测试端的接口调用信息。采集端每采集到一个接口调用信息后,可以直接将该接口调用信息发送至消息中间件,由消息中间件与测试端建立连接,并选取合适的发送方式将消息中间件发送至测试端,以实现对接口调用信息的异步发送,采集端无需在收到测试端的送达提醒后再发送下一条接口调用信息,可以不考虑接口调用信息是否送达测试端,
在采集到每条接口调用信息均直接发出至消息中间件,避免接口调用信息在采集端堆积,影响采集端的采集效率和采集效果。其中,消息中间件可以采用apache kafka系统,kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。
101.综上,为本技术实施例提供的一种应用测试方法,在本技术实施例中,包括:获取待采集应用的待采集接口标识,并根据待采集接口标识确定待采集接口,其中,待采集接口标识包括外部调用接口标识,以及内部调用接口标识;采集待采集接口的接口调用信息,其中,接口调用信息包括外部调用信息和内部调用信息;将接口调用信息发送至测试端,以使得测试端根据接口调用信息对待测试应用进行测试。本技术可以在待采集应用运行过程中,采集待采集应用的接口调用信息,并根据待采集应用的接口调用信息对待测试应用进行测试,无需测试人员人工为待测试应用准备测试数据,提高了应用测试的效率,并且,由于采集的接口调用信息包含接口外部调用信息和接口内部调用信息,不仅可以对待测试应用的外部接口进行测试,还可以对待测试应用的内部接口进行测试,提高了应用测试的效果。
102.图2是本技术实施例提供的另一种应用测试方法的步骤流程图,应用于测试端,如图2所示,该方法包括:
103.步骤201,获取从待采集应用采集到的接口调用信息,其中,所述接口调用信息包括接口外部调用信息和接口内部调用信息。
104.在本技术实施例中,测试端可以是运行待测试应用的终端设备,也可以是运行待测试应用的终端设备之外的其他终端设备。在测试端是运行待测试应用的终端设备的情况下,可以在待测试应用中内嵌测试子程序,可以在需要对待测试应用进行测试时,使待测试应用运行,内嵌子程序与待测试应用程序同步启动,内嵌子程序接收从采集端发送的接口调用信息,以使测试端获取用于测试待测试应用的接口调用信息。在测试端是运行待测试应用的终端设备之外的其他终端设备的情况下,测试端可以在接收到针对待测试应用的测试指令时,向运行待测试应用的终端设备发送启动指令,并接收从采集端发送的接口调用信息,以通过接口调用信息对待测试应用进行测试。
105.可选地,步骤201包括:
106.子步骤2011,从消息中间件中获取待采集应用的接口调用信息,并将所述接口调用信息从所述消息中间件中删除,其中,所述接口调用信息由采集端发送至所述消息中间件。
107.在本技术实施例中,为了使接口调用信息可以在采集端和测试端之间进行异步传输,可以由消息中间件接收采集端发送的接口调用信息,再由测试端从消息中间件中获取待采集应用的接口调用信息。
108.进一步地,为了节省消息中间件的存储空间,避免消息中间件随着存储的接口调用信息越来越多而导致性能下降,在测试端从消息中间件获取到接口调用信息后,可以将该接口调用信息从消息中间件中删除。
109.子步骤2012,将所述接口调用信息存储至目标存储器中。
110.由于测试过程可能需要进行多次,因此,可以将从消息中间件中删除的接口调用信息重新存储至目标存储器中,以对从消息中间件中删除的接口调用信息进行持久化保
存,便于后续使用。
111.步骤202,根据所述接口调用信息对待测试应用进行测试,得到所述待测试应用的测试输出结果。
112.由于每个接口调用信息中都包含有调用请求,因此,在获取到接口调用信息后,可以将接口调用信息中的调用请求发送至待测试应用,以对待测试应用中调用请求对应的接口进行测试,并得到该接口响应调用请求所输出的测试输出结果。
113.在本技术实施例中,使用每个接口调用请求对待测试应用进行测试后,均可以得到该接口调用请求对应的测试输出结果。
114.可选地,步骤202包括:
115.子步骤2021,获取白名单调用信息对应的模拟测试结果。
116.对于一个复杂的外部调用,其内部可能涉及非常多的内部调用,例如,应用的某个业务对外暴露的是一个http接口,通过对该http接口进行外部调用可以实现该业务,但是在这个http接口的内部业务逻辑中,可能需要执行多个内部调用(如查询了一个http接口,查询了一个dubbo接口,查询了一个mysql数据库,查询了一个hbase数据库,查询了一个es数据库,然后又写了一个es数库据,写了一个hbase数据等)。则由执行该业务的外部调用请求会产生一个接口外部调用信息和多个接口内部调用信息,这些接口调用信息中可能存在一些不适合在待测试应用中直接进行测试的接口调用信息。则可以将这些不适合直接调用的接口存入测试白名单中,在对测试白名单中的接口进行测试时,可以不向待测试应用的接口发送调用请求,而是直接获取接口调用信息中的接口调用结果,作为对测试白名单中接口的测试输出结果。
117.举例来说,某个dubbo接口可能是付费接口,按调用次数收费,如果采集端采集到的接口调用信息中包含对该dubbo接口的接口调用信息,则测试端可能不适合对该接口调用信息进行直接测试,则可以将该dubbo接口存入测试白名单中,在对待测试应用中的dubbo接口进行测试时,可以不向待测试应用的dubbo接口发送调用请求,而是直接获取接口调用信息中的接口调用结果,作为对该dubbo接口的测试输出结果。
118.再举例来说,在某些情况下,采集端和测试端之间没有完全进行数据隔离,可能存在某些数据库的共用情况,由于采集端一般为正常运行的生产环境,待采集应用直接给用户提供服务,而测试端为对应用的测试环境,如果测试端贸然对数据库执行写操作,可能会影响生产环境的数据,导致下游业务发生错误。因此,对于某些向数据库写入数据的接口,也可以放入接口白名单中,避免在测试端进行测试的过程中,使待测试软件在数据库写入内容而对生产环境产生影响。
119.子步骤2022,在所述接口调用信息与所述白名单调用信息匹配的情况下,将所述白名单调用信息对应的模拟测试结果,确定为所述接口调用信息对应的测试输出结果。
120.在本技术实施例中,可以通过mock测试对接口白名单中的接口进行测试,mock测试就是在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的应用测试方法。技术人员可以预先设置接口白名单,并在采集端获取配置信息的阶段将接口白名单发送至采集端,采集端在采集接口白名单中接口的接口信息时,可以根据该接口的接口调用结果生成该接口对应的mock数据,并将mock数据发送至测试端。测试端可以根据接口白名单对接口调用信息进行匹配,将接口白名单中的接口对应的
接口调用信息确定为白名单调用信息,在通过白名单调用信息对待测试应用进行测试时,直接过去该白名单调用信息对应的mock数据作为测试输出结果。
121.在接口调用信息中包含待采集应用的接口调用结果的情况下,还可以直接将白名单调用信息中的接口调用结果作为该白名单调用信息对应的测试输出结果。
122.子步骤2023,在所述接口调用信息与所述白名单调用信息不匹配的情况下,根据所述接口调用信息对待测试应用进行测试,得到所述待测试应用的测试输出结果。
123.可选地,子步骤2023包括:
124.子步骤c1,从所述接口调用信息中获取接口调用请求,其中,所述接口调用请求包括接口内部调用请求和接口外部调用请求。
125.子步骤c2,向待测试应用发送所述接口调用请求,获取所述待测试应用产生的测试输出结果。
126.在本技术实施示例中,接口调用请求可以包含接口内部调用请求和接口外部调用请求两种类型。在测试过程中,可以通过接口外部调用请求对该请求对应的接口进行外部测试,即向待测试应用暴露的接口发送接口外部调用请求,并获取待测试应用程序向外部的输出结果作为该接口外部调用请求的测试输出结果。可以通过接口内部调用请求对该请求对应的接口进行内部测试,即向待测试应用的接口发送接口内部调用请求,并获取该接口内部调用请求对应的测试输出结果。
127.可选地,子步骤c2包括:
128.子步骤c1,从所述接口调用信息中获取接口调用程序标识和接口调用入参,其中,所述接口调用程序标识包括接口外部调用程序标识和接口内部调用程序标识,所述接口调用入参包括接口外部调用入参和接口内部调用入参。
129.在本技术实施示例中,由于采集端可以通过对待采集应用的接口调用程序进行监控,并在接口被调用时,获取接口对应的接口调用程序的标识和入参,因此,测试端接收到的接口调用信息中还可以包含有待采集应用中用于执行调用请求的接口调用程序的标识,以及接口调用程序对应的接口调用入参。
130.需要说明的是,接口调用程序标识可以包括多层级的程序标识,例如,在程序为方法的情况下,接口调用程序标识可以包含该方法的方法标识,还可以包含该方法所属的类的类标识。接口调用入参不但可以包含参数值,还可以包含该参数值的输入类型,例如int类型、char类型等。
131.举例来说,如果某个调用请求在待采集应用中激活了如下方法:
132.package com.java4all.grouth.designmode.template;
133.public class basketball extends game{
134.public string test(string username,integerage){
135.return username+“:”+age;}
136.其中,test为激活的方法名;
137.test(string,integer)为该方法的标识符;
138.com.java4all.grouth.designmode.template为该方法所述的类的包名;
139.basketball为该方法所属的类的类名;
140.com.java4all.grouth.designmode.template.basketball为该方法所述的类的
标识符。
141.则该调用请求的接口调用信息中的调用程序标识可以包括:类的标识符com.java4all.grouth.designmode.template.basketball和方法的标识符test(string,integer)。则该调用请求的接口调用入参可以包括:传入该test方法的username的参数值,以及该参数值对应的参数类型。
142.子步骤c2,将所述接口调用入参输入待测试应用的接口调用程序,获取所述待测试应用的接口调用程序输出的测试输出结果。
143.在测试过程中,从接口调用信息中获取调用程序标识后,可以直接将接口调用程序标识对应的接口调用入参输入待测试应用中该调用程序标识对应的程序中,并获取该程序的输出结果作为该接口调用信息的测试输出结果。
144.这样,即使待采集应用于待测试应用不同,在待测试应用无法响应待采集应用可以响应的接口调用请求的情况下,只要待测试应用中存在于待采集应用中相同的程序(例如函数、类、方法等),也可以采用从待采集应用采集的接口调用信息,完成对待测试应用的测试,提升了本应用测试方法的适用范围。
145.步骤203,将所述测试输出结果发送至服务端,以使得所述服务端根据所述测试输出结果和所述接口调用信息生成应用测试报告。
146.测试端根据接口调用信息对待测试应用测试后,会得到待测试应用输出的各个接口调用请求对应的测试输出结果。在一种实施方式中,测试端可以直接将对应的待测试应用的测试输出结果与待采集应用的接口调用结果进行比对,并生成待测试应用的应用测试报告,如果相同接口调用请求的测试输出结果和接口调用结果不同,则说明待采集软件和待测试软件对于相同接口调用请求的响应过程存在区别,即说明待测试软件的对应接口可能存在问题,需要进一步处理。
147.在另一种实时方式中,测试端在得到各个接口调用请求的测试输出结果后,可以不在本端输出最终的应用测试报告,可以将测试输出结果发送至服务端,服务端对测试输出结果与待采集应用的接口调用结果进行比对,并生成应用测试报告。
148.可选地,步骤203包括:
149.将所述测试输出结果发送至消息中间件,以使得所述消息中间件将所述测试输出结果异步传输至服务端。
150.具体地,还可以设置有消息中间件,消息中间件可用于转发由测试端发送至服务端的测试输出结果。采集端每采集到一个接口调用信息后,可以直接将该测试输出结果发送至消息中间件,由消息中间件与服务端建立连接,并选取合适的发送方式将消息中间件发送至服务端,以实现对测试输出结果的异步发送,测试端无需在收到服务端的送达提醒后再发送下一条测试输出结果,可以不考虑测试输出结果是否送达服务端,在采集到每条测试输出结果均直接发出至消息中间件,避免测试输出结果在测试端堆积,影响测试端的测试效率和测试效果。其中,消息中间件可以采用apache kafka系统,kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。
151.需要说明的是,采集端或测试端还可以将接口调用结果发送至服务端,以便服务端将接口调用结果与测试输出结果进行比对,生成应用测试报告。
152.综上,为本技术实施例提供的另一种应用测试方法,包括:获取从待采集应用采集
到的接口调用信息,其中,接口调用信息包括接口外部调用信息和接口内部调用信息;根据接口调用信息对待测试应用进行测试,得到待测试应用的测试输出结果;将测试输出结果发送至服务端,以使得服务端根据测试输出结果和接口调用信息生成应用测试报告。本技术可以在待采集应用运行过程中,采集待采集应用的接口调用信息,并根据待采集应用的接口调用信息对待测试应用进行测试,无需测试人员人工为待测试应用准备测试数据,提高了应用测试的效率,并且,由于采集的接口调用信息包含接口外部调用信息和接口内部调用信息,不仅可以对待测试应用的外部接口进行测试,还可以对待测试应用的内部接口进行测试,提高了应用测试的效果。
153.图3是本技术实施例提供的再一种应用测试方法的步骤流程图,应用于服务端,如图3所示,该方法包括:
154.步骤301,获取从待采集应用采集到的接口调用信息,其中,所述接口调用信息包括接口外部调用信息和接口内部调用信息。
155.在本技术实施例中,为了使接口调用信息可以在采集端和服务端之间进行异步传输,可以由消息中间件接收采集端发送的接口调用信息,再由服务端从消息中间件中获取待采集应用的接口调用信息。
156.进一步地,为了节省消息中间件的存储空间,避免消息中间件随着存储的接口调用信息越来越多而导致性能下降,在服务端从消息中间件获取到接口调用信息后,可以将该接口调用信息从消息中间件中删除。
157.由于测试过程可能需要进行多次,因此,可以将从消息中间件中删除的接口调用信息重新存储至目标存储器中,以对从消息中间件中删除的接口调用信息进行持久化保存,便于后续使用。
158.步骤302,获取从待测试应用采集到的测试输出结果,其中,所述测试输出结果由测试端通过所述接口调用信息对所述待测试应用进行测试得到。
159.在本技术实施例中,为了使测试输出结果可以在测试端和服务端之间进行异步传输,可以由消息中间件接收测试端发送的测试输出结果,再由服务端从消息中间件中获取测试输出结果。
160.进一步地,为了节省消息中间件的存储空间,避免消息中间件随着存储的测试输出结果越来越多而导致性能下降,在服务端从消息中间件获取到测试输出结果后,可以将该测试输出结果从消息中间件中删除。
161.由于测试过程可能需要进行多次,因此,可以将从消息中间件中删除的测试输出结果重新存储至目标存储器中,以对从消息中间件中删除的测试输出结果进行持久化保存,便于后续使用。
162.步骤303,根据所述接口调用信息和所述测试输出结果生成应用测试报告。
163.在本技术实施例中,服务端可以直接将接口调用信息和测试输出结果进行拼接、组合等处理,得到包含接口调用信息和测试输出结果的测试报告,供技术人员根据测试报告对本次测试进行分析,进而对待测试应用进行调整。
164.此外,服务端也可以对接口调用信息和测试输出结果进行处理后,生成应用测试报告。例如,服务端可以根据接口调用信息和测试输出结果,确定待测试应用中出现问题的结果的接口标识、出现问题的程序的标识、接口调用结果与测试输出结果之间的差异性等。
165.需要说明的是,服务端可以基于技术人员设定的分析方法和分析规则,对接口调用信息和测试输出结果进行分析,以确定出待测试应用与待采集应用之间的异同并生成测试报告。
166.可选地,步骤303包括:
167.子步骤3031,从所述接口调用信息中获取接口调用结果,以及所述接口调用结果对应的接口调用请求。
168.在本技术实施例中,采集端在采集接口调用信息时,每一条接口调用信息中都会包含接口调用请求和该接口调用请求调用对应接口后,对应接口产生的接口调用结果。因此,可以从接口调用信息中获取接口调用结果,并获取该接口调用结果对应的接口调用请求。
169.子步骤3032,将所述接口调用请求对应的接口调用结果,与所述接口调用请求对应的测试输出结果进行比对,根据比对结果生成应用测试报告。
170.在本技术实施示例中,测试端在向服务端发送测试输出结果时,还可同时发送测试输出结果对应的接口调用请求,该测试输出结果对应的接口调用请求,用于描述待测试应用输出该测试输出结果所响应的接口调用请求。因此,在得到接口调用结果和接口调用结果对应的接口调用请求后,还可以根据接口调用结果对应的接口调用请求,根据测试输出结果与接口调用请求的对应关系,匹配出接口调用结果对应的接口调用请求的测试输出结果,即确定出同一接口调用请求对应的接口调用结果和测试输出结果,以便后续对同一接口调用请求对应的接口调用结果和测试输出结果进行比对。
171.进一步地,在本技术实施例中,待采集应用可以是与待测试应用不同的应用,两者的代码可以不同,因此,待采集应用能够响应的接口调用请求,对于待测试应用而言可能并不能正常响应,因此,除了可以通过接口调用请求对待测试应用进行测试外,还可以通过接口调用入参、接口调用程序对待测试应用进行测试,在这种情况下,接口调用入参是指待采集应用为了响应一个接口调用请求,向一个或多个接口调用程序输入的参数,接口调用结果则表示上述一个或多个接口调用程序根据接口调用入参所输出的结果。其中,接口调用程序可以包括接口外部调用程序和接口内部调用程序,对应的,接口调用入参可以包括接口外部调用入参和接口内部调用入参。
172.在待采集应用与待测试应用不同的情况下,测试输出结果是指将接口调用入参输入待测试应用的接口调用程序后,该接口调用程序的输出。因此,可以从接口调用信息中获取接口调用程序以及接口调用程序对应的接口调用结果,并基于接口调用程序与测试输出结果之间的对应关系,确定相同接口调用程序对应的测试输出结果,从而得到相同接口调用程序对应的接口调用结果和测试输出结果。并在后续过程中对相同接口调用程序对应的接口调用结果和测试输出结果进行比对,得到应用测试报告。
173.可选地,子步骤3032包括:
174.子步骤d1,获取所述接口调用请求对应的接口调用结果的比对规则。
175.由于接口调用结果和测试输出结果的数据结构和数据内容通常较为复杂,例如,接口调用结果和测试输出结果可以是复杂的json对象或json字符串,两者的每次比对都需要消耗较大的运算量,当大量接口调用结果和测试输出结果进行比对时效率较低。
176.因此,在本技术实施例中,对于每种接口调用对应的接口调用结果,可以设置对应
的比对规则,在比对规则中,可以对接口调用结果中需要比对的数据结构进行限定,以剔除接口调用结果中无需比对的内容,达到快速比对的效果。需要说明的是,由于接口调用结果与测试输出结果具有相同的数据结构,因此,对于接口调用结果对应的测试输出结果,也可以采用相同的比对规则对测试输出结果中需要比对的数据结构进行限定,以剔除测试输出结果中无需比对的内容,提高比对效率。
177.举例来说,在采集端用接口调用请求a调用待采集应用的接口b时,采集到接口调用结果c,接口调用结果c的数据结构为如下json对象:
[0178][0179]
在测试端用接口调用请求a调用待测试应用的接口b时,得到测试输出结果d,测试输出结果d的数据结构为如下json对象:
[0180][0181]
则该接口调用结果c对应的比对规则中,可以仅指定使接口调用结果c中a.b.c的值(即"zhangsan")参与比对,而忽略a.b.d、a.b.e和a.i的值,同样的,该比对规则应用于测试输出结果d时,可以仅指定使测试输出结果d中a.b.c的值(即"niumen")参与比对,而忽略
a.b.d、a.b.e和a.i的值。
[0182]
子步骤d2,基于所述比对规则从所述接口调用结果中确定第一比对内容,并基于所述比对规则从所述接口调用请求对应的测试输出结果中确定第二比对内容,其中,所述第一比对内容为所述接口调用结果中的部分内容,所述第二比对内容为所述测试输出结果中的部分内容。
[0183]
根据接口调用结果对应的比对规则,可以从接口调用结果中提取出需要比对的第一比对内容,根据接口调用结果对应的比对规则,可以从接口调用结果对应的测试输出结果中提取出需要比对的第二比对内容,从而将内容较少的第一比对内容和内容较少的第二比对内容进行比对,以避免对整个接口调用结果和测试输出结果进行比对,降低运算资源的消耗量,提高比对效率,从而提高生成应用测试报告的速度。
[0184]
沿用上述子步骤d1中的示例,采用接口调用结果c对应的比对规则对接口调用结果c进行提取得到的第一比对内容为zhangsan,采用上述比对规则对接口调用结果c对应的测试输出结果d进行提取器得到的第二比对内容为niumen,则在比对接口调用结果c和测试输出结果d时,仅需要将“zhangsan”和“niumen”进行比对。
[0185]
子步骤d3,对所述第一比对内容与所述第二比对内容进行比对。
[0186]
在得到第一比对内容和第二比对内容之后,可以将第一比对内容和第二比对内容进行比对,并得到比对结果,再根据比对结果生成测试报告。
[0187]
进一步地,在本技术实施例中,在得到比对结果后,还可以向用户提供比对结果管理页面,比对结果管理页面中可以包括一致的比对结果和不一致的比对结果,用户可以在比对结果管理页面中对比对结果进行忽略处理,以舍弃用户不关心的比对结果,从而提升后续生成测试报告的效率。
[0188]
综上,为本技术实施例提供的再一种应用测试方法,包括:获取从待采集应用采集到的接口调用信息,其中,接口调用信息包括接口外部调用信息和接口内部调用信息;获取从待测试应用采集到的测试输出结果,其中,测试输出结果由测试端通过接口调用信息对待测试应用进行测试得到;根据接口调用信息和测试输出结果生成应用测试报告。本技术可以在待采集应用运行过程中,采集待采集应用的接口调用信息,并根据待采集应用的接口调用信息对待测试应用进行测试,得到应用测试报告,无需测试人员人工为待测试应用准备测试数据,提高了应用测试的效率,并且,由于采集的接口调用信息包含接口外部调用信息和接口内部调用信息,不仅可以对待测试应用的外部接口进行测试,还可以对待测试应用的内部接口进行测试,提高了应用测试的效果。
[0189]
与上述本技术的应用测试方法实施例所提供的方法相对应,参见图4,本技术还提供了一种应用测试装置结构图,在本实施例中,该装置包括:
[0190]
获取模块401,用于获取待采集应用的待采集接口标识,并根据所述待采集接口标识确定待采集接口,其中,所述待采集接口标识包括外部调用接口标识,以及内部调用接口标识;
[0191]
采集模块402,用于采集所述待采集接口的接口调用信息,其中,所述接口调用信息包括接口外部调用信息和接口内部调用信息;
[0192]
发送模块403,用于将所述接口调用信息发送至测试端,以使得所述测试端根据所述接口调用信息对待测试应用进行测试。
[0193]
在一种可选实施方式中,所述采集模块包括:
[0194]
第一采集子模块,用于采集外部调用请求对所述待采集接口进行调用时,产生的接口外部调用信息;
[0195]
内部调用请求子模块,用于获取由所述外部调用请求产生的内部调用请求;
[0196]
第二采集子模块,用于采集由所述外部调用请求产生的内部调用请求对所述待采集接口进行调用时,产生的接口内部调用信息。
[0197]
在一种可选实施方式中,所述接口外部调用信息包括接口外部调用程序、接口外部调用入参和接口外部调用结果,所述装置还包括:
[0198]
外部调用程序模块,用于确定所述待采集接口被所述外部调用请求调用时,触发的接口外部调用程序;
[0199]
外部调用入参模块,用于根据所述接口外部调用程序的输入确定所述接口外部调用入参;
[0200]
外部调用结果模块,用于根据所述接口外部调用程序的输出确定所述接口外部调用结果。
[0201]
在一种可选实施方式中,所述接口内部调用信息包括接口内部调用程序、接口内部调用入参和接口内部调用结果,所述方法还包括:
[0202]
内部调用程序模块,用于采集所述待采集接口被所述内部调用请求调用时,触发的接口内部调用程序;
[0203]
内部调用入参模块,用于根据所述接口内部调用程序的输入确定所述接口内部调用入参;
[0204]
内部调用结果模块,用于根据所述接口内部调用程序的输出确定所述接口内部调用结果。
[0205]
在一种可选实施方式中,所述获取模块包括:
[0206]
请求子模块,用于向服务端发送配置信息加载请求;
[0207]
配置子模块,用于接收所述服务端发送的配置信息,并从所述配置信息中获取待采集应用的待采集接口标识。
[0208]
在一种可选实施方式中,所述发送模块包括:
[0209]
发送子模块,用于将所述接口调用信息发送至消息中间件,以使得所述消息中间件将所述调用信息异步传输至测试端。
[0210]
综上,本技术实施例提供的一种应用测试装置,包括:获取模块,用于获取待采集应用的待采集接口标识,并根据待采集接口标识确定待采集接口,其中,待采集接口标识包括外部调用接口标识,以及内部调用接口标识;采集模块,用于采集待采集接口的接口调用信息,其中,接口调用信息包括接口外部调用信息和接口内部调用信息;发送模块,用于将接口调用信息发送至测试端,以使得测试端根据接口调用信息对待测试应用进行测试。可以在待采集应用运行过程中,采集待采集应用的接口调用信息,并根据待采集应用的接口调用信息对待测试应用进行测试,无需测试人员人工为待测试应用准备测试数据,提高了应用测试的效率,并且,由于采集的接口调用信息包含接口外部调用信息和接口内部调用信息,不仅可以对待测试应用的外部接口进行测试,还可以对待测试应用的内部接口进行测试,提高了应用测试的效果。
[0211]
与上述本技术的应用测试方法实施例所提供的方法相对应,参见图5,本技术还提供了另一种应用测试装置结构图,在本实施例中,该装置包括:
[0212]
获取模块411,用于获取从待采集应用采集到的接口调用信息,其中,所述接口调用信息包括接口外部调用信息和接口内部调用信息;
[0213]
测试模块412,用于根据所述接口调用信息对待测试应用进行测试,得到所述待测试应用的测试输出结果;
[0214]
发送模块413,用于将所述测试输出结果发送至服务端,以使得所述服务端根据所述测试输出结果和所述接口调用信息生成应用测试报告。
[0215]
在一种可选实施方式中,所述测试模块包括:
[0216]
第一获取子模块,用于从所述接口调用信息中获取接口调用请求,其中,所述接口调用请求包括接口内部调用请求和接口外部调用请求;
[0217]
第一测试子模块,用于向待测试应用发送所述接口调用请求,获取所述待测试应用产生的测试输出结果。
[0218]
在一种可选实施方式中,所述测试模块包括:
[0219]
第二获取子模块,用于从所述接口调用信息中获取接口调用程序标识和接口调用入参,其中,所述接口调用程序标识包括接口外部调用程序标识和接口内部调用程序标识,所述接口调用入参包括接口外部调用入参和接口内部调用入参;
[0220]
第二测试子模块,用于将所述接口调用入参输入待测试应用的接口调用程序,获取所述待测试应用的接口调用程序输出的测试输出结果。
[0221]
在一种可选实施方式中,所述测试模块包括:
[0222]
模拟测试结果子模块,用于获取白名单调用信息对应的模拟测试结果;
[0223]
模拟测试子模块,用于在所述接口调用信息与所述白名单调用信息匹配的情况下,将所述白名单调用信息对应的模拟测试结果,确定为所述接口调用信息对应的测试输出结果;
[0224]
测试子模块,用于在所述接口调用信息与所述白名单调用信息不匹配的情况下,根据所述接口调用信息对待测试应用进行测试,得到所述待测试应用的测试输出结果。
[0225]
在一种可选实施方式中,所述获取模块包括:
[0226]
获取子模块,用于从消息中间件中获取待采集应用的接口调用信息,并将所述接口调用信息从所述消息中间件中删除,其中,所述接口调用信息由采集端发送至所述消息中间件;
[0227]
存储子模块,用于将所述接口调用信息存储至目标存储器中。
[0228]
在一种可选实施方式中,所述发送模块包括:
[0229]
发送子模块,用于将所述测试输出结果发送至消息中间件,以使得所述消息中间件将所述测试输出结果异步传输至服务端。
[0230]
综上,本技术实施例提供的另一种应用测试装置,包括:获取模块,用于获取从待采集应用采集到的接口调用信息,其中,所述接口调用信息包括接口外部调用信息和接口内部调用信息;测试模块,用于根据所述接口调用信息对待测试应用进行测试,得到所述待测试应用的测试输出结果;发送模块,用于将所述测试输出结果发送至服务端,以使得所述服务端根据所述测试输出结果和所述接口调用信息生成应用测试报告。可以在待采集应用
运行过程中,采集待采集应用的接口调用信息,并根据待采集应用的接口调用信息对待测试应用进行测试,无需测试人员人工为待测试应用准备测试数据,提高了应用测试的效率,并且,由于采集的接口调用信息包含接口外部调用信息和接口内部调用信息,不仅可以对待测试应用的外部接口进行测试,还可以对待测试应用的内部接口进行测试,提高了应用测试的效果。
[0231]
与上述本技术的应用测试方法实施例所提供的方法相对应,参见图6,本技术还提供了再一种应用测试装置结构图,在本实施例中,该装置包括:
[0232]
第一获取模块421,用于获取从待采集应用采集到的接口调用信息,其中,所述接口调用信息包括接口外部调用信息和接口内部调用信息;
[0233]
第二获取模块422,用于获取从待测试应用采集到的测试输出结果,其中,所述测试输出结果由测试端通过所述接口调用信息对所述待测试应用进行测试得到;
[0234]
生成模块423,用于根据所述接口调用信息和所述测试输出结果生成应用测试报告。
[0235]
在一种可选实施方式中,所述生成模块包括:
[0236]
第一获取子模块,用于从所述接口调用信息中获取接口调用结果,以及所述接口调用结果对应的接口调用请求;
[0237]
比对子模块,用于将所述接口调用请求对应的接口调用结果,与所述接口调用请求对应的测试输出结果进行比对,根据比对结果生成应用测试报告。
[0238]
在一种可选实施方式中,所述比对子模块包括:
[0239]
第二获取子模块,用于获取所述接口调用请求对应的接口调用结果的比对规则;
[0240]
比对内容子模块,用于基于所述比对规则从所述接口调用结果中确定第一比对内容,并基于所述比对规则从所述接口调用请求对应的测试输出结果中确定第二比对内容,其中,所述第一比对内容为所述接口调用结果中的部分内容,所述第二比对内容为所述测试输出结果中的部分内容;
[0241]
内容比对子模块,用于对所述第一比对内容与所述第二比对内容进行比对。
[0242]
综上,本技术实施例提供的再一种应用测试装置,包括:第一获取模块,用于获取从待采集应用采集到的接口调用信息,其中,所述接口调用信息包括接口外部调用信息和接口内部调用信息;第二获取模块,用于获取从待测试应用采集到的测试输出结果,其中,所述测试输出结果由测试端通过所述接口调用信息对所述待测试应用进行测试得到;生成模块,用于根据所述接口调用信息和所述测试输出结果生成应用测试报告。本技术可以在待采集应用运行过程中,采集待采集应用的接口调用信息,并根据待采集应用的接口调用信息对待测试应用进行测试,得到应用测试报告,无需测试人员人工为待测试应用准备测试数据,提高了应用测试的效率,并且,由于采集的接口调用信息包含接口外部调用信息和接口内部调用信息,不仅可以对待测试应用的外部接口进行测试,还可以对待测试应用的内部接口进行测试,提高了应用测试的效果。
[0243]
与上述本技术的应用测试方法实施例所提供的方法相对应,本技术还提供了一种应用测试系统,在本实施例中,该系统包括:
[0244]
采集端,用于获取待采集应用的待采集接口标识,并根据所述待采集接口标识确定待采集接口;采集所述待采集接口的接口调用信息;将所述接口调用信息发送至测试端,
以使得所述测试端根据所述接口调用信息对待测试应用进行测试;其中,所述待采集接口标识包括外部调用接口标识,以及内部调用接口标识,所述接口调用信息包括接口外部调用信息和接口内部调用信息;
[0245]
测试端,用于获取从待采集应用采集到的接口调用信息;根据所述接口调用信息对待测试应用进行测试,得到所述待测试应用的测试输出结果;将所述测试输出结果发送至服务端,以使得所述服务端根据所述测试输出结果和所述接口调用信息生成应用测试报告;
[0246]
服务端,用于获取从待采集应用采集到的接口调用信息;获取从待测试应用采集到的测试输出结果;根据所述接口调用信息和所述测试输出结果生成应用测试报告;其中,所述接口调用信息包括接口外部调用信息和接口内部调用信息,所述测试输出结果由测试端通过所述接口调用信息对所述待测试应用进行测试得到。
[0247]
在一种可选实施方式中,所述采集所述待采集接口的接口调用信息,包括:
[0248]
采集外部调用请求对所述待采集接口进行调用时,产生的接口外部调用信息;获取由所述外部调用请求产生的内部调用请求;采集由所述外部调用请求产生的内部调用请求对所述待采集接口进行调用时,产生的接口内部调用信息。
[0249]
在一种可选实施方式中,所述接口外部调用信息包括接口外部调用程序、接口外部调用入参和接口外部调用结果,所述采集端,还用于确定所述待采集接口被所述外部调用请求调用时,触发的接口外部调用程序;根据所述接口外部调用程序的输入确定所述接口外部调用入参;根据所述接口外部调用程序的输出确定所述接口外部调用结果。
[0250]
在一种可选实施方式中,所述接口内部调用信息包括接口内部调用程序、接口内部调用入参和接口内部调用结果,所述采集端,还用于采集所述待采集接口被所述内部调用请求调用时,触发的接口内部调用程序;根据所述接口内部调用程序的输入确定所述接口内部调用入参;根据所述接口内部调用程序的输出确定所述接口内部调用结果。
[0251]
在一种可选实施方式中,所述获取待采集应用的待采集接口标识,包括:
[0252]
向服务端发送配置信息加载请求;接收所述服务端发送的配置信息,并从所述配置信息中获取待采集应用的待采集接口标识。
[0253]
在一种可选实施方式中,所述将所述接口调用信息发送至测试端,包括:
[0254]
将所述接口调用信息发送至消息中间件,以使得所述消息中间件将所述调用信息异步传输至测试端。
[0255]
在一种可选实施方式中,所述根据所述接口调用信息对待测试应用进行测试,得到所述待测试应用的测试输出结果,包括:
[0256]
从所述接口调用信息中获取接口调用请求,其中,所述接口调用请求包括接口内部调用请求和接口外部调用请求;向待测试应用发送所述接口调用请求,获取所述待测试应用产生的测试输出结果。
[0257]
在一种可选实施方式中,所述根据所述接口调用信息对待测试应用进行测试,得到所述待测试应用的测试输出结果,包括:
[0258]
从所述接口调用信息中获取接口调用程序标识和接口调用入参;将所述接口调用入参输入待测试应用的接口调用程序,获取所述待测试应用的接口调用程序输出的测试输出结果,其中,所述接口调用程序标识包括接口外部调用程序标识和接口内部调用程序标
识,所述接口调用入参包括接口外部调用入参和接口内部调用入参。
[0259]
在一种可选实施方式中,所述根据所述接口调用信息对待测试应用进行测试,得到所述待测试应用的测试输出结果,包括:
[0260]
获取白名单调用信息对应的模拟测试结果;在所述接口调用信息与所述白名单调用信息匹配的情况下,将所述白名单调用信息对应的模拟测试结果,确定为所述接口调用信息对应的测试输出结果;在所述接口调用信息与所述白名单调用信息不匹配的情况下,根据所述接口调用信息对待测试应用进行测试,得到所述待测试应用的测试输出结果。
[0261]
在一种可选实施方式中,所述获取从待采集应用采集到的接口调用信息,包括:
[0262]
从消息中间件中获取待采集应用的接口调用信息,并将所述接口调用信息从所述消息中间件中删除;将所述接口调用信息存储至目标存储器中,其中,所述接口调用信息由采集端发送至所述消息中间件。
[0263]
在一种可选实施方式中,所述将所述测试输出结果发送至服务端,包括:
[0264]
将所述测试输出结果发送至消息中间件,以使得所述消息中间件将所述测试输出结果异步传输至服务端。
[0265]
在一种可选实施方式中,所述根据所述接口调用信息和所述测试输出结果生成应用测试报告,包括:
[0266]
从所述接口调用信息中获取接口调用结果,以及所述接口调用结果对应的接口调用请求;将所述接口调用请求对应的接口调用结果,与所述接口调用请求对应的测试输出结果进行比对,根据比对结果生成应用测试报告。
[0267]
在一种可选实施方式中,所述将所述接口调用请求对应的接口调用结果,与所述接口调用请求对应的测试输出结果进行比对,包括:
[0268]
获取所述接口调用请求对应的接口调用结果的比对规则;基于所述比对规则从所述接口调用结果中确定第一比对内容,并基于所述比对规则从所述接口调用请求对应的测试输出结果中确定第二比对内容;对所述第一比对内容与所述第二比对内容进行比对,其中,所述第一比对内容为所述接口调用结果中的部分内容,所述第二比对内容为所述测试输出结果中的部分内容。
[0269]
综上,本技术实施例提供的应用测试系统,可以在待采集应用运行过程中,采集待采集应用的接口调用信息,并根据待采集应用的接口调用信息对待测试应用进行测试,得到应用测试报告,无需测试人员人工为待测试应用准备测试数据,提高了应用测试的效率,并且,由于采集的接口调用信息包含接口外部调用信息和接口内部调用信息,不仅可以对待测试应用的外部接口进行测试,还可以对待测试应用的内部接口进行测试,提高了应用测试的效果。
[0270]
图7是本技术一个实施例的电子设备600的逻辑框图。例如,电子设备600可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
[0271]
参照图7,电子设备600可以包括以下一个或多个组件:处理组件602,存储器604,电力组件606,多媒体组件608,音频组件610,输入/输出(i/o)的接口612,传感器组件614,以及通信组件616。
[0272]
处理组件602通常控制电子设备600的整体操作,诸如与显示,电话呼叫,数据通
信,相机操作和记录操作相关联的操作。处理组件602可以包括一个或多个处理器620来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件602可以包括一个或多个模块,便于处理组件602和其他组件之间的交互。例如,处理组件602可以包括多媒体模块,以方便多媒体组件608和处理组件602之间的交互。
[0273]
存储器604用于存储各种类型的数据以支持在电子设备600的操作。这些数据的示例包括用于在电子设备600上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器604可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。
[0274]
电源组件606为电子设备600的各种组件提供电力。电源组件606可以包括电源管理系统,一个或多个电源,及其他与为电子设备600生成、管理和分配电力相关联的组件。
[0275]
多媒体组件608包括在所述电子设备600和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(lcd)和触摸面板(tp)。若屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的分界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件608包括一个前置摄像头和/或后置摄像头。当电子设备600处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
[0276]
音频组件610用于输出和/或输入音频信号。例如,音频组件610包括一个麦克风(mic),当电子设备600处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器604或经由通信组件616发送。在一些实施例中,音频组件610还包括一个扬声器,用于输出音频信号。
[0277]
i/o接口612为处理组件602和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
[0278]
传感器组件614包括一个或多个传感器,用于为电子设备600提供各个方面的状态评估。例如,传感器组件614可以检测到电子设备600的打开/关闭状态,组件的相对定位,例如所述组件为电子设备600的显示器和小键盘,传感器组件614还可以检测电子设备600或电子设备600一个组件的位置改变,用户与电子设备600接触的存在或不存在,电子设备600方位或加速/减速和电子设备600的温度变化。传感器组件614可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件614还可以包括光传感器,如cmos或ccd图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件614还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
[0279]
通信组件616用于便于电子设备600和其他设备之间有线或无线方式的通信。电子设备600可以接入基于通信标准的无线网络,如wifi,运营商网络(如2g、3g、4g或5g),或它们的组合。在一个示例性实施例中,通信组件616经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件616还包括近场通信
(nfc)模块,以促进短程通信。例如,在nfc模块可基于射频识别(rfid)技术,红外数据协会(irda)技术,超宽带(uwb)技术,蓝牙(bt)技术和其他技术来实现。
[0280]
在示例性实施例中,电子设备600可以被一个或多个应用专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于实现本技术实施例提供的一种应用测试方法。
[0281]
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器604,上述指令可由电子设备600的处理器620执行以完成上述方法。例如,所述非临时性存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。
[0282]
图8是本技术另一个实施例的电子设备700的逻辑框图。例如,电子设备700可以被提供为一服务器。参照图8,电子设备700包括处理组件722,其进一步包括一个或多个处理器,以及由存储器732所代表的存储器资源,用于存储可由处理组件722的执行的指令,例如应用程序。存储器732中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件722被配置为执行指令,以执行本技术实施例提供的一种应用测试方法。
[0283]
电子设备700还可以包括一个电源组件726被配置为执行电子设备700的电源管理,一个有线或无线网络接口750被配置为将电子设备700连接到网络,和一个输入输出(i/o)接口758。电子设备700可以操作基于存储在存储器732的操作系统,例如windows servertm,mac os xtm,unixtm,linuxtm,freebsdtm或类似。
[0284]
本技术实施例还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现所述的应用测试方法。
[0285]
本领域技术人员在考虑说明书及实践这里公开的申请后,将容易想到本技术的其它实施方案。本技术旨在涵盖本技术的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本技术的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本技术的真正范围和精神由下面的权利要求指出。
[0286]
应当理解的是,本技术并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本技术的范围仅由所附的权利要求来限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1