CN113391972A - 一种接口测试方法及装置 - Google Patents

一种接口测试方法及装置 Download PDF

Info

Publication number
CN113391972A
CN113391972A CN202110868495.XA CN202110868495A CN113391972A CN 113391972 A CN113391972 A CN 113391972A CN 202110868495 A CN202110868495 A CN 202110868495A CN 113391972 A CN113391972 A CN 113391972A
Authority
CN
China
Prior art keywords
interface
request
response message
tested
format
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
Application number
CN202110868495.XA
Other languages
English (en)
Inventor
刘元慧
刘洋
杨浩宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Founder Electronics Co Ltd
Original Assignee
Beijing Founder Electronics Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Founder Electronics Co Ltd filed Critical Beijing Founder Electronics Co Ltd
Priority to CN202110868495.XA priority Critical patent/CN113391972A/zh
Publication of CN113391972A publication Critical patent/CN113391972A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2252Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using fault dictionaries

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)

Abstract

本申请提供一种接口测试方法及装置,该方法包括:获取用户输入的请求头和请求信息,请求信息包括请求参数和/或请求体,将请求头和请求信息转换为字典格式,并将格式转换后得到的数据赋值给类的私有属性,根据类的私有属性向待测接口发送接口请求,以使待测接口对接口请求进行处理后返回响应消息,将响应消息转换为对象格式,并对格式转换后的响应消息进行验证,得到验证结果。这样,在这个过程中测试人员不需要编写过多的代码实现请求头和请求消息的设置及转换,也不需要解析响应消息,从而降低测试难度和对测试人员的技术要求,减少时间成本以及人力成本。

Description

