接口自动化测试
接口测试的基础知识
1.接口测试的必要性
目前软件系统复杂度不断上升,传统功能测试的片面性及滞后性导致测试成本急剧增加,且测试效率大幅度下降,仅靠功能测试已难以保证项目质量及进度。
而接口测试的应用,恰好能使测试团队更好、更深的介入项目,这样测试人员在项目初期就能发现系统深层次的问题。降低问题修复的时间成本。同时,由于接口的变更概率远远小鱼用户界面(user Interface UI)的变更概率,因此接口测试自动化维护成本比UI自动化维护成本更低,接口测试相对更容易实现自动化测试持续集成,且可以减少回归测试的人力与时间成本,缩点测试周期,满足后端快速发布版本的需求。持续集成是接口测试低成本,高收益的根源,是接口测试的灵魂。
2.接口测试的原理
测试人员借助工具模拟客户端向服务器短发送请求报文,服务器端接收请求报文后,对相应的报文做出处理并向客户端返回应答,工具模拟客户端接收应答,然后测试人员检查应答是否正确,这就是接口测试的原理。
3.接口测试的范围
1)是否所有接口都需要测试?
通常情况下,主要测试最外层的两类接口:数据进入系统的接口(调用外部系统的参数为本系统使用)和数据流出系统的接口(验证系统处理后的数据是否正常)
2)被测接口需要测试哪些方面?
需要关注被测接口的功能是否实现、性能是否达标、安全性是否满足,重点关注数据的交换、传递、处理次数以及控制管理过程。
4.接口的分类
1)HTTP接口。它是基于超文本传输协议(Hyper test Transfer protocol HTTP)开发的接口,但并不能排除没有使用其他协议
2)Web Service接口。它是系统对外的接口,比如你要从别的网站或服务器上获取资源,一般来说,别人不会把数据库共享给你,他们 会提供一个写好的方法,让你用来获取数据,你使用他们写好的方法就能引用他们提供的接口,从而达到同步数据的目的。
3)RESTful接口,简称为REST,其描述了一个架构样式的网络系统,核心是面向资源。REST专门针对网络应用设计和开发方法,降低开发的复杂性,提高系统的可伸缩行。
基于浏览器/服务器模式(B/S)的软件系统接口大多数为HTTP接口,本章着重介绍HTTP接口测试
4.HTTP请求
HTTP定义了与服务器交互的不同方法,基本方法有4中,分别是get、post、put、delete。可以这样理解:URL地址用于描述一个网络上的资源,而HTTP中的get,post,put和delete方法对应着这个资源的“查” “改” “增” “删”操作,即get一般用于获取、查询资源信息,而post一般用于更新资源信息等。当然除了以上4种方法,HTTP请求还包括patch、copy、head等等方法,只不过进行接口测试时,用到的机会非常小,所以感兴趣的可以自行查资料。
5.Header和Boby
HTTP报文是面向文本的,报文中的每一个字段都是ASCII码串,各个字段的长度是不确定的。HTTP请求报文由请求行、头、空行和请求数据4个部分盛,请求报文的一般格式如下。
6.接口测试流程
1)编写接口测试计划
接口测试计划和功能测试计划目标一致,都是为了确认需求、确定测试环境及测试方法,为设计测试用例做准备,初步制定接口测试进度方案。一般来说,接口测试计划包含概述、测试资源、测试功能及重点、测试策略、测试风险、测试标准。
2)编写、评审接口测试用例
和功能测试类似,在开始接口测试前,需要根据需求文档、接口文档等项目相关文档编写并评审接口测试用例。
3)执行接口测试
依据编写的接口测试用例,借助测试工具(如postman、JMeter、SoapUI等)执行接口测试,上报发现的问题。
4)接口自动化测试持续集成要点
进行项目测试时,接口会增减少或变更,测试用例也会相应更新,因此需要借助工具(GitHub等)来维护测试用例进行持续集成,通过 自动化测试实时监控项目接口运行情况。
7.接口文档系统
1)ShowDoc
1)接口名称
2)简要描述
3)请求的URL
4)请求方法(GET/POST)
5)请求参数(参数名、是否必选、参数类型、说明)
6)返回示例
7)返回参数说明(参数名、类型、说明)
8)备注及责任人