1 接口测试的各种概念

A.接口:外部系统与本系统之间及系统内部的各个子系统之间,以约定标准提供的服务。

B.接口测试:测试系统组件间接口的一种测试,功能测试的一部分。接口测试是测试系统组件间的交付,以验证接口间数据传递的正确性与性能是否符合用户需求的测试过程。example:接口和计算机的USB接口一样。

  1.1 作用:主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点. 

  1.2 重点:检查数据的交换,传递和控制管理过程,以及系统间的相关逻辑依赖关系等. 

C.接口测试的对象:web接口,主要包括HTTP接口、Web Service接口、RPC接口等。

  • HTTP接口

    HTTP:(Hyper Text Transfer Protocol,超文本传输协议),一种基于请求与响应模式的、无状态的应用层协议,使用基于TCP的连接方式。

    HTTP请求方式主要有GET、POST、HEAD、PUT、DELETE、OPTION、TRACE、CONNECT.

  • RPC:(Remote Precedure Call,远程过程调用)

    RPC:一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。采用客户机/服务器模式,请求程序就是一个客户机,而服务提供程序就是一个服务器。

D.接口测试的本质

  接口测试本质:发送一个Request报文给服务器,然后服务器响应返回一个Response报文。对Response报文进行分析,判断其是否和发送给服务器的Request对应的响应值相同,从而验证业务是否正确实现。

E.接口测试的分类

  1)根据概念方式的不同,可分为2类:程序接口和协议接口

程序接口:程序模块接口,具体到程序中一般就是提供了输入输出的类、方法或函数。对于程序接口的测试,一般需要使用与开发程序接口相同的编程语言,通过对类、方法、函数的调用,验证其返回接口是否正确来进行测试。

协议接口:系统通过不同的协议提供的接口,例如使用HTTP/SOAP协议等。

  2)根据调用方式的不同,可分为3类:系统与系统之间的接口;下层服务对上层服务的接口;系统内部、服务与服务之间的调用。

2 为什么做接口测试 &&怎么做接口测试

为什么做接口测试:

  • 系统复杂程度上升,传统测试方法、测试成本增加,效率降低
  • 站在用户的角度对系统接口进行全面高效持续的检测
  • 接口测试是自动化并且持续集成
  • 通过接口测试判断模块的正确性(集成测试阶段)
  • 去除UI的干扰,直接测试逻辑(数据)
  • 接口测试难度低于UI测试(手工测试)
  • 接口测试速度快过UI测试

怎么做接口测试:

  目前基于HTTP协议的接口,主要通过工具或代码模拟http请求的发送和接收

3 接口测试的适用范围

  3.1 接口测试一般应用于多系统间的交互开发、拥有多个子系统的应用系统开发的测试

  3.2 为其他系统提供服务的底层框架系统和中心服务系统,主要测试外部提供的接口,验证其正确性和稳定性

4 接口测试的目的

  4.1 战略方针:保证系统的正确和稳定为核心,以持续集成为手段,提高测试效率,提升用户体验,降低产品研发成本

  4.2 接口测试需要几类资源支撑   

    a.团队的重要性:全才、专才、技术专家、业务专家、高效的执行者、有效的管理者

    b.强大的测试技术以及测试框架

    c.文档的重要性:需求文档、开发技术文档、测试技术文档、接口定义、测试用例文档

  4.3 发展阶段和目标

    a.摸索阶段:尝试不同的技术、框架和流程规范

    b.稳定提高阶段:总结最佳实践,选择技术、流程、规范

    c.扩大影响,组织共赢:分享、编写工具

5 接口请求流程

  5.1 人员能力定位 

  a.熟悉软件测试流程,测试理论和测试方法,能根据测试需求,制定测试计划和设计测试用例

  b.了解软件工程理论知识和开发流程,有一定的编程能力,根据测试用例,准备测试数据以及编写和执行测试脚本,并对软件bug进行跟踪分析和报告

  c.掌握各种技能,并能够运用这些技能搭建接口测试框架

  d.思维活跃,善于发现问题,有较强的逻辑分析能力和学习能力

  e.具备良好的表达和沟通能力

  f.工作认真细致,踏实肯干,责任心强

