接口文档的测试方法、系统及装置、电子设备和存储介质与流程

未命名 09-24 阅读:81 评论:0


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.图1为本公开实施例提供的一种接口文档的测试方法的实现流程示意图;
26.图2为本公开实施例提供的一种接口文档的测试方法的实现流程示意图;
27.图3a为本公开实施例提供的一种接口文档的测试系统的组成结构示意图;
28.图3b为本公开实施例提供的一种对接口文档进行解析得到第二请求信息的实现流程示意图;
29.图3c为本公开实施例提供的一种将表格转换为json数据的实现流程示意图;
30.图3d为本公开实施例提供的一种接口文档的测试方法的实现流程示意图;
31.图4为本公开实施例提供的一种接口文档的测试装置的组成结构示意图;
32.图5为本公开实施例中电子设备的一种硬件实体示意图。
具体实施方式
33.为了使本公开的目的、技术方案和优点更加清楚,下面将结合附图对本公开作进一步地详细描述,所描述的实施例不应视为对本公开的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本公开保护的范围。
34.在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
35.在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本公开实施例能够以除了在这里图示或描述的以外的顺序实施。
36.除非另有定义,本文所使用的所有的技术和科学术语与属于本公开的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本公开实施例的目的,不是旨在限制本公开。
37.随着计算机技术的日益发展,软件囊括越来越多的应用功能,为保证软件运行的稳定性,通常会在开发过程中对该软件的接口进行相应的测试。接口测试是测试系统组件间接口的一种测试,其主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点主要包括检查接口参数传递的正确性、接口功能实现的正确性、输出结果的正确性、以及对各种异常情况的容错处理的完整性和合理性。
38.相关技术中,在对接口文档进行测试时,通常由测试人员根据该接口文档的描述,人工进行数据的格式转换、手动编辑及录入测试信息,然后手动向待测接口发送请求,再根据待测接口返回的响应信息进行人工校验。那么,在接口文档的数量较多,接口文档中请求信息的字段数量较多、接口请求信息包括特殊类型的数据(例如,表格等)、响应信息的字段数量较多、和/或响应信息包含特殊类型的数据的情况下,会存在耗时长、成本高、测试效率低、准确率较低等问题。
39.本公开实施例提供一种接口文档的测试方法,一方面,通过自动解析接口文档的请求信息并生成测试脚本,而不需要人工进行阅读、填写等操作,不仅缩短了测试时间、降低了人力成本,而且还提高了测试效率和测试结果的准确率;另一方面,基于接口请求信息的类型对接口请求信息进行转换,以使得待测接口能够解析该接口请求信息,从而可以提高测试结果的准确度。本公开实施例提供的接口文档的测试方法可以由电子设备执行,其中电子设备可以是笔记本电脑,平板电脑,台式计算机,机顶盒,移动设备(例如,移动电话,便携式音乐播放器,个人数字助理,专用消息设备,便携式游戏设备)等各种类型的终端,也可以实施为服务器。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(content delivery network,cdn)、以及大数据和人工智能平台等基础云计算服务的云服务器。
40.下面,将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述。
41.图1为本公开实施例提供的一种接口文档的测试方法的实现流程示意图,如图1所
示,该方法包括步骤s11至步骤s14,其中:
42.步骤s11、对所述接口文档进行解析,得到所述接口文档中待测接口的第一请求信息。
43.这里,接口文档是任意合适的描述待测接口信息的文档。接口文档的格式可以包括但不限于可扩展标记语言(xml)、yaml(yaml ain't markup language,另一种标记语言)、json(javascript object notation,js对象简谱)、txt、办公文件(例如,microsoft office、wps office)等。在实施时,本领域技术人员可以根据实际需求自主确定接口文档的格式,本公开实施例不作限定。
44.在一些实施方式中,可以通过自动或手动的方式生成该接口文档。例如,利用工具或代码等方式来提取接口描述信息,以自动生成接口文档。又例如,相关人员根据文件规范,手动编写该接口文档。
45.待测接口可以是任意合适的接口。在一些实施方式中,待测接口可以是应用程序的一个功能。例如,天气查询,短信群发等。在一些实施方式中,待测接口也可以是应用程序的一个模块。例如,登录验证。
46.在一些实施方式中,接口文档中主要包括待测接口的请求信息和响应信息。其中,请求信息可以包括但不限于接口方法、url(uniform resource locator,统一资源定位符)、请求参数等中的至少之一,响应信息可以包括但不限于接口方法、响应参数等。
47.其中,接口方法可以包括但不限于新增、删除、修改、查询等。
48.url是待测接口的地址信息。
49.请求参数可以包括但不限于请求字段、参数类型、参数、附加信息等。其中,请求字段可以包括但不限于接口标识(identity document,id)、接口名称等,该接口标识具有唯一性。参数类型表征该参数的类型,其中,类型可以包括但不限于字符串、整数、虚数、图像等。附加信息是指待测接口的一些附加信息。附加信息可以包括但不限于待测接口的功能、接口协议名称、协议版本号、依赖信息等。例如,在接口文档包括“{“用户名”:“string”:“[1:10]”,“id”:“integer”:“[1:100]”}”的情况下,请求参数中包括“用户名”及“标识”这两个参数,其中,“用户名”这个参数的参数类型是字符串,且该参数的长度的取值范围是1~10。“id”这个参数的参数类型是整数,取值范围是1~100。
[0050]
响应参数可以包括但不限于响应字段、参数类型、参数、附加信息等。响应字段可以包括但不限于接口标识(identity document,id)、接口名称等,该接口标识具有唯一性。
[0051]
在一些实施方式中,可以利用预先建立的规则库,自动对当前显示页面显示的接口文档进行解析,得到该待测接口的第一请求信息。
[0052]
其中,规则库中可以包括接口的关键信息、特殊字符等。关键信息可以包括但不限于url、接口方法、接口请求信息、接口响应信息等。特殊字符可以是设定的一些标志性的字符。例如,该特殊字符可以是“+”、
“‑”
、“·”、
“●”
等。该显示页面是用于对接口文档进行展示的交互界面。该显示页面可以显示在任意合适的具有界面交互功能的电子设备上。在实施时,显示该显示页面的电子设备与执行该接口文档的测试方法的设备可以是相同的,也可以是不同的,这里并不限定。比如,执行该接口文档的测试方法的电子设备可以为笔记本电脑,显示该显示页面的电子设备也可以为该笔记本电脑,显示页面可以为该笔记本电脑上运行的客户端的交互界面,也可以是该笔记本电脑上运行的浏览器中显示的网页。又比
如,执行该接口文档的测试方法的电子设备可以为服务器,显示该显示页面的电子设备可以为笔记本电脑,显示页面可以为该笔记本电脑上运行的客户端的交互界面,也可以是该笔记本电脑上运行的浏览器中显示的网页,该笔记本电脑可以通过该客户端或者浏览器访问该服务器。
[0053]
第一请求信息可以包括但不限于url、接口方法、请求参数、响应参数等。该第一请求信息的数据类型可以包括但不限于文本、表格、图片等。例如,第一请求信息包括:
[0054]
url为“http://www.xx”;
[0055]
接口方法为post;
[0056]
id为1111;
[0057]
请求参数包括表1,即:
[0058]
表1请求参数
[0059]
用户名密码张三123456李四654321
[0060]
断言为“响应的状态值为200”。
[0061]
步骤s12、基于所述第一请求信息的数据类型,将所述第一请求信息转换为第二请求信息。
[0062]
这里,第二请求信息的数据类型可以是json格式、键值对(key-value)等。
[0063]
例如,将第一请求信息中的文本数据转换为json格式的数据。比如,将第一请求信息中的url为“http://www.xx”转换为{“url”:“http://www.xx”}。又例如,将第一请求信息中的表格数据先转换为key-value,再将key-value转换为json。比如,将第一请求信息中的表1转换为{“data”:{“用户名”:“张三”,“密码”:“123456”;“用户名”:“李四”,“密码”:“654321”}}。
[0064]
步骤s13、基于所述第二请求信息,生成测试脚本,并将所述测试脚本发送至所述待测接口进行测试。
[0065]
这里,测试脚本(testing script),一般指的是一个特定测试的一系列指令,这些指令可以被自动化测试工具执行。自动化测试工具可以包括但不限于postman、jmeter、robotframework、airpost等。
[0066]
测试脚本可以被创建(记录)、使用测试自动化工具、或用编程语言编程来生成。脚本语言(scripting language)就是在执行时以解释(interpreting)为主的编程语言。例如,perl、python、php、ruby、shell等。
[0067]
在一些实施方式中,通过自动化测试工具,将第二请求信息打包为测试脚本。在一些实施方式中,通过脚本语言,将第二请求信息组装成测试脚本。
[0068]
步骤s14、基于所述待测接口返回的第一响应信息,得到所述接口文档的测试结果。
[0069]
这里,第一响应信息可以包括但不限于接口方法、响应参数等。其中,响应参数可以包括但不限于响应字段、参数类型、参数、附加信息等。该第一响应信息的数据类型可以包括但不限于文本、表格、图片等。测试结果可以包括但不限于测试通过、测试不通过等。
[0070]
在一些实施方式中,利用预设的比对算法,将第一响应信息与接口文档中的响应
信息进行比对,得到该测试结果。其中,比对算法可以是任意合适的能够进行比对的算法。例如,myer差分算法、rk(rabin-karp)算法、编辑距离算法、基于最长公共子串的算法等。在实施时,本领域技术人员可以根据实际需求自主确定比对的算法,本公开实施例不作限定。
[0071]
在一些实施方式中,可以基于预设规则来设定比对算法。其中,预设规则可以包括但不限于电子设备的默认配置、用户自定义、用户喜好、使用频率、用户操作信息等。在实施时,本领域技术人员可以根据实际需求自主设定预设规则,本公开实施例不作限定。
[0072]
例如,电子设备提供配置选项,通过该配置选项,用户可以自定义设置该比对算法。
[0073]
又例如,该比对算法可以是基于用户操作的属性信息确定的,其中,该属性信息可以包括但不限于操作的类型、距离、速度、位置、时长、次数等。在实施时,本领域技术人员可以根据实际需求自主设定操作的属性信息和该比对算法之间的对应关系,本公开实施例不作限定。
[0074]
在一些实施方式中,可以基于操作的类型确定比对算法,即,不同的类型对应不同的比对算法。例如,在操作手势为滑动操作的情况下,该比对算法为第一比对算法;在操作手势为多次点击操作的情况下,该比对算法为第二比对算法。
[0075]
在一些实施方式中,可以基于操作的距离实时确定比对算法,即,不同的距离对应不同的比对算法。例如,在滑动距离为第一距离区间的情况下,该比对算法为第一比对算法;在滑动距离为第二距离区间的情况下,该比对算法为第二比对算法。
[0076]
在一些实施方式中,该测试结果可以包括但不限于待测接口的第一测试结果、接口文档的纠错处理的第二测试结果、请求信息进行发送处理的第三测试结果中的至少一项。其中,第一测试结果包括接口测试成功、接口测试失败等。第二测试结果包括纠错成功、纠错失败等。第三测试结果包括请求信息发送成功、请求信息发送失败等。例如,该测试结果包括第一测试结果。又例如,该测试结果包括第一测试结果和第二测试结果。还例如,该测试结果包括第一测试结果、第二测试结果和第三测试结果。
[0077]
在本公开实施例中,通过对所述接口文档进行解析,得到所述接口文档中待测接口的第一请求信息;基于所述第一请求信息的数据类型,将所述第一请求信息转换为第二请求信息;基于所述第二请求信息,生成测试脚本,并将所述测试脚本发送至所述待测接口进行测试;基于所述待测接口返回的第一响应信息,得到所述接口文档的测试结果。这样,一方面,通过自动解析接口文档的请求信息并生成测试脚本,而不需要人工进行阅读、填写等操作,不仅缩短了测试时间、降低了人力成本,而且还提高了测试效率和测试结果的准确率;另一方面,基于接口请求信息的类型对接口请求信息进行转换,以使得待测接口能够解析该接口请求信息,从而可以提高测试结果的准确度。
[0078]
在一些实施方式中,所述步骤s12包括步骤s121至步骤s123,其中:
[0079]
步骤s121、在所述第一请求信息的数据类型包括第一数据类型的情况下,从所述第一请求信息中确定具有第一数据类型的第三请求信息和具有第二数据类型的第四请求信息。
[0080]
这里,第一数据类型可以包括但不限于表格等。第二数据类型可以包括但不限于文本等。
[0081]
在一些实施方式中,通过对第一请求信息进行解析,得到该第一请求信息中包含
的数据类型信息,并基于该数据类型信息,对第一请求信息进行分割,得到第三请求信息和第四请求信息。
[0082]
例如,第一请求信息包括:url为“http://www.xx”;接口方法为post;请求参数包括上表1;断言为“响应的状态值为200”。此时,对第一请求信息进行分割,得到第三请求信息包括上表1,第四请求信息包括url为“http://www.xx”、接口方法为post、断言为“响应的状态值为200”。
[0083]
步骤s122、利用预设的转换方式,将所述第三请求信息转换为第五请求信息。
[0084]
这里,第三请求信息中包括至少一行子信息。第五请求信息中包括至少一个键值对。转换方式用于将第三请求信息中的每一子信息转换为键值对形式。
[0085]
例如,将上表1中的每一子信息转换为键值对形式,即:用户名-张三、密码-123456;用户名-李四、密码-654321。
[0086]
在一些实施方式中,所述步骤s122包括步骤s1221至步骤s1222,,其中:
[0087]
步骤s1221、针对所述第三请求信息中的每行子信息,确定所述子信息的存放位置;
[0088]
步骤s1222、针对每行子信息,利用预设的转换方式,将所述子信息转换为至少一个键值对,并将每一所述键值对存入所述子信息的存放位置中。
[0089]
这里,存放位置表征该子信息对应的至少一个键值对存放的位置。在一些实施方式中,存放位置可以是一个数据结构,其中,数据结构可以包括但不限于列表、结构体、队列等。例如,数据结构可以是一个json结构体。在实施时,可以针对每一行子信息,预先新建一个数据结构,并将指针指向新建的数据结构处,通过当前行子信息的标识信息、以及当前行子信息与上一行子信息之间的层级关系,确定该指针指向的位置,即:新建的数据结构处、或上一新建的数据结构处。其中,标识信息可以包括但不限于id、序号等。
[0090]
例如,在当前行的标识信息为第一行的情况下,新建第一json结构体,将指针指向第一json结构体,并将子信息转换为键值对,存放至第一json结构体中;在当前行的标识信息为其它行的情况下,新建第二json结构体,将指针指向第二json结构体,确定当前行子信息与上一行子信息的层级关系,若层级关系为兄弟关系,不更新指针,并将当前行子信息转换为键值对,存放至第二json结构体中,若层级关系为父子关系,更新指针,将指针指向第一json结构体,并将当前行子信息转换为键值对,存放至第一json结构体中。
[0091]
步骤s123、基于所述第四请求信息和所述第五请求信息,得到所述第二请求信息。
[0092]
这里,可以先将第四请求信息转换为json格式,再将转换格式的第四请求信息与第五请求信息进行组装、拼接等,以得到第二请求信息。
[0093]
例如,第二请求信息包括:
[0094]
{
[0095]“url”:“http://www.xx”,
[0096]“method”:“post”,
[0097]“id”:“1111”,
[0098]“data”:{“用户名”:“张三”,“密码”:“123456”;“用户名”:“李四”,“密码”:“654321”},
[0099]“assert”:[“response.status_code==200”]
[0100]
}
[0101]
在本公开实施方式中,通过在所述第一请求信息的数据类型包括第一数据类型的情况下,从所述第一请求信息中确定具有第一数据类型的第三请求信息和具有第二数据类型的第四请求信息;利用预设的转换方式,将所述第三请求信息转换为第五请求信息;基于所述第四请求信息和所述第五请求信息,得到所述第二请求信息。这样,对请求信息中的数据格式进行智能转换,以使得待测接口能够解析该请求信息,不仅可以缩短测试时间,提高测试效率,而且还可以提高测试结果的准确度。
[0102]
在一些实施方式中,所述步骤s1221中的确定所述子信息的存放位置,包括步骤s124至步骤s126,其中:
[0103]
步骤s124、确定所述子信息与上一子信息之间的层级关系。
[0104]
这里,层级关系可以包括但不限于父子关系、兄弟关系等。在一些实施方式中,通过对表格的属性、特殊字符等进行解析,可以得到子信息与上一子信息之间的层级关系。例如,通过对特殊字符“+”的个数进行解析,可以得到该层级关系。比如,在“+”的个数为0个的情况下,表征该子信息属于第零层,即:最外层;在“+”的个数为1个的情况下,表征该子信息属于第一层,即与最外层为父子关系;在“+”的个数为2个的情况下,表征该子信息是第二层,即与第一层为父子关系。
[0105]
步骤s125、在所述层级关系为兄弟关系的情况下,将新建的存放位置作为所述子信息的存放位置。
[0106]
这里,新建的存放位置是针对当前行子信息新建的一个存放位置。该新建的存放位置可以是一个数据结构,其中,数据结构可以包括但不限于列表、结构体、队列等。例如,新建的存放位置是一个json结构体。
[0107]
步骤s126、在所述层级关系为父子关系的情况下,将所述上一行子信息的存放位置作为所述子信息的存放位置。
[0108]
这里,上一行子信息的存放位置是上一新建的存放位置,其中,上一新建的存放位置是针对上一行子信息新建的一个存放位置。该上一新建的存放位置可以是一个数据结构,其中,数据结构可以包括但不限于列表、结构体、队列等。例如,上一新建的存放位置是一个json结构体。
[0109]
在本公开实施方式中,通过确定所述子信息与上一子信息之间的层级关系;在所述层级关系为兄弟关系的情况下,将新建的存放位置作为所述子信息的存放位置;在所述层级关系为父子关系的情况下,将所述上一行子信息的存放位置作为所述子信息的存放位置。这样,利用层级关系确定子信息的存放位置,可以提高子信息解析的准确度,从而可以降低子信息的差错率,进而可以提高测试结果的准确度。
[0110]
在一些实施方式中,在步骤s11之前,所述方法还包括步骤s16至步骤s17,其中:
[0111]
步骤s16、获取所述接口文档的链接地址。
[0112]
这里,链接地址可以包括但不限于url、存储位置等。该链接地址可以是用户在操作界面中输入的、其它电子设备发送的、或打开的接口文档网页的url等。
[0113]
步骤s17、基于所述链接地址,得到所述接口文档。
[0114]
这里,可以从链接地址中直接读取该接口文档。还可以通过请求/响应的方式得到该接口文档。例如,利用爬虫技术,抓取当前网页中显示的接口文档的内容。可选地,这里可
以基于接口文档的链接地址得到接口文档对应的网页,在对接口文档进行解析时,可以是对网页中的内容进行解析。
[0115]
在本公开实施方式中,通过获取所述接口文档的链接地址;基于所述链接地址,得到所述接口文档。这样,一方面,通过链接地址获取接口文档,可以提高接口文档的准确度;另一方面,基于该链接地址便可以完成对接口文档的自动化测试,可以提高测试效率。
[0116]
图2为本公开实施例提供的一种接口文档的测试方法的实现流程示意图,如图2所示,所述方法包括步骤s21至步骤s26,其中:
[0117]
步骤s21、对所述接口文档进行解析,得到所述接口文档中待测接口的第一请求信息。
[0118]
步骤s22、基于所述第一请求信息的数据类型,将所述第一请求信息转换为第二请求信息。
[0119]
步骤s23、基于所述第二请求信息,生成测试脚本,并将所述测试脚本发送至所述待测接口进行测试。
[0120]
这里,上述步骤s21至步骤s23分别对应于前述步骤s11至步骤s13,在实施时,可以参照前述步骤s11至步骤s13的具体实施方式。
[0121]
步骤s24、基于所述待测接口返回的第一响应信息的数据类型,将所述第一响应信息转换为第二响应信息。
[0122]
这里,第一响应信息可以包括但不限于接口方法、响应参数等。其中,响应参数可以包括但不限于响应字段、参数类型、参数、附加信息等。第一响应信息的数据类型可以包括但不限于文本、表格、图片等。第二响应信息的数据类型可以是json格式、key-value等。
[0123]
在实施时,上述步骤s24中对第一响应信息的转换与前述步骤s12中对第一请求信息进行转换类似,在实施时,可以参照前述步骤s12的具体实施方式。
[0124]
例如,第一响应信息包括:
[0125]
{
[0126]
id为1111;
[0127]
响应参数包括表2,即:
[0128]
表2响应参数
[0129][0130][0131]
}
[0132]
由于第一响应信息的数据类型包括表格和文本,因此可以将第一响应信息转换为对应的第二响应信息,即,第二响应信息为:
[0133]
{
[0134]“id”:“1111”;
[0135]“data”:{“用户名”:“张三”,“状态值”:“200”;“用户名”:“李四”,“状态值”:“200”}
[0136]
}
[0137]
步骤s25、基于所述第二响应信息,得到第一测试结果。
[0138]
这里,第一测试结果表征待测接口的测试结果。该第一测试结果包括接口测试成功、接口测试失败等。
[0139]
在一些实施方式中,利用预设的比对算法,将第二响应信息与接口文档中的响应信息进行比对,得到该第一测试结果。其中,比对算法可以是任意合适的能够进行比对的算法。例如,myer差分算法、rk(rabin-karp)算法、编辑距离算法、基于最长公共子串的算法等。在实施时,本领域技术人员可以根据实际需求自主确定比对的算法,本公开实施例不作限定。
[0140]
步骤s26、基于所述第一测试结果,得到所述接口文档的测试结果。
[0141]
这里,可以将第一测试结果作为接口文档的测试结果。
[0142]
在一些实施方式中,该接口文档的测试结果还可以包括以下至少之一:接口文档的纠错处理的第二测试结果、请求信息进行发送处理的第三测试结果。例如,该接口文档的测试结果包括第一测试结果和第二测试结果。
[0143]
在本公开实施例中,通过对所述接口文档进行解析,得到所述接口文档中待测接口的第一请求信息;基于所述第一请求信息的数据类型,将所述第一请求信息转换为第二请求信息;基于所述第二请求信息,生成测试脚本,并将所述测试脚本发送至所述待测接口进行测试;基于所述待测接口返回的第一响应信息的数据类型,将所述第一响应信息转换为第二响应信息;基于所述第二响应信息,得到第一测试结果;基于所述第一测试结果,得到所述接口文档的测试结果。这样,对响应信息中的数据格式进行智能转换,以使得能够解析该响应信息,不仅可以缩短测试时间,提高测试效率,而且还可以提高测试结果的准确度。
[0144]
在一些实施方式中,所述步骤s25包括步骤s251至步骤s252,其中:
[0145]
步骤s251、对所述接口文档进行解析,得到所述待测接口对应的标准响应信息。
[0146]
这里,标准响应信息可以包括但不限于接口方法、响应参数等。响应参数可以包括但不限于响应字段、参数类型、参数、附加信息等。
[0147]
步骤s252、将所述第二响应信息与所述标准响应信息进行对比,得到所述第一测试结果。
[0148]
这里,利用预设的比对算法,将第二响应信息与标准响应信息进行比对,得到该第一测试结果。
[0149]
在本公开实施方式,通过对所述接口文档进行解析,得到所述待测接口对应的标准响应信息;将所述第二响应信息与所述标准响应信息进行对比,得到所述第一测试结果。这样,通过将第二响应信息和标准响应信息进行比对,可以提高第一测试结果的准确度,从而可以提高接口文档的测试结果的准确度。
[0150]
在一些实施方式中,所述步骤s26包括步骤s261至步骤s262,其中:
[0151]
步骤s261、利用预设的文本纠错算法,对所述接口文档进行纠错处理,得到第二测试结果。
[0152]
这里,文本纠错算法可以是任意合适的能够对文本进行纠错处理的算法。例如,
pycorrector算法、基于规则的遍历算法等。在实施时,本领域技术人员可以根据实际需求自主确定文本纠错算法,本公开实施例不作限定。
[0153]
纠错处理可以包括但不限于标点符号是否错误、用词是否错误、是否存在笔误、语句是否冗余等。
[0154]
第二测试结果表征文本纠错处理的测试结果。第二测试结果可以包括但不限于纠错成功、纠错失败等。
[0155]
步骤s262、基于所述第一测试结果和所述第二测试结果,得到所述测试结果。
[0156]
这里,可以将第一测试结果和第二测试结果进行合并,得到该测试结果。例如,该测试结果包括接口测试成功、且纠错成功。又例如,该测试结果包括接口测试失败、且纠错失败。
[0157]
在一些实施方式中,该测试结果还包括请求信息进行发送处理的第三测试结果等,其中,第三测试结果包括请求信息发送成功、请求信息发送失败等。例如,将测试脚本发送至待测接口,基于网络返回的响应状态码,初步判断该请求发送是否成功,在响应状态码为200的情况下,该第三测试结果为请求信息发送成功,在响应状态码为非200的情况下,该第三测试结果为请求信息发送失败,表征该请求信息中的接口参数有错误,从而得到该接口文档中接口描述不准确。
[0158]
在本公开实施方式中,通过利用预设的文本纠错算法,对所述接口文档进行纠错处理,得到第二测试结果;基于所述第一测试结果和所述第二测试结果,得到所述测试结果。这样,一方面,利用文本纠错算法自动对接口文档的内容进行纠错处理,不仅可以降低人力成本,还可以提高接口文档的准确度,从而可以提高测试结果的准确度;另一方面,测试结果包括接口测试结果和文档纠错处理结果,可以提高测试结果的准确度和全面性。
[0159]
基于上述实施例,本公开实施例提供一种接口文档的测试系统,图3a为本公开实施例提供的一种接口文档的测试系统的组成结构示意图,如图3a所示,该系统30包括客户端31和服务端32,其中:
[0160]
所述客户端31,用于对所述接口文档进行解析,得到所述接口文档中待测接口的第一请求信息;基于所述第一请求信息的数据类型,将所述第一请求信息转换为第二请求信息;基于所述第二请求信息,生成测试脚本;将所述测试脚本发送至所述服务器中进行测试;接收所述服务器返回的第一响应信息;基于所述第一响应信息,得到所述接口文档的测试结果;
[0161]
所述服务端32,用于接收所述客户端发送的所述测试脚本;利用所述测试脚本对所述待测接口进行测试,得到所述第一响应信息;将所述第一响应信息返回至所述客户端中。
[0162]
这里,客户端31和服务端32可以是同一电子设备,也可以是不同的电子设备。
[0163]
接口文档中主要包括待测接口的请求信息和响应信息。其中,请求信息可以包括但不限于接口方法、url、请求参数等中的至少之一,请求参数可以包括但不限于请求字段、参数类型、参数、附加信息等。响应信息可以包括但不限于接口方法、响应参数等,响应参数可以包括但不限于响应字段、参数类型、参数、附加信息等。
[0164]
第一请求信息的数据类型可以包括但不限于文本、表格、图片等。第二请求信息的数据类型可以是json格式、key-value等。
[0165]
在一些实施方式中,通过自动化测试工具,将第二请求信息打包为测试脚本。例如,通过postman,将第二请求信息打包为测试脚本。
[0166]
该第一响应信息的数据类型可以包括但不限于文本、表格、图片等。
[0167]
该测试结果可以包括但不限于待测接口的第一测试结果、接口文档的纠错处理的第二测试结果、请求信息进行发送处理的第三测试结果等。其中,第一测试结果包括接口测试成功、接口测试失败等。第二测试结果包括纠错成功、纠错失败等。第三测试结果包括请求信息发送成功、请求信息发送失败等。
[0168]
在一些实施方式中,所述客户端31还用于:在所述第一请求信息的数据类型包括第一数据类型的情况下,从所述第一请求信息中确定具有第一数据类型的第三请求信息和具有第二数据类型的第四请求信息;利用预设的转换方式,将所述第三请求信息转换为第五请求信息;基于所述第四请求信息和所述第五请求信息,得到所述第二请求信息。
[0169]
图3b为本公开实施例提供的一种对接口文档进行解析得到第二请求信息的实现流程示意图,如图3b所述,该方法包括步骤s311至步骤s315,其中:
[0170]
步骤s311、根据输入的待测接口文档的url,获取当前页面中显示的待测接口文档的详细信息;
[0171]
步骤s312、遍历当前页面的dom树,对当前页面中每行进行解析,并将每行信息与本地规则库(例如,关键字、特殊字符)进行匹配,得出待测接口的第一请求信息;
[0172]
步骤s313、确定第一请求信息是否包含表格,在第一请求信息包含表格的情况下,进入步骤s314,在第一请求信息不包含表格的情况下,进入步骤s315;
[0173]
步骤s314、将第一请求信息划分为包含表格的第三请求信息和包含文本的第四请求信息,利用预设的转换方式,将第三请求信息转换为第一json数据,将第四请求信息转换为第二json数据,并将第一json数据和第二json数据进行组装,得到第二请求信息;
[0174]
步骤s315、将第一请求信息转换为第三json数据,并将第三json数据作为第二请求信息。
[0175]
在一些实施方式中,所述第三请求信息中包括至少一行子信息,所述第五请求信息中包括至少一个键值对;所述客户端31还用于:针对所述第三请求信息中的每行子信息,确定所述子信息与上一子信息之间的层级关系,在所述层级关系为兄弟关系的情况下,将新建的存放位置作为所述子信息的存放位置,在所述层级关系为父子关系的情况下,将所述上一行子信息的存放位置作为所述子信息的存放位置;针对每行子信息,利用预设的转换方式,将所述子信息转换为至少一个键值对,并将每一所述键值对存入所述子信息的存放位置中。
[0176]
图3c为本公开实施例提供的一种将表格转换为json数据的实现流程示意图,如图3c所述,该方法包括步骤s321至步骤s328,其中:
[0177]
步骤s321、新建第一json数据,并把指针指向第一json数据;
[0178]
步骤s322、按照key:value形式,将第一行子信息加入到第一json数据中;
[0179]
步骤s323、新建第二json数据,并把指针指向第二json数据;
[0180]
步骤s324、确定当前行子信息与上一行子信息之间的层级关系是否为父子关系,如果是进入步骤s325,反之则进入步骤s326;
[0181]
步骤s325、将指针指向上一第二json数据,按照key:value形式,将当前行子信息
加入到上一第二json数据中,进入步骤s327;
[0182]
步骤s326、按照key:value形式,将当前行子信息加入到第二json数据中,进入步骤s327;
[0183]
步骤s327、确定当前行子信息的标识信息是否为最后一行,如果不是进入步骤s323,反之则进入步骤s328;
[0184]
步骤s328、结束当前流程。
[0185]
在一些实施方式中,所述客户端31还用于:基于所述第一响应信息的数据类型,将所述第一响应信息转换为第二响应信息;对所述接口文档进行解析,得到所述待测接口对应的标准响应信息;将所述第二响应信息与所述标准响应信息进行对比,得到第一测试结果;利用预设的文本纠错算法,对所述接口文档进行纠错处理,得到第二测试结果;基于所述第一测试结果和所述第二测试结果,得到所述测试结果。
[0186]
这里,将第一响应信息转换为第二响应信息,与将第一请求信息转换为第二请求信息类似,在实施时,可以参考前述步骤s12中将第一请求信息转换为第二请求信息的具体实施方式。
[0187]
文本纠错算法可以是任意合适的能够对文本进行纠错处理的算法。例如,pycorrector算法、基于规则的遍历算法等。在实施时,本领域技术人员可以根据实际需求自主确定文本纠错算法,本公开实施例不作限定。
[0188]
在一些实施方式中,利用预设的比对算法,将第二响应信息与标准响应信息进行比对,得到该第一测试结果。其中,比对算法可以是任意合适的能够进行比对的算法。例如,myer差分算法、rk算法、编辑距离算法、基于最长公共子串的算法等。在实施时,本领域技术人员可以根据实际需求自主确定比对的算法,本公开实施例不作限定。
[0189]
图3d为本公开实施例提供的一种接口文档的测试方法的实现流程示意图,如图3d所示,该方法包括步骤s331至步骤s338,其中:
[0190]
步骤s331、读取接口文档的url;
[0191]
步骤s332、获取当前页面中显示的接口文档信息,解析出接口文档中关于待测接口的第一请求信息;
[0192]
这里,可以使用爬虫等技术获取接口文档信息。
[0193]
步骤s333、将第一请求信息中的表格转换为具有json格式的第二请求信息;
[0194]
步骤s334、将第二请求信息组装成测试脚本,并向待测接口发送真实请求;
[0195]
步骤s335、根据发送请求的响应状态码,得到请求信息发送结果(对应上述第三测试结果);
[0196]
这里,如果响应状态码为200,认为请求正确,从而判断接口文档解析正确,进而判断接口文档中对待测接口的描述信息正确。如果响应状态码为非200,说明通过接口文档解析出的待测接口的参数有误,从而判断接口文档对该待测接口描述不准确,也即接口文档有误。
[0197]
步骤s336、接收服务端返回的第一响应信息,将第一响应信息转换为第二响应信息,并将第二响应信息和接口文档中待测接口的标准响应信息做对比,得到接口测试结果(对应于上述第一测试结果);
[0198]
这里,判断真实返回数据和接口文档描述的返回数据是否一致,得到该接口测试
结果。其中,该数据包括名字/标识是否一致、数据结构是否一致。
[0199]
步骤s337、智能解析出接口文档中的文字描述语句,使用ai文本纠错算法,对接口文档中的文字描述进行智能文本纠错,得到文本纠错结果(对应上述第二测试结果);
[0200]
这里,根据ai智能文本纠错结果,判断接口文档中是否有文字表达错误,例如语句冗余、用词错误、标点错误等错误信息。
[0201]
步骤s338、合并每一测试结果,并输出测试通过和不通过的内容。
[0202]
在本公开实施例中,首先,通过自动解析接口文档的请求信息并生成测试脚本,而不需要人工进行阅读、填写等操作,不仅缩短了测试时间、降低了人力成本,而且还提高了测试效率和测试结果的准确率;其次,基于接口请求信息的类型对接口请求信息进行转换,以使得服务端能够解析该接口请求信息,从而可以进一步提高测试结果的准确度;再次,对响应信息中的数据格式进行智能转换,以使得客户端能够解析该响应信息,不仅可以缩短测试时间,提高测试效率,而且还可以进一步提高测试结果的准确度;最后,利用层级关系确定表格中的数据的存放位置,可以提高数据解析的准确度,从而可以降低数据的差错率,进而可以进一步提高测试结果的准确度。
[0203]
基于上述实施例,本公开实施例提供一种接口文档的测试装置,图4为本公开实施例提供的一种接口文档的测试装置的组成结构示意图,如图4所示,所述装置40包括第一确定模块41、转换模块42、发送模块43及第二确定模块44,其中:
[0204]
所述第一确定模块41,用于对所述接口文档进行解析,得到所述接口文档中待测接口的第一请求信息;
[0205]
所述转换模块42,用于基于所述第一请求信息的数据类型,将所述第一请求信息转换为第二请求信息;
[0206]
所述发送模块43,用于基于所述第二请求信息,生成测试脚本,并将所述测试脚本发送至所述待测接口进行测试;
[0207]
所述第二确定模块44,用于基于所述待测接口返回的第一响应信息,得到所述接口文档的测试结果。
[0208]
在一些实施方式中,所述转换模块42,还用于:在所述第一请求信息的数据类型包括第一数据类型的情况下,从所述第一请求信息中确定具有第一数据类型的第三请求信息和具有第二数据类型的第四请求信息;利用预设的转换方式,将所述第三请求信息转换为第五请求信息;基于所述第四请求信息和所述第五请求信息,得到所述第二请求信息。
[0209]
在一些实施方式中,所述第三请求信息中包括至少一行子信息,所述第五请求信息中包括至少一个键值对;所述转换模块42,还用于:针对所述第三请求信息中的每行子信息,确定所述子信息的存放位置;针对每行子信息,利用预设的转换方式,将所述子信息转换为至少一个键值对,并将每一所述键值对存入所述子信息的存放位置中。
[0210]
在一些实施方式中,所述转换模块42,还用于:确定所述子信息与上一子信息之间的层级关系;在所述层级关系为兄弟关系的情况下,将新建的存放位置作为所述子信息的存放位置;在所述层级关系为父子关系的情况下,将所述上一行子信息的存放位置作为所述子信息的存放位置。
[0211]
在一些实施方式中,所述第二确定模块44,还用于:基于所述第一响应信息的数据类型,将所述第一响应信息转换为第二响应信息;基于所述第二响应信息,得到第一测试结
果;基于所述第一测试结果,得到所述接口文档的测试结果。
[0212]
在一些实施方式中,所述第二确定模块44,还用于:利用预设的文本纠错算法,对所述接口文档进行纠错处理,得到第二测试结果;基于所述第一测试结果和所述第二测试结果,得到所述测试结果。
[0213]
在一些实施方式中,所述第二确定模块44,还用于:对所述接口文档进行解析,得到所述待测接口对应的标准响应信息;将所述第二响应信息与所述标准响应信息进行对比,得到所述第一测试结果。
[0214]
在一些实施方式中,所述装置还包括第三确定模块,所述第三确定模块,用于获取所述接口文档的链接地址;基于所述链接地址,得到所述接口文档。
[0215]
以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本公开装置实施例中未披露的技术细节,请参照本公开方法实施例的描述而理解。
[0216]
需要说明的是,本公开实施例中,如果以软件功能模块的形式实现上述方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机、服务器、或者网络设备等)执行本公开各个实施例所述方法的全部或部分。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read only memory,rom)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本公开实施例不限制于任何特定的硬件和软件结合。
[0217]
本公开实施例提供一种电子设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法。
[0218]
本公开实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法。所述计算机可读存储介质可以是瞬时性的,也可以是非瞬时性的。
[0219]
本公开实施例提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序被计算机读取并执行时,实现上述方法中的部分或全部步骤。该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(software development kit,sdk)等等。
[0220]
需要说明的是,图5为本公开实施例中电子设备的一种硬件实体示意图,如图5所示,该电子设备500的硬件实体包括:处理器501、通信接口502和存储器503,其中:
[0221]
处理器501通常控制电子设备500的总体操作。
[0222]
通信接口502可以使电子设备通过网络与其他终端或服务器通信。
[0223]
存储器503配置为存储由处理器501可执行的指令和应用,还可以缓存待处理器501以及电子设备500中各模块待处理或已经处理的数据(例如,图像数据、音频数据、语音通信数据和视频通信数据),可以通过闪存(flash)或随机访问存储器(random access memory,ram)实现。处理器501、通信接口502和存储器503之间可以通过总线504进行数据传
输。
[0224]
这里需要指出的是:以上存储介质和设备实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本公开存储介质和设备实施例中未披露的技术细节,请参照本公开方法实施例的描述而理解。
[0225]
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本公开的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本公开的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本公开实施例的实施过程构成任何限定。上述本公开实施例序号仅仅为了描述,不代表实施例的优劣。
[0226]
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
[0227]
在本公开所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
[0228]
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
[0229]
另外,在本公开实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
[0230]
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(read only memory,rom)、磁碟或者光盘等各种可以存储程序代码的介质。
[0231]
或者,本公开上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机、服务器、或者网络设备等)执行本公开各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、rom、磁碟或者光盘等各种可以存储程序代码的介质。
[0232]
以上所述,仅为本公开的实施方式,但本公开的保护范围并不局限于此,任何熟悉
本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。

