小酋测试:接口测试入门

什么是接口?

接口,用于沟通的中介物之抽象化。(维基百科)

软件接口 就是指程序中具体负责在不同模块之间传输或接受数据的并做处理的类或者函数。

网络数据传输都会遵循一定的网络协议,而HTTP协议在应用软件最为普遍,所以通常我们主要对HTTP(S)接口进行测试。(在继续了解接口测试之前,可以度娘下HTTP协议知识)

HTTP,全称为 HyperText Transfer Protocol,即超文本传输协议。是互联网应用最为广泛的一种网络协议,所有的 www 文件都必须遵守这个标准。HTTP 可以分为两个部分,即请求和响应。HTTP 定义了在与服务器交互的不同方式,最常用的方法有 4 种,分别是 GET,POST,PUT, DELETE。一个 URL 地址,对应着一个网络上的资源,而 HTTP 中的 GET,POST,PUT,DELETE 就对应着对这个资源的查询,修改,增添,删除4个操作。HTTPS,以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性。(https://www.zhihu.com/tardis/sogou/art/24913080)

http(s)接口:通过HTTP(S)协议,根据约定的格式、内容,在不同模块之间传输或接受数据的并做处理的类或者函数。

百度天气查询接口:

小酋测试:接口测试入门

这是一个典型基于HTTPS协议的GET接口请求,其中 city=XXX 是传入参数值。

接口测试,测什么?

可用性

根据约定的协议、方法、格式内容,传输数据到接口经处理后返回期望的结果
1)接口功能是否正确实现;
2)返回值测试 - 返回值除了内容要正确,类型也要正确,保证调用方能够正确地解析;
3)参数值边界值、等价类测试;

健壮性

即错误和异常处理
1)输入异常值(空值、特殊字符、超过约定长度等),接口能正确处理,且按预期响应;
2)输入错误的参数,接口能正确处理,并按预期响应;
3)多输入、少输入参数,接口能正确处理,且按预期响应;
4)错误传输数据格式(如json格式写成form格式)测试;
(总之,不能直接抛出异常调试代码、代码实现细节信息等;通常返回事先约定的错误码)

安全性

主要指传输数据的安全性
1)敏感数据(如密码、秘钥)等是否加密传输;
2)返回数据是否含有敏感数据,如用户密码、完整的用户银行账号信息等;
3)接口是否对传入的数据做安全校验,如身份ID加token类似校验;
4)接口是否防止恶意请求(如大量伪造请求接口致使服务器崩溃);

性能

如接口的响应时间、并发处理能力、压测处理情况
1)并发请求相同的接口(特别为POST请求),接口的处理情况(如插入了相同的记录导致数据出错,引发系统故障);(建议涉及数据插入都应该做此测试,往往开发员写接口时没考虑并发性)
2)接口响应时长在用户可忍受的范围内;
3)对于请求量大的接口做压测,确定最大的瓶颈点是否满足当前业务需要;

怎么测?

通常照开发提供的接口说明文档进行。(用于管理接口的常用工具包括swagger、CrapApi等)
如果开发都懒得提供接口文档,最好的办法就是用抓包工具把接口抓取处理,然后针对性进行测试;接口中字段信息不清楚的,找时间集中寻求开发解答。(常用抓包工具Fiddler、Charles等)

常用测试工具Postman、Fiddler

Postman简介

Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件。

小酋测试:接口测试入门
 
具体使用,见部落文章《接口测试工具Postman的安装及使用详解》一文

Fiddler简介(强推工具)

Fiddler是位于客户端和服务器端的HTTP代理,也是目前最常用的http抓包工具之一 。 它能够记录客户端和服务器之间的所有 HTTP请求,可以针对特定的HTTP请求,分析请求数据、设置断点、调试web应用、修改请求的数据,甚至可以修改服务器返回的数据。
 小酋测试:接口测试入门
具体使用,见部落专题文章《Fiddler学习教程 - 从入门到精通》

关于接口测试自动化

现在针对大量应用,普遍推崇做接口测试自动化,维护成本低、收益高。常用的工具有许多,如Jmeter、Robot Framwork、pytest等。
关于接口测试自动化,小酋在部落网站中零零散散分享了一些,后面将做成测试专题系统分享给各位测友。希望大家持续关注噢^_^ (更多精彩内容,欢迎关注部落公众号 51ste软件测试部落



留言