1.接口分为软件接口、硬件接口、用户接口
API:客户端和服务器之间应用程序编程接口。
网络接口:网络中两个设备或协议层之间的接口
硬件接口:网卡网线
软件接口:协议(IPTCPUDPhttp协议)
用户界面:人与机器之间GUI
2.接口与API的关系
API是软件系统不同组成部分衔接的约定。
API是接口的一种。
3.API的分类:
webserviceAPIweb服务API
SOAP:对象访问协议,xml协议
XML-RPC:远程过程调用,通过XML将调用过程封装,并作为http协议作为传送机制。
JSON-RPC:轻量级的远程过程调用。通过JSON传送数据
REST:
4.WebSocket:
是H5提供的一种在单个TCP连接上进行全双工通信的协议。(通信机制:全双工(打电话)、半双工)
javascriptAPI
面向对象API:
javaAPI
AndroidAPI
5.接口测试:
接口测试的重点是检查数据的交换,传递的正确性。包括测试接口参数的检查,接口的参数传入,接口返回值是否正确,
客户端------------------------服务器参数校验
-------request(参数)----------------->验证是否超时
<--------response(参数)---------------
返回结果的检查
重点关注:
a.参数校验
b.业务逻辑处理:逻辑路径、数据结构、错误处理方式
c.响应结果同步、异步(轮询类似于发短信)、回调
6.接口测试类型:
单接口测试:加入购物车,删除购物车商品
接口组合测试(场景测试):购物流程(搜索商品、加入购物车、下单、支付)
接口组合测试实现应用层功能的例子:
注册一个账号:
a.查询该账号是否注册调用接口isReg()
b.验证注册信息verfied()
c.保存注册信息save()
7.接口测试类型:
站在使用者角度:
a.内部接口
(离用户最近的接口要重点测试比如说子系统)子系统---模块---单元
b.外部接口(重点测试)
硬件:操作系统第三方软件,支付、第三方登录
接口测试的本质:黑盒+白盒(灰盒测试)
8.接口测试的重要意义:
a.更早的发现问题
敏捷测试:快速迭代周期短2-4周
自动化接口、单元、GUI
探索性测试比如维修发动机的师傅知道发动机那一块坏了,会针对性的进行测试
b.缩短产品周期
c.发现更底层的问题
发现隐藏的bug
图片验证码(验证)
agentid用户身份(获取图片验证码时返回的)
pvcStr图片验证码字符串
d.行业成熟的解决方案:HTTPRunner针对HTTP接口的自动化框架
9.接口测试必备技能:
a.掌握网络基础知识与网络分层模型
b.掌握重要的网络协议。比如TCP/UDP协议、http/https协议、了解RPC、Webservice、
网络层:IP协议、路由
传输层:TCP(面向连接)/UDP(面向无连接)TCP有一些流量控制机制要去保证,效率比UDP低
TCP:保证数据可靠性
UDP:保证性能
应用层:HTTP、HTPPS、FTP、RPC
SOAP\REST
c.掌握开发的基础知识(web架构)理解SessioncookieToken
d.掌握的接口测试工具:Jmeter、LR、CURL命令测试HTTPHTTPS
e掌握协议分析工具:TCPdump(linux上可以使用,是一个命令行工具)、Chrome.devtools(http协议)、fiddler(更改请求)、WireShark(应用层、传输层、网络层都可以抓包)
f.掌握一门编程语言python、Groovy
g.了解Nginx、Tomcat、Apache等服务器中间件
h.掌握关系型数据库(mysql)以及非关系型数据库(Nosql),检查响应结果
i.掌握linux基本命令
j.掌握常见的数据格式(json、xml)数据编码(ASCIIutf8GBK)
k.掌握常见的加密解密基础知识对称加密、非对称加密、单向散列
l.掌握黑盒白盒用例设计方法:黑盒(错误猜测法、边界值、等价类、流程分析法)白盒(基本路径)
m.掌握常见的文本处理工具:JSONPATH、JSONJMETHPATH、XPATH、CSSselector
n.掌握缓存的基本知识
10.接口测试难点:
a.带安全认证的接口测试
b.加密签名的接口测试
c.数据格式与字符集处理
d.复杂数据格式解析
e.mock技术
f.异步接口测试
g.接口安全性测试
h.接口框架
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理