一种接口测试方法及装置
技术领域
本申请涉及自动化测试技术领域,尤其涉及一种接口测试方法及装置。
背景技术
随着自动化测试技术发展,接口自动化测试的方法为越来越多的平台提供服务,用户可以根据平台提供接口定制自己需要服务,而接口自动化测试过程的主要目的是减少人工的参与,提高测试效率。
现有技术中,可以通过调用各种编程语言HTTP相关类库进行接口自动化测试,也可以基于关键字驱动进行接口自动化测试,具体的,基于上述两种方法,测试人员预先编写符合要求的待测试接口对应的请求头、请求参数和请求体的代码,向待测试接口发送该代码对应的接口请求消息,并接收待测试接口反馈的响应消息,将响应消息解析为方便取字段值的格式,进一步的,对响应消息进行验证。
但是,上述两种方法需要测试人员具有较强的编码能力,且需要进行大量的编码,增加了测试的难度,同时需要耗费较多的时间成本以及人力成本。
发明内容
本申请提供一种接口测试方法及装置,用以解决现有技术接口测试难度较高,同时需要耗费较多的时间成本以及人力成本的问题。
第一方面,本申请实施例提供一种接口测试方法,该方法包括:获取用户输入的请求头和请求信息,所述请求信息包括请求参数和/或请求体;将所述请求头和请求信息转换为字典格式,并将格式转换后得到的数据赋值给类的私有属性;根据类的私有属性向待测接口发送接口请求,以使所述待测接口对所述接口请求进行处理后返回响应消息;将所述响应消息转换为对象格式,并对格式转换后的响应消息进行验证,得到验证结果。
一种可能的实现方式中,在将格式转换后得到的数据赋值给类的私有属性之前,还包括:将类的私有属性与类的方法封装在一起;相应的,根据类的私有属性向待测接口发送接口请求,包括:通过调用与所述类的私有属性封装在一起的方法,向待测接口发送接口请求。
一种可能的实现方式中,配置关键字输入规则,其中,所述关键字输入规则包括下述至少一项:接口间数据传递的输入规则、多数据库校验的输入规则、特定文字或符号的输入规则;相应的,将所述请求头和请求信息转换为字典格式,包括:根据所述关键字输入规则,将所述请求头和请求信息转换为字典格式。
一种可能的实现方式中,通过调用与所述类的私有属性封装在一起的方法,向待测接口发送接口请求,包括下述一项或多项:通过调用post的方法向待测接口发送接口请求,所述接口请求用于供所述待测接口向服务器提交第一类型数据,所述第一类型的数据为长度小于预设值的数据或者字符串类型的数据;通过调用post_files的方法向待测接口发送接口请求,所述接口请求用于供所述待测接口向服务器提交第二类型数据,所述第二类型的数据为长度大于预设值的数据或者文件类型的数据;通过调用get的方法向待测接口发送接口请求,所述接口请求用于供所述待测接口从服务器端获取用于在浏览器上展示的资源;通过调用put的方法向待测接口发送接口请求,所述接口请求用于供所述待测接口从服务器更新资源;通过调用delete的方法向待测接口发送接口请求,所述接口请求用于供所述待测接口请求服务器删除资源。
一种可能的实现方式中,将所述响应消息转换为对象格式,包括:通过预设的关键字获取所述响应消息中的字段数;获取所述响应消息中的每一字段的长度;根据所述字段数和每一字段的长度将所述响应消息转换为对象格式。
一种可能的实现方式中,所述响应消息包括:HTTP状态码和接口的响应码,对格式转换后的响应消息进行验证,得到验证结果,包括:根据所述HTTP状态码和所述接口的响应码确定接口请求连接是否成功;若是,则通过存储的期望值利用对象取值的方法对格式转换后的响应消息进行验证,得到验证结果;若否,则确定验证结果为接口请求连接失败。
一种可能的实现方式中,所述期望值包括转换后的请求头和请求信息,则通过存储的期望值利用对象取值的方法对格式转换后的响应消息进行验证,得到验证结果,包括:提取转换后的请求头和请求信息中的关键字,利用对象取值的方法查询格式转换后的响应消息中是否存在所述关键字,得到验证结果。
第二方面,本申请实施例提供一种接口测试装置,包括:获取模块,用于获取用户输入的请求头和请求信息,所述请求信息包括请求参数和/或请求体;处理模块,用于将所述请求头和请求信息转换为字典格式,并将格式转换后得到的数据赋值给类的私有属性;发送模块,用于根据类的私有属性向待测接口发送接口请求,以使所述待测接口对所述接口请求进行处理后返回响应消息;验证模块,用于将所述响应消息转换为对象格式,并对格式转换后的响应消息进行验证,得到验证结果。
第三方面,本申请实施例提供一种电子设备,包括:处理器,存储器以及计算机程序;其中,所述计算机程序被存储在所述存储器中,并且被配置为由所述处理器执行,所述计算机程序包括用于执行如第一方面任一项所述的接口测试方法的指令。
第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如第一方面任一项所述的接口测试方法。
第五方面,本申请实施例提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如第一方面任一项所述的接口测试方法。
综上所述,本申请实施例提供了一种接口测试方法及装置,该方法可以在获取用户输入的请求头和请求信息后,对请求头和请求信息进行格式转化并赋值给类的私有属性,通过类的私有属性向待测接口发送接口请求,并且可以将待测接口对接口请求进行处理后返回响应消息进行格式转换,这样,在这个过程中测试人员不需要编写过多的代码实现请求头和请求消息的设置及转换,也不需要解析响应消息,从而降低测试难度和对测试人员的技术要求,减少时间成本以及人力成本。
附图说明
图1为本申请实施例提供的一种接口测试方法的应用场景示意图;
图2为本申请实施例提供的一种接口测试方法的流程示意图;
图3为本申请实施例提供的一种接口测试方法中的方法类图;
图4为本申请实施例提供的一种接口测试方法的原理示意图;
图5为本申请实施例提供的一种接口测试装置的结构示意图;
图6为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。例如,第一设备和第二设备仅仅是为了区分不同的设备,并不对其先后顺序进行限定。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
需要说明的是,本申请中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
下面结合附图对本申请实施例进行介绍。图1为本申请实施例提供的一种接口测试方法的应用场景示意图,本申请提供的接口测试方法可以应用于如图1所示的应用场景中。该应用场景包括:用户101,客服端102和服务器103,在该应用场景下,当用户101需要查询某个信息时,可以通过在客户端102输入某个信息并进行相关的查询的操作,进一步的,客户端102向服务器103发送接口请求,相应的,服务器103接收该接口请求,完成数据交换,并返回响应消息,这样,用户101就可以通过客服端102查询到结果。
一种可能的实现方式中,客服端和服务器交换数据时,服务器通常采用调用各种编程语言HTTP相关类库进行接口自动化测试,例如,调用Robot Framework中的HTTP类库或Requests类库进行接口自动化测试。
一种可能的实现方式中,还可以采用基于关键字驱动进行接口自动化测试,例如基于Java中的HttpClient和HttpCore进行接口自动化测试,或者基于python中的HttpRequest进行接口自动化测试。
具体的,基于上述两种方法,根据待测试接口相对应的接口文档中对请求头、请求参数和请求体的格式要求,测试人员需要通过调用相关编程语言的相关类库预先编写符合要求的待测试接口对应的请求头、请求参数和请求体的代码,进一步的,向待测试接口发送该代码对应的接口请求消息,在接收到待测试接口反馈的响应消息后,根据接口文档中定义的响应消息的格式,将响应消息解析为方便取字段值的格式,进一步的,对响应消息进行验证。
但是,上述两种方法需要测试人员具有较强的编码能力,且需要进行大量的编码,增加了测试的难度,同时需要耗费较多的时间成本以及人力成本。
因此,本申请实施例提供了一种接口测试方法,该方法可以在获取用户输入的请求头和请求信息后,对请求头和请求信息进行格式转化并赋值给类的私有属性,通过类的私有属性向待测接口发送接口请求,并且可以对待测接口对接口请求进行处理后返回响应消息进行格式转换,这样,在这个过程中测试人员不需要编写过多的代码实现请求头和请求消息的设置及转换,也不需要解析响应消息,从而降低测试难度和对测试人员的技术要求,减少时间成本以及人力成本。
示例性的,图2为本申请实施例提供的一种接口测试方法的流程示意图,如图2所示,本申请实施例的方法包括:
S201、获取用户输入的请求头和请求信息,请求信息包括请求参数和/或请求体。
本申请实施例中,请求头可以指的是携带客户端的请求类型信息的json字符串,用于告诉服务器一些信息,例如,可以告诉服务器,客户端支持的数据类型、客户端采用的编码、客户端支持的数据压缩格式、客户端的语言环境、客户端想访问的主机名、资源的缓存时间、客户端的软件环境等信息。
请求参数可以指的是将用户输入信息进行形式编码的格式化串的参数数据,请求体可以指的是将用户输入信息进行形式编码的大于一定阈值的参数数据,例如文件类型的参数数据。需要说明的是,本申请实施例对阈值的数值不作具体限定,该阈值可以根据具体情况进行设计。
示例性的,服务器可以获取用户输入的请求头和请求信息,其中,请求信息包括请求参数和/或请求体,例如,请求头为Accept:json,用于告诉服务器请求的格式为json格式。
可以理解的是,请求信息可以包括请求参数,也可以包括请求体,也可以包括请求参数和请求体,本申请实施例对此不作具体限定。
S202、将请求头和请求信息转换为字典格式,并将格式转换后得到的数据赋值给类的私有属性。
本申请实施例中,字典格式可以指的是一种映射格式,表示为:每个键值对用冒号“:”分割,每个键值对之间用逗号“,”分割,整个字典包括在花括号“{}”中,例如,d={key1:value1,key2:value2}。类的私有属性可以指的是用特定的方法改变的属性,私有属性不可以直接调用,可以通过类的方法对类的私有属性进行调用。
示例性的,服务器可以将用户输入的请求头和请求信息转换为字典格式,进一步的,将格式转换后得到的数据赋值给类的私有属性,例如,将用户输入的请求头和请求信息转换为字典格式为d={key1:value1,key2:value2},进一步,将d={key1:value1,key2:value2}赋值给类的私有属性。
S203、根据类的私有属性向待测接口发送接口请求,以使待测接口对接口请求进行处理后返回响应消息。
本申请实施例中,响应消息可以指的是接收到的服务器的待测接口返回的信息,可以包括响应状态码和响应体,响应状态码可以指的是服务器告诉客户端本次接口请求和响应的一个状态,可以包括HTTP状态码以及接口的响应码,响应体可以指的是返回的所有内容数据信息;其中,HTTP状态码以及接口的响应码表示客户端HTTP请求的返回结果、标记服务器端的处理是否正常或者是出现的错误,由三位数字和原因短语组成,例如,200OK,表示服务器已成功处理了接口请求,403Forbidden,表示服务器拒绝该次访问。
示例性的,可以根据类的私有属性向服务器的待测接口发送用户所需的接口请求,以使待测接口对接口请求进行处理后返回响应消息,例如,在浏览器上搜索一个地方“北京”,相应的,服务器将“北京”转换为字典格式,并赋值给类的私有属性,进一步,根据类的私有属性向待测接口发送接口请求,以使待测接口对接口请求进行处理后返回有关“北京”的响应消息。
S204、将响应消息转换为对象格式,并对格式转换后的响应消息进行验证,得到验证结果。
本申请实施例中,对象格式可以指的是将json格式的字符串转化json对象的键和值,即将服务器端响应给客户端的json格式的字符串转换成一个json对象,例如,json对象的定义格式如下:整体采用“[]”定义,其中某列或同一结果数据用“{}”定义,“{}”中数据采用“key:value”的格式定义,多个属性用“,”分割,可以表示为:[{key1:'value1',key2:'value2'},{key3:'value3',key4:'value4'}]。
示例性的,服务器可以将服务器的待测接口对接口请求进行处理后返回后的响应消息做格式转换,转换为对象格式,例如,转换后的对象格式为:[{key1:'value1',key2:'value2'},{key3:'value3',key4:'value4'}],进一步的,对格式转换后的响应消息进行验证,得到验证结果。
因此,本申请实施例提供的接口测试方法可以在获取用户输入的请求头和请求信息后,对请求头和请求信息格式转化为字典格式,并赋值给类的私有属性,进一步的,通过类的私有属性向待测接口发送接口请求,并且可以将待测接口对接口请求进行处理后返回的响应消息转换为对象格式进行验证,这样,可以根据用户输入的请求头和请求信息自动实现接口请求的发送以及响应信息的格式转换,在这个过程中测试人员不需要编写过多的代码实现请求头和请求消息的设置及转换,也不需要解析响应消息,从而降低测试难度和对测试人员的技术要求,加快测试效率,减少时间成本以及人力成本。
一种可能的实现方式中,在将格式转换后得到的数据赋值给类的私有属性之前,还包括:将类的私有属性与类的方法封装在一起;相应的,根据类的私有属性向待测接口发送接口请求,包括:通过调用与类的私有属性封装在一起的方法,向待测接口发送接口请求。
本申请实施例可以通过Python等编程语言来实现,其中,类的方法可以指的是类中的函数,可以分为:实例方法,类方法,静态方法,可以有post(创建)的方法,表示创建函数,post_files(创建)的方法,也表示创建函数,get(查询)的方法,表示查看函数,put(更新)的方法,表示更新函数,delete(删除)的方法,表示删除函数等。
示例性的,在服务器将格式转换后得到的数据赋值给类的私有属性之前,可以将类的私有属性与类的方法封装在一起;进一步的,可以通过调用与类的私有属性封装在一起的方法,携带上转换后的请求头和请求信息,向待测接口发送接口请求。例如,调用delete的方法向待测接口发送接口请求,会自动携带上转换后的请求头和请求信息,进一步,执行删除的步骤。
因此,通过将类的私有属性与类的方法封装在一起,向待测接口发送接口请求,这样,在调用方法的时候就可以携带上转换后的请求头和请求信息,不需要测试人员编写过多的代码实现请求头和请求消息的设置及转换,减少时间成本以及人力成本。
一种可能的实现方式中,配置关键字输入规则,其中,关键字输入规则包括下述至少一项:接口间数据传递的输入规则、多数据库校验的输入规则、特定文字或符号的输入规则;相应的,将请求头和请求信息转换为字典格式,包括:根据关键字输入规则,将请求头和请求信息转换为字典格式。
本申请实施例中,关键字输入规则可以指的是服务器设定的可以按照一定的规律提取所需关键字的规则,接口间数据传递的输入规则可以指的是传递的数据类型符合待测接口输入要求的规则,多数据库校验的输入规则可以指的是数据类型符合多种类型的数据库的校验规则,特定文字或符号的输入规则可以指的是数据类型中有符合的特定文字,或有符合的符号的输入规则。
示例性的,可以通过配置关键字输入规则,进一步的,服务器可以根据配置好的关键字输入规则,将请求头和请求信息转换为所需的字典格式。
需要说明的是,本申请实施例并不只限于上述的关键字输入规则,还可以包括其他的输入规则,只要可以执行本申请实施例的接口测试方法即可,本申请实施例对此不作具体限定。
因此,通过配置关键字输入规则,将请求头和请求信息转换为字典格式,避免了大量重复编码而导致的测试难度增加的问题,减少了编码量,提高了编码效率。
一种可能的实现方式中,通过调用与类的私有属性封装在一起的方法,向待测接口发送接口请求,包括下述一项或多项:通过调用post的方法向待测接口发送接口请求,接口请求用于供待测接口向服务器提交第一类型数据,第一类型的数据为长度小于预设值的数据或者字符串类型的数据;通过调用post_files的方法向待测接口发送接口请求,接口请求用于供待测接口向服务器提交第二类型数据,第二类型的数据为长度大于预设值的数据或者文件类型的数据;通过调用get的方法向待测接口发送接口请求,接口请求用于供待测接口从服务器端获取用于在浏览器上展示的资源;通过调用put的方法向待测接口发送接口请求,接口请求用于供待测接口从服务器更新资源;通过调用delete的方法向待测接口发送接口请求,接口请求用于供待测接口请求服务器删除资源。
本申请实施例中,预设值可以指的是设定的可以区分数据类型大小的阈值,利用预设值对数据类型进行区分,可以分为第一类型数据和第二类型数据,其中,第一类型的数据为长度小于预设值的数据或者字符串类型的数据,例如,字符串类的数据,第二类型的数据为长度大于预设值的数据,例如,文件类、图片类、视频类的数据。
示例性的,图3为本申请实施例提供的一种接口测试方法中的方法类图,如图3所示,FATL代表类名,在接口测试时,将其抽象为类的四个属性,分别为请求头(即Headers)、请求参数(即Parameters)、响应的状态码(即Status)及响应消息(即Data),类中设计五种方法,分别为post的方法(即fapi_post()),post_files的方法(即fapi_post_files()),get的方法(即fapi_get()),put的方法(即fapi_put()),delete的方法(即fapi_delete()),其中,“+”代表公共的方法,即每个属性都可以执行带“+”的方法。
可选的,可以通过调用post的方法向待测接口发送接口请求,该post的方法可以用于向服务器提交第一类型数据,例如,字符串类的数据。
可选的,可以通过调用post_files的方法向待测接口发送接口请求,该post_files的方法可以用于向服务器提交第二类型数据,例如,文件类、图片类、视频类的数据。
可选的,可以通过调用get的方法向待测接口发送接口请求,该get的方法可以用于从服务器端获取用于在浏览器上展示的资源。例如,用来告诉服务器需要获取哪些内容,向静态页面请求则直接返回文件内容给浏览器,向一个动态页面请求时可以提供查询参数以获得相应内容。
可选的,可以通过调用put的方法向待测接口发送接口请求,该put的方法可以用于从服务器更新资源,例如,从客户端向服务器传送的数据取代指定文档的内容。
可选的,可以通过调用delete的方法向待测接口发送接口请求,该delete的方法可以用于请求服务器删除资源,例如,可以请求服务器删除指定的页面。
具体的,FATL与该四个属性为聚合关系,图中菱形指向整体FATL,箭头指向四个属性,每个连接都会有两个端点,且每个端点都可以有一个基数,表示这个类可以有几个实例。其中,“1”表示有1个实例。而该四个属性又可以分别有相应的方法操作,请求头与请求参数有公共的方法操作,即set()、to_dictionary()和reset(),set()表示设置的方法,to_dictionary()表示转换成字典的方法,reset()表示重置的方法,例如,编写reset()代码,可以重置请求头和请求参数的数据。
响应的状态码对应的方法操作有get_status_code(),表示获取状态响应码的方法,响应消息,对应的方法操作有field_count(),表示获取最近执行的查询的结果集中的字段(列)数的方法,get_length(),表示获得长度的方法,其中,“+”代表为公共的方法,所有属性都可以调用该方法,“-”代表私有的方法,只有相对应属性可以调用该方法。
需要说明的是,图3所示的方法仅是示例,并不涵盖所有属性对应的所有方法。
因此,可以通过调用与类的私有属性封装在一起的方法,向待测接口发送接口请求,这样,在发送接口请求时会将类的私有属性自动带上,从而可以降低接口自动化测试中的参数设置与请求发送的耦合度,减少代码的编写量,降低时间成本以及人力成本。
一种可能的实现方式中,将响应消息转换为对象格式,包括:通过预设的关键字获取响应消息中的字段数;获取响应消息中的每一字段的长度;根据字段数和每一字段的长度将响应消息转换为对象格式。
本申请实施例中,关键字可以指的是能够最大程度概括用户所要查找的信息内容的字段,可以包括用户发送数据中属性名称的关键字,也可以包括方法操作的关键字等。进一步的,属性名称的关键字可以包括请求参数数据中的属性名词,例如“name”,“number”等名词;方法操作关键字可以包括post、get、put等。
示例性的,服务器可以通过预设的关键字获取响应消息中的字段数有多少;进一步的,获取该响应消息中的每一字段的长度;例如,关键字设定为“area”,即地域名称,则需要获取响应消息中有关地域名称的字段数有多少,即可以获取到area1:value1,area2:value2,area3:value3,area4:value4,进一步的,获取该响应消息中的每一字段的长度value1-value4的字段长度,根据字段数和每一字段的长度将响应消息转换为对象格式,为[{area 1:'value1',area 2:'value2'},{area 3:'value3',area 4:'value4'}]。
因此,将响应消息转换为对象格式,不需要解析响应消息,简化了验证过程,从而降低测试难度和对测试人员的技术要求,加快验证效率。
一种可能的实现方式中,响应消息包括:HTTP状态码和接口的响应码,对格式转换后的响应消息进行验证,得到验证结果,包括:根据HTTP状态码和接口的响应码确定接口请求连接是否成功;若是,则通过存储的期望值利用对象取值的方法对格式转换后的响应消息进行验证,得到验证结果;若否,则确定验证结果为接口请求连接失败。
本申请实施例中,期望值可以指的是用户输入信息需要查询到的结果值,对象取值的方法可以包括:使用点的方式,例如,obj.a.b;使用中括号的方式,例如,obj["abc"]。
可以理解的是,本申请实施例中,对象取值的方法既可以使用点的方式,又可以使用中括号的方式,对此不作具体限定,仅需达到所需的效果即可。
示例性的,根据HTTP状态码和接口的响应码确定接口请求连接是否成功;若返回“200OK”,表示服务器已成功处理了接口请求,则可以通过存储的期望值利用对象取值的方法对格式转换后的响应消息进行验证,得到验证结果;若返回“403Forbidden”,表示服务器拒绝该次访问,则确定验证结果为接口请求连接失败。
需要说明的是,HTTP状态码和接口的响应码有很多表现形式,其中,1xx表示请求已接收,可以继续处理;2xx表示请求已被成功接收,3xx表示要完成请求必须进行更进一步的操作;4xx表示请求有语法错误或请求无法实现;5xx表示服务器未能实现合法的请求;xx代表数字,在此不一一列举。
因此,对格式转换后的响应消息进行验证,得到验证结果,可以很大程度上的减少代码的编写,降低测试难度和对测试人员的技术要求,加快验证效率。
一种可能的实现方式中,期望值包括转换后的请求头和请求信息,则通过存储的期望值利用对象取值的方法对格式转换后的响应消息进行验证,得到验证结果,包括:提取转换后的请求头和请求信息中的关键字,利用对象取值的方法查询格式转换后的响应消息中是否存在关键字,得到验证结果。
示例性的,服务器可以提取转换后的请求头和请求信息中的关键字,进一步的利用对象取值的方法查询格式转换后的响应消息中是否存在关键字,得到验证结果。例如,需要查询“beijing”的相关信息,服务器可以提取转换后的请求头和请求信息中的关键字中有“beijing”这个名词,则需要利用对象取值的方法查询格式转换后的响应消息中是否存在“beijing”这个名词,如果存在“beijing”这个名词,则表示验证成功,接口完成查询任务,如果没有存在“beijing”这个名词,则表示验证失败,接口没有完成查询任务。
具体的,转换后的请求头和请求信息中的关键字与验证结果存在一一对应关系,如果格式转换后的响应消息中存在关键字,则可以利用该关键字比对转换后的请求头和请求信息中的关键字,得到验证结果,该验证结果可以包括接口是否完成用户指定的任务,如果格式转换后的响应消息中没有存在关键字,则表示接口没有完成用户指定的任务。
因此,通过验证转换后的请求头和请求信息中的关键字与转换后的响应消息中存在的关键字是否一致,得到验证结果,提高了验证的可信度,进而提升准确性。
结合上述实施例,图4为本申请实施例提供的一种接口测试方法的原理示意图。如图4所示,本申请实施例的执行方法步骤包括:
步骤A:测试开始,通过设置请求头和请求体(即请求信息)的公共方法设置请求头和请求体,内置请求头和内置请求体指的是将请求头和请求体转换为字典格式,将格式转换后得到的数据赋值给类的私有属性,其中,类的私有属性与类的方法已经封装在一起,进一步执行步骤B。
步骤B:向待测接口发送请求,执行步骤C。
步骤C:接收响应消息,并将响应消息转换为对象格式,并对格式转换后的响应消息进行验证,执行步骤D。
步骤D:得到验证结果,测试结束。
在前述实施例中,对本申请实施例提供的接口测试方法进行了介绍,而为了实现上述本申请实施例提供的方法中的各功能,作为执行主体的电子设备可以包括硬件结构和/或软件模块,以硬件结构、软件模块、或硬件结构加软件模块的形式来实现上述各功能。上述各功能中的某个功能以硬件结构、软件模块、还是硬件结构加软件模块的方式来执行,取决于技术方案的特定应用和设计约束条件。
例如,图5为本申请实施例提供的一种接口测试装置的结构示意图,如图5所示,该装置包括:获取模块510,处理模块520,发送模块530和验证模块540,其中,获取模块510,用于获取用户输入的请求头和请求信息,请求信息包括请求参数和/或请求体;处理模块520,用于将请求头和请求信息转换为字典格式,并将格式转换后得到的数据赋值给类的私有属性;发送模块530,用于根据类的私有属性向待测接口发送接口请求,以使待测接口对接口请求进行处理后返回响应消息;验证模块540,用于将响应消息转换为对象格式,并对格式转换后的响应消息进行验证,得到验证结果。
一种可能的实现方式中,在将格式转换后得到的数据赋值给类的私有属性之前,处理模块520还用于,将类的私有属性与类的方法封装在一起;相应的,发送模块530具体用于,通过调用与类的私有属性封装在一起的方法,向待测接口发送接口请求。
一种可能的实现方式中,处理模块520还用于,配置关键字输入规则,其中,关键字输入规则包括下述至少一项:接口间数据传递的输入规则、多数据库校验的输入规则、特定文字或符号的输入规则;相应的,根据关键字输入规则,将请求头和请求信息转换为字典格式。
一种可能的实现方式中,发送模块530具体用于,通过调用post的方法向待测接口发送接口请求,接口请求用于供待测接口向服务器提交第一类型数据,第一类型的数据为长度小于预设值的数据或者字符串类型的数据;通过调用post_files的方法向待测接口发送接口请求,接口请求用于供待测接口向服务器提交第二类型数据,第二类型的数据为长度大于预设值的数据或者文件类型的数据;通过调用get的方法向待测接口发送接口请求,接口请求用于供待测接口从服务器端获取用于在浏览器上展示的资源;通过调用put的方法向待测接口发送接口请求,接口请求用于供待测接口从服务器更新资源;通过调用delete的方法向待测接口发送接口请求,接口请求用于供待测接口请求服务器删除资源。
一种可能的实现方式中,验证模块540具体用于,通过预设的关键字获取响应消息中的字段数;获取响应消息中的每一字段的长度;根据字段数和每一字段的长度将响应消息转换为对象格式。
一种可能的实现方式中,响应消息包括:HTTP状态码和接口的响应码,验证模块540具体还用于,根据HTTP状态码和接口的响应码确定接口请求连接是否成功;若是,则通过存储的期望值利用对象取值的方法对格式转换后的响应消息进行验证,得到验证结果;若否,则确定验证结果为接口请求连接失败。
一种可能的实现方式中,期望值包括转换后的请求头和请求信息,验证模块540具体用于,提取转换后的请求头和请求参数中的关键字,利用对象取值的方法查询格式转换后的响应消息中是否存在关键字,得到验证结果。
本申请实施例还提供一种电子设备的结构示意图,图6为本申请实施例提供的一种电子设备的结构示意图,如图6所示,该电子设备可以包括:存储器601和处理器602;该存储器601存储计算机程序;该处理器602执行该存储器601存储的计算机程序,使得该处理器602执行上述任一实施例所述的方法。
其中,存储器601和处理器602可以通过总线603连接。
本申请实施例提供的接口测试装置的具体实现原理和效果可以参见上述实施例对应的相关描述和效果,此处不做过多赘述。
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序执行指令,计算机执行指令被处理器执行时用于实现如本申请前述任一实施例中的接口测试方法。
本申请实施例还提供一种运行指令的芯片,该芯片用于执行如本申请前述任一实施例中由电子设备所执行的接口测试方法。
本申请实施例还提供一种计算机程序产品,该程序产品包括计算机程序,该计算机程序被处理器执行时可实现如本申请前述任一实施例中由电子设备所执行的接口测试方法。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。上述模块成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本申请各个实施例所述方法的部分步骤。
应理解,上述处理器可以是中央处理单元(central processing unit,CPU),还可以是其它通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合申请所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器可能包含高速随机存取存储器(random access memory,RAM),也可能还包括非不稳定的存储器(non-volatile memory,NVM),例如至少一个磁盘存储器,还可以为U盘、移动硬盘、只读存储器、磁盘或光盘等。
总线可以是工业标准体系结构(industry standard architecture,ISA)总线、外部设备互连(peripheral component interconnect,PCI)总线或扩展工业标准体系结构(extended industry standard architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。
上述存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。
一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于专用集成电路(application specific integrated circuits,ASIC)中。当然,处理器和存储介质也可以作为分立组件存在于电子设备或主控设备中。
以上所述,仅为本申请实施例的具体实施方式,但本申请实施例的保护范围并不局限于此,任何在本申请实施例揭露的技术范围内的变化或替换,都应涵盖在本申请实施例的保护范围之内。因此,本申请实施例的保护范围应以所述权利要求的保护范围为准。

Claims (10)

1.一种接口测试方法,其特征在于,包括:
获取用户输入的请求头和请求信息,所述请求信息包括请求参数和/或请求体;
将所述请求头和请求信息转换为字典格式,并将格式转换后得到的数据赋值给类的私有属性;
根据类的私有属性向待测接口发送接口请求,以使所述待测接口对所述接口请求进行处理后返回响应消息;
将所述响应消息转换为对象格式,并对格式转换后的响应消息进行验证,得到验证结果。
2.根据权利要求1所述的方法,其特征在于,在将格式转换后得到的数据赋值给类的私有属性之前,还包括:
将类的私有属性与类的方法封装在一起;
相应的,根据类的私有属性向待测接口发送接口请求,包括:
通过调用与所述类的私有属性封装在一起的方法,向待测接口发送接口请求。
3.根据权利要求1或2所述的方法,其特征在于,还包括:
配置关键字输入规则,其中,所述关键字输入规则包括下述至少一项:接口间数据传递的输入规则、多数据库校验的输入规则、特定文字或符号的输入规则;
相应的,将所述请求头和请求信息转换为字典格式,包括:
根据所述关键字输入规则,将所述请求头和请求信息转换为字典格式。
4.根据权利要求2所述的方法,其特征在于,通过调用与所述类的私有属性封装在一起的方法,向待测接口发送接口请求,包括下述一项或多项:
通过调用post的方法向待测接口发送接口请求,所述接口请求用于供所述待测接口向服务器提交第一类型数据,所述第一类型的数据为长度小于预设值的数据或者字符串类型的数据;
通过调用post_files的方法向待测接口发送接口请求,所述接口请求用于供所述待测接口向服务器提交第二类型数据,所述第二类型的数据为长度大于预设值的数据或者文件类型的数据;
通过调用get的方法向待测接口发送接口请求,所述接口请求用于供所述待测接口从服务器端获取用于在浏览器上展示的资源;
通过调用put的方法向待测接口发送接口请求,所述接口请求用于供所述待测接口从服务器更新资源;
通过调用delete的方法向待测接口发送接口请求,所述接口请求用于供所述待测接口请求服务器删除资源。
5.根据权利要求1所述的方法,其特征在于,将所述响应消息转换为对象格式,包括:
通过预设的关键字获取所述响应消息中的字段数;
获取所述响应消息中的每一字段的长度;
根据所述字段数和每一字段的长度将所述响应消息转换为对象格式。
6.根据权利要求1所述的方法,其特征在于,所述响应消息包括:HTTP状态码和接口的响应码,对格式转换后的响应消息进行验证,得到验证结果,包括:
根据所述HTTP状态码和所述接口的响应码确定接口请求连接是否成功;
若是,则通过存储的期望值利用对象取值的方法对格式转换后的响应消息进行验证,得到验证结果;
若否,则确定验证结果为接口请求连接失败。
7.根据权利要求6所述的方法,其特征在于,所述期望值包括转换后的请求头和请求信息,则通过存储的期望值利用对象取值的方法对格式转换后的响应消息进行验证,得到验证结果,包括:
提取转换后的请求头和请求信息中的关键字,利用对象取值的方法查询格式转换后的响应消息中是否存在所述关键字,得到验证结果。
8.一种接口测试装置,其特征在于,包括:
获取模块,用于获取用户输入的请求头和请求信息,所述请求信息包括请求参数和/或请求体;
处理模块,用于将所述请求头和请求信息转换为字典格式,并将格式转换后得到的数据赋值给类的私有属性;
发送模块,用于根据类的私有属性向待测接口发送接口请求,以使所述待测接口对所述接口请求进行处理后返回响应消息;
验证模块,用于将所述响应消息转换为对象格式,并对格式转换后的响应消息进行验证,得到验证结果。
9.一种电子设备,其特征在于,包括:处理器,存储器以及计算机程序;其中,所述计算机程序被存储在所述存储器中,并且被配置为由所述处理器执行,所述计算机程序包括用于执行如权利要求1-7任一项所述的接口测试方法的指令。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1-7任一项所述的接口测试方法。
CN202110868495.XA 2021-07-30 2021-07-30 一种接口测试方法及装置 Pending CN113391972A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110868495.XA CN113391972A (zh) 2021-07-30 2021-07-30 一种接口测试方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110868495.XA CN113391972A (zh) 2021-07-30 2021-07-30 一种接口测试方法及装置

Publications (1)

Publication Number Publication Date
CN113391972A true CN113391972A (zh) 2021-09-14

Family

ID=77622283

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110868495.XA Pending CN113391972A (zh) 2021-07-30 2021-07-30 一种接口测试方法及装置

Country Status (1)

Country Link
CN (1) CN113391972A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114302436A (zh) * 2021-12-31 2022-04-08 紫光展锐(重庆)科技有限公司 一种物理层测试方法、装置、芯片及模组设备
CN114942750A (zh) * 2022-05-19 2022-08-26 北京金堤科技有限公司 对外接口的字段处理方法和装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114302436A (zh) * 2021-12-31 2022-04-08 紫光展锐(重庆)科技有限公司 一种物理层测试方法、装置、芯片及模组设备
CN114942750A (zh) * 2022-05-19 2022-08-26 北京金堤科技有限公司 对外接口的字段处理方法和装置

Similar Documents

Publication Publication Date Title
WO2020000706A1 (zh) 基于数据库比对的接口测试方法、系统、设备和存储介质
CN111428462B (zh) 通讯协议模板构建的方法及终端设备
CN108427731B (zh) 页面代码的处理方法、装置、终端设备及介质
CN111782330B (zh) 一种基于Web应用的页面数据获取方法、装置及设备
CN111176996A (zh) 测试用例生成方法、装置、计算机设备及存储介质
US6546524B1 (en) Component-based method and apparatus for structured use of a plurality of software tools
CN110955409B (zh) 在云平台上创建资源的方法和装置
CN113391972A (zh) 一种接口测试方法及装置
CN108460068B (zh) 报表导入导出的方法、装置、存储介质及终端
CN113127108A (zh) 业务请求的处理方法及装置、存储介质以及电子设备
CN113703862A (zh) 基于配置的接口调用方法、装置、设备及存储介质
CN115599359A (zh) 一种代码生成方法、装置、设备及介质
CN111159040A (zh) 一种测试数据生成方法、装置、设备及存储介质
CN110750440A (zh) 数据测试方法及终端设备
CN108776665B (zh) 一种数据处理方法及装置
CN113987337A (zh) 基于组件化动态编排的搜索方法、系统、设备及存储介质
CN111538659B (zh) 业务场景的接口测试方法、系统、电子设备和存储介质
CN116414689A (zh) 一种基于反射机制的接口参数校验方法及系统
CN116048981A (zh) 一种后端接口测试用例设计方法、装置、介质及设备
CN112417020B (zh) 业务扩展的实现方法、装置、计算机设备和存储介质
CN114371982A (zh) 一种模拟测试方法、装置、设备及可读存储介质
CN113536075B (zh) 数据提取方法、装置及存储介质
CN115640236B (zh) 一种脚本质量的检测方法及计算设备
CN112445790B (zh) 一种报表数据存储方法、装置、设备及介质
WO2024078472A1 (zh) 一种调试云服务应用程序接口api的方法、装置以及相关设备

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