5.2 职责定义

  a.客户是调用接口的人,不是开发接口的人

  b.对业务的理解要达到开发人员的水平

  c.掌握软件测试的理论知识

  d.要能够独立设计和开发测试,有定位问题的能力

  e.要能搭建系统的测试框架

  f.有权利在质量不达到要求的情况下阻止产品(项目)的发布

5.3 接口测试的流程

 

常规的接口测试流程步骤: 需求分析和设计评审、测试框架和技术选型、测试计划制定、测试环境搭建、测试用例设计和评审、测试实现和执行、持续集成。

实战-接口测试流程:

  1. 获取接口信息:通过接口文档和抓包来获取接口的基本调用方式和返回。
  2. 接口测试用例设计:根据获取到的接口信息,按照接口测试用例设计方法,设计参数和预期返回给结果。
  3. 接口发包:使用工具或编程向接口传递参数。
  4. 返回信息验证:获取接口返回的结果,进行解析和验证。

5.3 接口测试的接口收发包过程

 1.接口请求过程

 

  2.接口响应过程

5.4 质量评估标准

   质量评估标准:业务功能覆盖是否完整、业务规则覆盖是否完整 、参数验证是否达到要求(边界、业务规则)、接口异常场景覆盖是否完整、接口覆盖是否达到要求、代码覆盖是否达到要求、性能指标是否满足要求、安全指标是否满足要去。

接口测试流程精简版、beta版如图:

 

6 接口测试用例设计

接口测试用例设计,最重要的是拿到接口测试需求文档,根据四要素(请求方法、请求url、请求头、请求内容)去进行用例设计。

 

7 HTTP请求方法 

  • GET:请求指定的页面,并返回实体主题
  • POST:向指定资源提交数据处理请求(如提交表单或者上传文件),数据包含在请求体中,POST请求可能会导致新的资源的建立和已有资源的修改
  • HEAD:类似于GET请求,只不过返回的响应中没有具体的内容,用于获取报头
  • PUT:用从客户端向服务器传达的数据取代指定文档的内容
  • DELETE:请求服务器删除指定的页面
  • CONNECT:预留字段
  • OPTIONS:允许客户端查看服务器的性能
  • TRACE:回显服务器收到的请求,主要用于测试或诊断 

7.1 GET方法

  1. GET方法提交数据不安全,直接暴露在浏览器地址栏。
  2. GET方法URL长度每个浏览器长度限制不同,最后在2000字符以内
  3. GET方法速度快,默认请求,不需要提交大量数据、无敏感、保密数据时使用
  4. 可能会被缓存,请求可能会被保留在浏览器历史记录中。

7.2 POST方法

  1. post方法提交数据安全,数据置于消息主体内,浏览器不可见。
  2. post方法提交的数据大小无限制。
  3. post方法速度慢,需要添加大量数据、有敏感、保密数据时使用。
  4. 不会被缓存,请求不会保留在浏览器历史记录汇总。

 8 HTTP请求和响应

1.构造HTTP请求报文

必须要有的4个参数:请求方法、请求url、请求头、请求内容。

通过google浏览器中按下F12打开开发者工具,切换到network菜单,对浏览器中的动作进行抓包。

请求部分:在接口测试中,接口请求信息中,重点需要关注的4个参数:请求url、请求方法、请求头、请求参数。

 

2.构造HTTP响应报文

获取响应返回信息,接口的响应包中,测试关注的重点在于响应的正文主题,同时可能对响应头和状态码进行校验。

三要素:状态码、响应头、响应正文。

版权声明:本文为wendyw原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/wendyw/p/11799354.html