Web API接口测试和 我们熟悉的UI测试有什么区别吗?
其实 没有什么本质的区别, 大的不同就是输入构建,输出检查的方式有些差异。
UI测试, 测试人员可以直接对产品进行测试,比如,直接手工操作浏览器 或者手机app 对产品进行测试。
而API接口测试,通常需要使用测试工具, 对产品 发送 HTTP消息,检查输出,进行测试。
那么接口测试的测试工具哪里来呢?
可以使用第三方工具
现在市场上有很多支持web服务接口(主要是REST接口)测试的工具。
有的都是带图形界面的,比如postman、soapui, restclient
这些工具,核心功能都是类似的:
都是构建HTTP请求消息,并且解析收到的HTTP响应消息, 判断是否符合预期
大家可以根据自己的需求,选择使用。
一般学会了一种,其它的核心功能基本类似。无非就是如何构建http请求,查看HTTP响应消息
也可以自己开发工具
因为Web API测试本质上就是构造发送http请求,检查 HTTP响应消息,
所以我们完全可以利用编程语言(比如Python语言)和一些库,构造HTTP请求消息,并且获取解析收到的HTTP响应消息。
检查结果。
自己开发工具的好处是:
可以 postman,做手工测试
更加适用于完全的自动化,并且和自动化框架结合起来使用。
我们一定要做web API的测试吗?
移动互联网非常火热,目前做这些产品的公司动不动就说要做接口测试。
面试的时候,也会经常问到。
可能大家会说,那肯定要做啊。
很多产品的服务端提供的 API 接口,并不是直接暴露给用户的。这是产品内部的接口。
对这些内部接口的测试,主要应该由开发自己去完成。
而测试人员的通常做的测试, 称之为系统测试,是以用户的角度进行的测试, 应该测试的是外部接口, 比如暴露给用户的操作接口, 也就是测试用户操作。
什么样的接口,需要测试人员直接测试呢?那就是直接暴露给外部的接口。
所谓暴露出来,就是提供给 客户的产品,别的厂商的产品,别的部门的产品
总之,是给其他系统使用的,那就我们测试部门就应该进行测试
举个例子,比如阿里云的OSS API
https://help.aliyun.com/document_detail/31948.html?spm=a2c4g.11186623.6.862.aKd0qZ
注意:对阿里云OSS系统,这个产品来说,这个接口是给外部使用的, 就是 第三方系统的程序员使用的, 不是内部接口。
所以这样的接口一定需要测试人员测试。
但是如果有些API接口压根就是 前端APP和后端服务的 一个产品的内部接口,
这些接口,甚至都没有写在给测试人员的需求文档中。
测试人员去做完全的测试, 不是必要的。即使你测试了, 发现了问题, 开发往往也不会承认。
比如: 登录接口,规定的用户名长度是 6-10 . 你跳过前端,直接对服务端进行接口测试,你输入一个长度为1的用户名, 结果也成功了。
你提交了一个bug,结果 开发人员打回了bug,为什么?
因为产品的前端就会做这个校验, 我们测试人员做的测试, 被测系统是一个整体, 客户通常不会直接发送 请求给服务端的,所以我们绕过前端,直接对 服务端测试,往往不会被开发人员认同。
对于内部接口,在测试有余力的情况下,通常只需要做一些安全性测试,比如查看接口中的漏洞之类的。
申请免费试听
只要一个电话
我们为您免费回电