
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.图1是本技术实施例提供的通信接口的测试方法的实现流程示意图;
36.图2是本技术实施例提供的通信接口的测试方法的实现流程示意图;
37.图3是本技术实施例提供的通信接口的测试方法的实现流程示意图;
38.图4是本技术实施例提供的通信接口的测试方法的应用场景图;
39.图5是本技术实施例提供的通信接口的测试装置的结构示意图;
40.图6是本技术实施例提供的终端设备的示意图。
具体实施方式
41.以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本技术实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本技术。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本技术的描述。
42.在软件正式部署之前,通常需要对通信接口进行测试,现有技术大多采用流量录制将通信接口中的数据以及对数据进行的处理进行记录、存储。其中,数据包括请求体、响应体、协议等数据。通过流量录制得到生产脚本,并将生产脚本进行回放测试,进而能够对通信接口进行测试。
43.现有的流量录制工具在录制完成后生产脚本,生产脚本中记载有请求体及响应体,但是,在录制过程中,在重复执行相同操作后,相同字段的属性值会发生替换,因而,在重放生产脚本时,在通信接口中,针对相同字段的操作,容易因为属性值与字段不匹配,导致相应的操作执行失败。例如,在一种应用场景中,通过流量录制工具录制购物下单支付场景的操作流量。在上层应用中,使用者进行购物下单操作,同时向服务器发送购物下单的请求体;在使用者提交支付之后,服务器返回与请求体对应的响应体,并将响应体中的响应值替换为请求体中订单字段(orderid)对应的属性值(value),同时,操作流量记录请求体中订单字段对应的属性值。使用者每次进行购物下单操作,操作流量记录的请求体中订单字段对应的属性值会被重写,造成订单字段对应的属性值被覆盖。在使用者完成多次购物下单操作后,操作流量记录请求体中订单字段对应的属性值自动更新为最近一次购物下单操作时订单字段的属性值。
44.由此可知,通过流量录制工具录制得到的生产脚本,生产脚本中请求体中订单字段的属性值与实际进行购物下单操作的订单字段的属性值并不相同;因此,通过生产脚本的请求体对通信接口进行测试时,因为请求体中订单字段的属性值错误,导致购物下单操作执行失败。由此,如果通过生产脚本对通信接口进行测试,则需要请求体中的订单字段的属性值为当前执行购物下单操作后请求体中订单字段的属性值,从而减少因为请求体与响应体存在参数依赖,影响通信接口测试结果。
45.为了说明本技术所述的技术方案,下面通过具体实施例来进行说明。
46.图1示出了本技术实施例一提供的通信接口的测试方法的实现流程图,详述如下:一种通信接口的测试方法,包括:
47.步骤s101,获取生产脚本的录制请求,所述录制请求包括请求体。
48.在一种实施例中,在所述步骤s101之前,通过通信接口获取操作流量;根据所述操作流量,得到所述生产脚本。其中,所述操作流量包括使用者触发上层应用时网络服务器中生成的请求体和响应体。由此,能够通过通信接口获取操作流量得到生产脚本,进而将请求体、响应体以及相关的协议信息保存在生产脚本中,以便后续通过生产脚本对该通信接口
进行测试操作。
49.在一种实施例中,在所述步骤s101之前,通过流量录制工具获取操作流量,根据所述操作流量得到所述生产脚本。所述流量录制工具包括所述通信接口,示例性地,所述流量录制工具可以为开源网络监控工具(goreplay)。具体地,通过流量录制工具在网络传输层对操作流量进行监听录制,得到生产脚本。所述生产脚本为16进制编码格式脚本。
50.在一种实施例中,所述步骤s101包括:调用通信接口,获取生产脚本的录制请求,所述录制请求包括请求体。示例性地,通过流量录制工具调用通信接口,获取生产脚本的录制请求。具体地,所述流量录制工具可以为开源网络监控工具(goreplay)。通过上述步骤,通过生产脚本将使用者触发上层应用时网络服务器中生成的请求体和响应体进行存储,以便后续对通信接口进行测试操作。
51.步骤s102,获取配置文件中与所述录制请求中的所述请求体关联的第一响应体。
52.在一种实施例中,所述配置文件中包括有按照预设标准格式存储的请求体,以及,与所述请求体关联的第一响应体。通过上述步骤,获取配置文件中与录制请求中的请求体关联的第一响应体,进而,通过第一响应体确定该录制请求中的请求体对应的原始响应,便于后续基于第一响应体对通信接口进行测试,从而验证该通信接口对数据进行处理的准确性。
53.在一种实施例中,在所述步骤s102之前,将所述录制请求中的所述请求体进行标记处理,将所述录制请求中的所述请求体关联的第一响应体进行标记处理。示例性地,将所述请求体的标记记为第一标识。将所述请求体关联的第一响应体的标记记为第三标识。其中,所述第一标识与第三标识相同。通过上述步骤,可以通过请求体的第一标识与第一响应体的第三标识识别请求体与第一响应体的关联关系,便于获取录制请求中的请求体关联的第一响应体。
54.步骤s103,将所述请求体输入测试单元,生成第二响应体。
55.图2示出了本技术实施例提供的通信接口的测试方法的实现流程图。在一种实施例中,所述测试单元可以为测试服务器,其中,所述测试服务器可以为超文本传输协议(http)服务端或者流量录制工具内置的服务端(server)。另外,所述超文本传输协议服务端包括高性能的超文本传输协议和反向代理网络服务器(nginx)。所述步骤s103,示例性地,将所述请求体输入测试服务器,生成第二响应体。通过上述步骤,将请求体输入测试单元,生成第二响应体,通过第二响应体确定重放响应;如此,能够通过第二响应体与第一响应体对通信接口进行测试,分析通信接口处理数据的准确性。
56.在一种实施例中,在所述将所述请求体输入测试单元,生成第二响应体之前,所述方法包括:
57.步骤s1031,获取所述配置文件中与所述录制请求中的所述请求体对应的依赖响应体。
58.示例性地,在一种应用场景中,使用者在上层应用中进行商品添加操作,进而将商品添加至购物车;对购物车进行结算操作,输入支付密码完成支付操作。在该应用场景中,通信接口为结算接口,结算接口的请求体依赖于商品添加的响应体,即,结算接口的请求体对应的依赖响应体为商品添加的响应体。具体地,所述步骤s1031,获取所述配置文件中与所述录制请求中结算接口的请求体对应的依赖响应体(即,商品添加的响应体)。在上述步
骤中,通过获取依赖响应体进而确定依赖响应体与请求体的关联关系,以便后续对通信接口的请求体中的相关数据进行处理,保证通信接口的数据准确性。
59.在一种实施例中,在所述步骤s1031之前,将所述录制请求中的所述请求体进行标记处理;将与所述录制请求中的所述请求体对应的依赖响应体进行标记处理;将所述录制请求中的所述请求体关联的第一响应体进行标记处理。示例性地,将所述请求体的标记记为第一标识;将所述依赖响应体的标记记为第二标记;将所述请求体关联的第一响应体的标记记为第三标识。其中,所述第一标识、第二标记与第三标识相同。在上述步骤中,通过第一标识、第二标识、第三标识建立请求体、依赖响应体、第一响应体的关联关系,便于通过配置文件获取存在关联关系的请求体、依赖响应体、第一响应体。
60.步骤s1032,根据所述依赖响应体,将所述请求体中的第一字段的属性值进行参数替换,得到第二字段。
61.示例性地,步骤s1032中,所述请求体与所述依赖响应体存在关联关系。在一种应用场景中,使用者在上层应用中进行商品添加操作,进而将商品添加至购物车;对购物车进行结算操作,输入支付密码完成支付操作。在该应用场景中,通信接口为结算接口,所述第一字段为第一购物车号。根据商品添加的响应体,将结算接口的请求体的第一购物车号的属性值进行参数替换,得到第二购物车号。通过上述步骤,将请求体中的第一字段的属性值进行参数替换,保证通信接口对请求体的处理顺序,进而保证通信接口的数据准确性。
62.在一种实施例中,所述依赖响应体包括依赖字段及对应于所述依赖字段的依赖属性值;所述根据所述依赖响应体,将所述请求体中第一字段的属性值进行参数替换,包括:将所述依赖属性值替换为所述请求体中第一字段的所述属性值。
63.示例性地,在一种应用场景中,所述请求体与所述依赖请求体存在关联关系。所述依赖接口为www.api.com/aaa。基于配置文件,调用www.api.com/aaa,获取与请求体关联的依赖请求体,将所述依赖请求体输入测试单元,获得对应于所述请求体的所述依赖响应体。所述依赖响应体包括依赖字段及对应于所述依赖字段的依赖属性值,其中,所述依赖字段为创建订单号(createdorderid),所述依赖属性值为对应于创建订单号的属性值,所述请求体中第一字段为订单号(orderid)。具体地,将所述创建订单号的属性值替换为订单号的属性值。通过上述步骤,将请求体中第一字段的属性值进行参数替换,保证通信接口的对请求体的处理顺序。
64.在一种实施例中,在所述步骤s1031之后,通过调用所述配置文件中的加密方法将所述依赖响应体进行加密处理。以及,在所述步骤s1032之前,通过调用所述配置文件的解密方法将加密处理后的所述依赖响应体进行解密处理。通过上述步骤,保证在通信接口中依赖响应体在传输过程中的数据安全。
65.通过上述步骤,步骤s1301及步骤s1032,获取配置文件中与所述录制请求中的请求体对应的依赖响应体;根据依赖响应体,将请求体中的第一字段的属性值进行参数替换。通过依赖响应体将请求体中的第一字段的属性值进行参数替换,保证将请求体输入测试单元,对请求体进行参数替换、输入测试单元进行回放测试顺序,与录制时对请求体的处理顺序保持一致,从而,保证通过通信接口对请求体进行测试的数据准确性。
66.在一种实施例中,所述获取配置文件中所述录制请求中的所述请求体对应的依赖响应体,包括:
67.步骤s1033,基于所述配置文件,调用对应于所述请求体的依赖接口,获取与所述请求体关联的依赖请求体。
68.示例性地,在步骤s1033中,所述配置文件中保存有请求体的第一标识、依赖请求体的第二标识及第一响应体的第三标识。基于所述配置文件,通过所述依赖请求体的第二标识,获取与所述请求体关联的依赖请求体。
69.示例性地,在一种应用场景中,所述请求体与所述依赖请求体存在关联关系。所述依赖接口为www.api.com/aaa。基于配置文件,调用www.api.com/aaa,获取与请求体关联的依赖请求体。通过上述步骤,通过依赖接口获取依赖请求体,以便后续获取与请求体关联的依赖响应体,从而对请求体中的相关字段的属性值进行参数替换,节省参数替换时间。
70.步骤s1034,将所述依赖请求体输入测试单元,获得所述对应于所述请求体的所述依赖响应体。
71.示例性地,所述测试单元可以为测试服务器,其中,所述测试服务器可以为超文本传输协议(http)服务端或者流量录制工具内置的服务端(server)。另外,所述超文本传输协议服务端包括高性能的超文本传输协议和反向代理网络服务器(nginx)。将所述依赖请求体输入测试服务器,获得所述对应于所述请求体的所述依赖响应体。具体地,所述配置文件中保存有请求体的第一标识、依赖请求体的第二标识及第一响应体的第三标识;当所述请求体的第一标识和所述依赖请求体的第二标识一致时,确定对应于所述请求体的所述依赖响应体。通过上述步骤,通过配置文件能够确定依赖响应体与请求体的关联关系,节省查找时间,提高处理效率。
72.在一种实施例中,在所述获得所述对应于所述请求体的所述依赖响应体之后,所述方法包括:
73.步骤s1035,判断所述请求体的第一标识与所述依赖响应体的第二标识是否相同。
74.示例性地,所述配置文件中保存有请求体的第一标识和依赖请求体的第二标识。通过调用配置文件,判断请求体的第一标识与依赖响应体的第二标识是否相同,进而可以确定请求体与依赖响应体的关联关系,节省查找、获取对应于请求体的依赖响应体的时间,提高处理效率。
75.步骤s1036,若所述第一标识与所述第二标识相同,则将所述依赖响应体保存。
76.示例性地,若所述第一标识与所述第二标识相同,则将所述依赖响应体保存至配置文件中。具体地,在一种应用场景中,所述请求体与所述依赖请求体存在关联关系。所述依赖接口为www.api.com/aaa。基于配置文件,调用www.api.com/aaa,获取与请求体关联的依赖请求体,将所述依赖请求体输入测试单元,获得对应于所述请求体的所述依赖响应体。若所述第一标识与所述第二标识相同,则将所述依赖响应体保存至配置文件中。通过上述步骤,当请求体的第一标识与依赖响应体的第二标识相同,将依赖响应体保存,以便后续根据依赖响应体,将请求体中的第一字段的属性值进行参数替换。
77.图3示出了本技术实施例提供的通信接口的测试方法的实现流程图。在一种实施例中,若所述配置文件中不存在与所述录制请求中的所述请求体对应的依赖响应体,则所述配置文件中仅存在与所述录制请求中所述请求体关联的第一响应体。此时,该方法无需对请求体的第一字段的属性值进行参数替换,直接将所述请求体输入测试单元,生成第二响应体。通过上述步骤,能够兼容请求体需要进行参数替换、请求体无需进行参数替换两种
情况,能够满足通信接口在不同条件下的测试需求,具有较好兼容性、适用性。
78.步骤s104,基于所述第一响应体和所述第二响应体,测试通信接口,得到测试结果。
79.示例性地,将所述第一响应体、所述第二响应体的非关键字段进行剔除处理,通过将第一响应体与第二响应体的相同关键字段的属性值进行比较,进而测试通信接口,得到所述测试结果。其中,所述非关键字段可以为时间戳、订单号等字段,该非关键字段为在使用者每次进行操作时都会改变。所述关键字段可以为结算金额等字段。由此,通过将第一响应体、第二响应体的相同关键字段的属性值进行比较,进而测试通信接口的可用性、数据准确性,方法具有便捷性、易用性。
80.在一种实施例中,所述基于所述第一响应体和所述第二响应体,测试通信接口,得到测试结果,包括:
81.步骤s1041,当所述第一响应体与所述第二响应体一致时,确定所述通信接口为合格。
82.步骤s1042,当所述第一响应体与所述第二响应体不一致时,确定所述通信接口为不合格。
83.示例性地,在所述步骤s1041之前,分别获取所述第一响应体、所述第二响应体的关键字段。将第一响应体的结算金额的属性值与第二响应体的结算金额的属性值进行比较。示例性地,所述步骤s1041,当第一响应体的关键字段的属性值与第二响应体的关键字段的属性值一致时,确定所述通信接口为合格;所述步骤s1042,当第一响应体的关键字段的属性值与第二响应体的关键字段的属性值不一致时,确定所述通信接口为不合格。
84.具体地,在一种应用场景中,所述关键字段可以为结算金额。所述步骤s1041,当第一响应体的结算金额的属性值与第二响应体的结算金额的属性值一致时,确定所述通信接口为合格;所述步骤s1042,当第一响应体的结算金额的属性值与第二响应体的结算金额的属性值不一致时,确定所述通信接口为不合格。
85.通过上述步骤,将第一响应体与第二响应体进行判断(即,断言处理),从而通过判断第一响应体(即,录制时的原始响应)与第二响应体(即,重放响应)是否一致,进而判断通信接口是否合格:当第一响应体与第二响应体一致时,通信接口为合格;当第一响应体与第二响应体不一致时,通信接口为不合格。该测试方法便捷,具有较好的适用性和易用性。
86.图4示出了本技术提供的通信接口的测试方法的一种应用场景图。使用者通过客户端在上层应用进行操作,在上层应用中,使用者进行购物下单操作,同时向服务器发送购物下单的请求体;在使用者提交支付之后,服务器返回与请求体对应的响应体。通过流量录制工具的通信接口获取网络数据(即,前述的操作流量)。示例性地,该流量录制工具为开源网络监控工具(goreplay)。根据操作流量,得到生产脚本,其中,生产脚本中保存有请求体和响应体。通过流量录制工具能够对生产脚本中的请求体和响应体进行过滤处理、重写处理以及中间件处理。在本技术提供的通信接口的测试方法中,通过流量录制工具对请求体进行中间件处理,实现前述步骤s1031及步骤s1032,进而实现将请求体中第一字段的属性值进行参数替换,生成请求体副本。将请求体副本输入测试单元中,得到重放响应。该测试单元可以为测试环境中创建的服务器副本。从而,基于原始响应和重放响应,进行对比、监控、分析,对通信接口进行测试,得到测试结果。通过上述步骤,生产脚本能够将操作流量中
的请求体和响应体保存,能够通过对流量录制工具的中间件进行改写处理,实现对请求体第一字段的属性值进行参数替换,以便后续进行回归测试,检测通信接口是否异常,便于对通信接口进行自动化测试;该方法具有易用性和实用性。
87.在一种实施例中,在所述基于所述第一响应体和所述第二响应体,测试通信接口,得到测试结果之后,所述方法还包括:根据预设倍速通过流量录制工具将所述生产脚本输入测试单元,生成压力测试结果,所述压力测试结果用于指示所述通信接口的流量压力。
88.示例性地,将录制生产环境中的超文本传输协议流量进行存储,得到所述生产脚本。其中,所述录制生产环境中的超文本传输协议流量为操作流量。根据预设倍速通过流量录制工具将所述生产脚本输入测试单元,得到所述压力测试结果。通过上述步骤,根据预设倍速,通过流量录制工具将生产脚本中的实际操作流量减少或者放大处理后输入测试单元,生成测试结果,以便对通信接口进行压力测试。
89.应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。
90.对应于上文实施例的方法,图5示出了本技术实施例提供的通信接口的测试装置的结构框图,为了便于说明,仅示出了与本技术实施例相关的部分。图5示例的通信接口的测试装置可以是前述实施例一提供的通信接口的测试方法的执行主体。
91.参照图5,该通信接口的测试装置50包括:
92.第一获取模块51,用于获取生产脚本的录制请求,所述录制请求包括请求体;
93.第二获取模块52,用于获取配置文件中与所述录制请求中的所述请求体关联对应的第一响应体;
94.生成模块53,用于将所述请求体输入测试单元,生成第二响应体;
95.测试模块54,用于基于所述第一响应体和所述第二响应体,测试通信接口,得到测试结果。
96.本技术实施例提供的通信接口的测试装置中各模块实现各自功能的过程,具体可参考前述图1所示实施例一的描述,此处不再赘述。
97.应当理解,当在本技术说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
98.还应当理解,在本技术说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
99.如在本技术说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
[0100]
另外,在本技术说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。还应理解的是,虽然术语“第一”、“第二”等在文本中在一些本技术实施例中用来描述各种元素,但是这些元素不应该受到这些术语的限制。这些术语只是用来将一个元素与另一元素区分开。例如,第一表格可以
被命名为第二表格,并且类似地,第二表格可以被命名为第一表格,而不背离各种所描述的实施例的范围。第一表格和第二表格都是表格,但是它们不是同一表格。
[0101]
在本技术说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本技术的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
[0102]
图6是本技术一实施例提供的终端设备的结构示意图。如图6所示,该实施例的终端设备60包括:至少一个处理器61(图6中仅示出一个)、存储器62,所述存储器62中存储有可在所述处理器61上运行的计算机程序63。所述处理器61执行所述计算机程序63时实现上述各个通信接口的测试方法实施例中的步骤,例如图1所示的步骤101至104。或者,所述处理器61执行所述计算机程序63时实现上述各装置实施例中各模块/单元的功能,例如图5所示模块51至54的功能。
[0103]
所述终端设备60可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备可包括,但不仅限于,处理器61、存储器62。本领域技术人员可以理解,图6仅仅是终端设备60的示例,并不构成对终端设备60的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备还可以包括输入发送设备、网络接入设备、总线等。
[0104]
所称处理器61可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0105]
所述存储器62在一些实施例中可以是所述终端设备60的内部存储单元,例如终端设备60的硬盘或内存。所述存储器62也可以是所述终端设备60的存储设备,例如所述终端设备60上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。进一步地,所述存储器62还可以既包括所述终端设备60的内部存储单元也包括外部存储设备。所述存储器62用于存储操作系统、应用程序、引导装载程序(boot loader)、数据以及其他程序等,例如所述计算机程序的程序代码等。所述存储器62还可以用于暂时地存储已经发送或者将要发送的数据。
[0106]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0107]
本技术实施例还提供了一种终端设备,所述终端设备包括至少一个存储器、至少一个处理器以及存储在所述至少一个存储器中并可在所述至少一个处理器上运行的计算机程序,所述处理器执行所述计算机程序时,使所述终端设备实现上述任意各个方法实施例中的步骤。
[0108]
本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现可实现上述各个方法实施例中的步骤。
[0109]
本技术实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行时实现可实现上述各个方法实施例中的步骤。
[0110]
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、电载波信号、电信信号以及软件分发介质等。
[0111]
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
[0112]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0113]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0114]
以上所述实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使对应技术方案的本质脱离本技术各实施例技术方案的精神和范围,均应包含在本技术的保护范围之内。