首页 > 技术文章 > 接口测试概述

YouJeffrey 2021-09-20 20:10 原文

接口及接口测试概念

接口(interface)的概念:

  接口泛指实体把自己提供给外界的一种抽象化物(可以为另一实体),用以由内部操作分离出外部沟通方法,使其能被修改内部而不影响外界其他实体与其交互的方式。

广义的接口包括人机界面、硬件接口、软件接口

  • 人机界面:人类与电脑等信息机器或人类与程序之间的接口称为用户界面。
  • 硬件接口:电脑等信息机器硬件组件间的接口叫硬件接口。
  • 软件接口:电脑等信息机器软件组件间的接口叫软件接口。

  我们常说的软件接口测试,是指程序之间提供服务的软件接口;软件接口包括对内和对外接口,对外的接口指系统与系统之间的调用;对内接口指系统内部服务与服务之间的调用以及上层服务对下层服务的调用。

常见接口名词:

  HTTP接口、Web Service接口等:基于某种网络协议提供的接口服务

  API接口:应用程序编程接口,不一定通过网络提供编程服务接口

接口测试:

  接口测试是项目测试的一部分,它测试的主要对象是接口,是测试系统组件间接口的一种测试。

  接口测试主要用于检测外部系统与所测系统之间以及内部各系统之间的交互点,模拟实际场景(服务架构、数据场景、业务场景),对接口进行模拟调用,验证其响应性能、输出结果、异常处理等测试点。

  测试的重点是检查数据交互、传递、和控制管理过程以及系统间的相互依赖关系等。

接口测试目的:

  测试与系统相关联的外部接口,测试的重点是检查数据的交互,传递和控制管理过程,提供测试质量和测试覆盖,更好地重现软件缺陷和定位错误。

接口测试的重要性:

  • 相对于UI测试,接口测试执行速度更快
  • 相对于UI测试,能更早的发现问题,将BUG控制在项目前期阶段
  • 相对于UI测试,粒度更细,更能发现底层问题
  • 相对于UI测试,发现和解决问题的效费比更高

 

 

 

接口测试流程:

接口测试流程如下:

1)开发人员设计接口形成文档(大部分公司使用wiki文档),文档内容中包含接口请求地址、接口参数个数与类型、接口的用途

2)测试人员获取和熟悉接口文档:业务需求,接口的参数类型、个数

3)设计接口测试方案以及用例

4)使用工具录入接口测试用例并执行,提交和跟踪接口测试发现的bug

5)编写接口测试报告

注意:接口测试的流程尽量标准化;接口测试前移,尽早发现问题,一般接口测试在开发联调阶段可以开始

接口测试相关工具介绍

Fiddler:
  Fiddler 是一款 C# 实现的浏览器抓包和调试工具,fiddler 启用后作为一个 proxy 存在于浏览器和服务器之间,从中监测浏览器与服务器之间的http/https级别的网络交互。

Charles:

  Charles通过它可以帮助用户方便地进行抓包,可以轻松记录浏览器和Internet之间的所有流量,是非常专业并基于java开发的网络http抓包工具。

Wireshark:

   Wireshark一款可以使用在 Unix 和 Windows 上的开源网络协议分析器。它可以实时检测网络通讯数据,也可以检测其抓取的网络通讯数据快照文件。可以通过图形界面浏览这些数据,可以查看网络通讯数据包中每一层的详细内容。

Postman:

  Postman 是一款谷歌开发的支持 http/https 协议的接口调试&测试工具。

Jmeter:

  Jmeter是Apache组织开发的基于Java的压力测试工具,用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。

Soapui:

  Soapui是一个开源测试工具,通过 soap/http 来检查、调用、实现Web Service的功能/负载/符合性测试。该工具既可作为一个单独的测试软件使用,也可利用插件集成到Eclipse,maven2.X,Netbeans 和intellij中使用。

Loadrunner:

  Loadrunner 是HP推出的一种预测系统行为和性能的负载测试工具,通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,分为Windows 版本和Unix 版本。

Httpclient:
  HttpClient 是Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持HTTP 协议的客户端编程工具包,并且它支持HTTP 协议最新的版本和建议。

Requests:
  Requests 是Python语言编写,基于urllib3,采用Apache2 Licensed开源协议的HTTP库。它比urllib更加方便,可以节约我们大量的工作,完全满足HTTP测试需求。是Python实现的简单易用的HTTP库。

Httprunner:
  Httprunner是一款面向HTTP(S) 协议的通用测试框架,只需编写维护一份YAML/JSON脚本,即可实现自动化测试、性能测试、线上监控、持续集成等多种测试需求。

 

 

 

 

 

推荐阅读