技术特征:
1.一种接口文档的测试方法,其特征在于,所述方法包括:对所述接口文档进行解析,得到所述接口文档中待测接口的第一请求信息;基于所述第一请求信息的数据类型,将所述第一请求信息转换为第二请求信息;基于所述第二请求信息,生成测试脚本,并将所述测试脚本发送至所述待测接口进行测试;基于所述待测接口返回的第一响应信息,得到所述接口文档的测试结果。2.根据权利要求1所述的方法,其特征在于,所述基于所述第一请求信息的数据类型,将所述第一请求信息转换为第二请求信息,包括:在所述第一请求信息的数据类型包括第一数据类型的情况下,从所述第一请求信息中确定具有第一数据类型的第三请求信息和具有第二数据类型的第四请求信息;利用预设的转换方式,将所述第三请求信息转换为第五请求信息;基于所述第四请求信息和所述第五请求信息,得到所述第二请求信息。3.根据权利要求2所述的方法,其特征在于,所述第三请求信息中包括至少一行子信息,所述第五请求信息中包括至少一个键值对;所述利用预设的转换方式,将所述第三请求信息转换为第五请求信息,包括:针对所述第三请求信息中的每行子信息,确定所述子信息的存放位置;针对每行子信息,利用预设的转换方式,将所述子信息转换为至少一个键值对,并将每一所述键值对存入所述子信息的存放位置中。4.根据权利要求3所述的方法,其特征在于,所述确定所述子信息的存放位置,包括:确定所述子信息与上一行子信息之间的层级关系;在所述层级关系为兄弟关系的情况下,将新建的存放位置作为所述子信息的存放位置;在所述层级关系为父子关系的情况下,将所述上一行子信息的存放位置作为所述子信息的存放位置。5.根据权利要求1至4中任一项所述的方法,其特征在于,所述基于所述待测接口返回的第一响应信息,得到所述接口文档的测试结果,包括:基于所述第一响应信息的数据类型,将所述第一响应信息转换为第二响应信息;基于所述第二响应信息,得到第一测试结果;基于所述第一测试结果,得到所述接口文档的测试结果。6.根据权利要求5所述的方法,其特征在于,所述基于所述第一测试结果,得到所述接口文档的测试结果,包括:利用预设的文本纠错算法,对所述接口文档进行纠错处理,得到第二测试结果;基于所述第一测试结果和所述第二测试结果,得到所述测试结果。7.根据权利要求5所述的方法,其特征在于,所述基于所述第二响应信息,得到第一测试结果,包括:对所述接口文档进行解析,得到所述待测接口对应的标准响应信息;将所述第二响应信息与所述标准响应信息进行对比,得到所述第一测试结果。8.根据权利要求1至4中任一项所述的方法,其特征在于,所述方法还包括:获取所述接口文档的链接地址;
基于所述链接地址,得到所述接口文档。9.一种接口文档的测试系统,其特征在于,所述系统包括客户端和服务端,其中:所述客户端,用于对所述接口文档进行解析,得到所述接口文档中待测接口的第一请求信息;基于所述第一请求信息的数据类型,将所述第一请求信息转换为第二请求信息;基于所述第二请求信息,生成测试脚本;将所述测试脚本发送至所述服务器中进行测试;接收所述服务器返回的第一响应信息;基于所述第一响应信息,得到所述接口文档的测试结果;所述服务端,用于接收所述客户端发送的所述测试脚本;利用所述测试脚本对所述待测接口进行测试,得到所述第一响应信息;将所述第一响应信息返回至所述客户端中。10.一种接口文档的测试装置,其特征在于,所述装置包括:第一确定模块,用于对所述接口文档进行解析,得到所述接口文档中待测接口的第一请求信息;转换模块,用于基于所述第一请求信息的数据类型,将所述第一请求信息转换为第二请求信息;发送模块,用于基于所述第二请求信息,生成测试脚本,并将所述测试脚本发送至所述待测接口进行测试;第二确定模块,用于基于所述待测接口返回的第一响应信息,得到所述接口文档的测试结果。11.一种电子设备,包括处理器和存储器,所述存储器存储有可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至8任一项所述方法。12.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,该计算机程序被处理器执行时实现权利要求1至8任一项所述方法。

技术总结
本公开实施例公开了一种接口文档的测试方法、系统及装置、电子设备和存储介质,所述方法包括:对所述接口文档进行解析,得到所述接口文档中待测接口的第一请求信息;基于所述第一请求信息的数据类型,将所述第一请求信息转换为第二请求信息;基于所述第二请求信息,生成测试脚本,并将所述测试脚本发送至所述待测接口进行测试;基于所述待测接口返回的第一响应信息,得到所述接口文档的测试结果。得到所述接口文档的测试结果。得到所述接口文档的测试结果。


技术研发人员:马德营
受保护的技术使用者:中国移动通信集团有限公司
技术研发日:2022.09.22
技术公布日:2023/9/22
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