一篇文章明白接口测试,get起来
Posted 软件测试大师
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一篇文章明白接口测试,get起来相关的知识,希望对你有一定的参考价值。
01
什么是接口测试
我们通常说的接口测试(或者API接口测试),其实就是对软件系统消息交互接口的测试。
消息交互接口是软件系统和其他软件系统交互的那部分。
比如,你手机上使用美团订餐,美团APP和 美团服务器之间,也是消息交互的。
当你提交订单,使用微信支付的时候, 美团服务器 和 微信服务器 之间也是通过 消息交互的。
接口测试就是
依据接口规范,写出测试用例;
使用软件工具,直接通过消息接口 对 被测系统 进行消息收发;
验证被测系统行为是否正确。
接口测试,通常是对服务端做的比较多,但是也有对客户端做的。关键是看 被测系统是 服务端还是客户端。
目前的软件系统之间的消息接口 大部分是 基于 HTTP 协议收发的。
HTTP协议的特点是,客户端发出一个HTTP请求给 服务端,服务端就返回一个HTTP响应。好像程序的API调用。
所以 接口测试 通常又被称之为 API接口测试 或者 WEB API接口测试。
API接口 传递数据信息 是通过HTTP协议进行收发的,网站获取网页、图片、css等资源,也是通过HTTP协议进行收发的 。
那么这两者有什么区别呢?为什么 获取网页、图片这些 HTTP消息 通常不叫 API 接口消息呢?
网页、图片、css 这些资源,都是静态资源, 就是一个个文件存储在服务器上的,获取这些信息,服务端直接读取文件,返回给客户端即可,无需特别的数据处理。
而 API接口请求消息,通常都需要 服务端程序进行 一番处理,比如:对请求的权限检查,从数据库中读出数据,进行信息过滤和 格式转换,最后在HTTP响应中返回给客户端。
接口测试需要工具和被测系统之间进行消息(通常是HTTP消息)的收发,这个工具可以是别人开发好的,也可以自己开发。
基于HTTP的接口测试工具,常见的有 Postman、Jmeter等。
这些工具,核心功能都是类似的:
都是用来 构建HTTP请求消息,并且解析收到的HTTP响应消息, 用户来判断是否符合预期。
熟悉 Python 语言的朋友, 也完全可以使用 requests 库,自己写代码发送接收HTTP请求,进行测试。
还有一个问题:测试工程师测试系统,一定要做接口测试吗?
这些工具,核心功能都是类似的:
都是用来构建HTTP请求消息,并且解析收到的HTTP响应消息, 用户来判断是否符合预期。
熟悉 Python 语言的朋友,也完全可以使用 requests 库,自己写代码发送接收HTTP请求,进行测试。
还有一个问题:测试工程师测试系统,一定要做接口测试吗?
这个要看你们系统被测的接口是内部接口还是外部接口。
内部接口是产品(也就是被测系统)内部子系统之间的接口。
内部接口通常并不需要测试部门的工程师进行测试,而是由开发人员自己进行测试的。当然也偶尔有特殊情况,项目组指定就由测试部门帮助 开发人员进行测试。
而产品(也就是被测系统)的外部接口,是 和另外的系统交互的接口。所谓 另外的系统 通常是由其他公司开发的,这样的接口测试工程师一定要进行测试.
比如 阿里云服务提供的 API 接口,微信支付系统提供的支付API接口,作为阿里云或者微信支付的测试工程师,就当然要对其进行测试了。
接口测试工作
根据前面的讲述,总结一下,接口测试工作,主要包括:
获取接口文档,评审文档,了解接口的实现细节;
根据接口文档,写出测试用例;
等产品发布后,根据测试用例,使用软件工具,直接通过消息接口 对 被测系统 进行消息收发,验证被测系统行为是否正确。
评审接口文档
通过接口进行测试和通过用户界面进行测试一样,都需要有测试用例。
测试用例的依据就是需求设计文档,接口测试用例当然也需要接口的需求设计文档,通常称之为接口文档。
接口文档通常是由开发人员提供,测试人员 根据接口文档编写接口测试用例。
接口文档里面应该包括我们要测试的系统接口的具体信息。
接口文档是人写的,当然就会有错误、遗漏,甚至有自相矛盾的地方。
文档也可能有写的不清楚,难以理解,测试人员看不懂的地方。
所以在写测试用例之前,必须要先对接口文档进行评审,找出里面的问题,和 文档作者进行沟通 ,确保接口文档 基本正确、完善,然后才能动手写测试用例。
历史文章:
以上是关于一篇文章明白接口测试,get起来的主要内容,如果未能解决你的问题,请参考以下文章