WebAPI接口测试
2020-05-01 00:52:00 0 举报
AI智能生成
WebAPI接口测试思维导图
作者其他创作
大纲/内容
API接口
什么是接口?
通过API接口实现计算机软件之间的相互通信
为什么要做接口测试??
不通过前端UI界面或者UI界面还没有设计出来
需要对功能做测试,这也是测试工程师尽早介入测试的一个点
业务的逻辑,数据的资源,安全,需要通过接口去进行测试
接口测试的流程
需求评审-接口评审
需求分析-接口分析
接口用例设计
执行测试用例
Bug的定位与追踪
专项测试报告
接口分类
对象分类
内部接口-集成测试,灰盒,一般开发去做
外部接口-联调测试,方案,联调测试通过准则
协议分类
webService接口-soap协议
http api接口-http协议
接口文档
接口名称-功能描述
接口地址URL
支持的格式(xml/json)-请求数据格式
请求方式-get/post
请求参数-参数名称,类型,是否必填,参数说明请求头等;测试用例设计
返回参数-返回码,返回值信息,返回json或者xml信息;-预期结果
接口测试
excel表存储接口测试用例
postman进行接口测试
接口响应值
系统对应的功能数据
数据库的数据验证
接口测试要点
了解接口的功能、提交的方式(get/post),接口的URL、接口参数(那些是必填/选填参数)
明确接口正常请求,正常情况接口会返回那响应参数
通过性验证
首先肯定要保证接口功能是通的,也就是正常的通过性测试,按照接口文档上的参数,正常传参传参数值,是否可以返回正确的结果
检查接口的容错性,假如传递数据的类型错误时是否可以处理。例如支持整数,传递的是小数或字符串呢?
接口参数的边界值。例如,传递的参数足够大或为负数时,接口是否可以正常处理
接口的性能,接口处理数据的时间也是测试的一个测试方向
接口的安全性,如果是外部接口的话,这点尤为重要
接口测试用例
正常场景
功能是否按照接口文档要求的功能实现
异常场景
参数为空
参数多填
参数少填
参数类型错误
参数数值范围错误
异常场景下是否有正确的处理逻辑和响应提示
必填参数
对于必填参数要设计传参数和不传参数,接口的返回情况
必填参数传参数:
必填参数都正确
必填参数类型错误(非法、特殊字符)
必填参数数值范围错误(超过边界)
必填参数不传参数
必填参数全部为空
必填参数部分为空
选填参数
一般接口对于非必填参数都不会做非正常性传值的判断,所以只要测试接口返回的内容是否正确即可
如果有接口文档说明对非必填参数做了非正常的验证的话,也要对其进行验证
覆盖所有参数,正向用例
覆盖所有必填参数,正向用例
某一必填参数为空,逆向用例
必填参数基础上,少传一个参数
多传一个参数,逆向用例
必填参数数据类型错误,数据值错误,逆向用例(例如整型变字符串)
与业务逻辑相关的,用户身份认证为空或者错误,逆向用例
字段的唯一性校验,如插入数据字段不能重复,发送两次请求,查看第二次返回结果
JSON
什么是json?
存储和交换文本信息的语法
更快,更小,易解析
json格式
{\"key\
Postman工具的使用
创建 Collection
Add Folder
Add Request
常用变量
局部变量Variables
对于单个请求
比较少用
数据变量
txt/csv文件存储数据
参数化,批量执行接口测试
环境变量Environment
一般用于测试环境的区分
正式环境,预发布环境
集合变量Collection
针对于集合
集合下edit--Varibles设置集合变量
全局变量Golable
针对所有请求,所有的集合
变量的优先级及格式
引用格式:{{变量名}}
局部变量--数据变量--环境变量--集合变量--全局变量
token的传参
获取token及传参
常用变量的脚本
备注详情
常用断言脚本
postman导出报告
本地导出
执行集合-->run-->expot result
newman run 命令导出
安装Node.js
node -v 命令显示版本即可
安装newman
安装命令npm install newman -global
newman -v 显示版本即可
安装html报告格式库
安装命令:npm install -g newman-reporter-html
执行命令
WebAPI接口测试
http协议
http协议原理
超文本传输协议,服务器传输文本到本地浏览器的传送协议
基于TCP/IP通信协议传输的
网络层模型
OSI 七层模型
物理层
数据链路层
网络层
传输层
会话层
表示层
应用层
TCP/IP 四层模型
网络接口层
网络层 IP协议
传输层 TCP/UDP协议
应用层 http、smtp、telnet协议
http协议特点
无连接、无状态、简单快点灵活
http与https的区别
https
有证书,密文传输,443端口,有身份证验证,完整性检验
http
无证书,明文传输,80端口,无身份证校验,无完整性校验
http请求报文
请求行--包含请求方法,请求路径,请求协议/版本组成
空行
请求正文
http响应报文
状态行--包含协议/协议版本,状态码,状态描述符
响应头
响应内容
请求方法
GET
向指定资源发出请求
大小有限制,2千字符以内,提交的数据直接显示URL中,提交数据不安全
POST
向指定资源提交请求数据,如提交表单,上传文件
提交的数据没有限制,数据在请求体中,数据安全,速度慢
PUT
向指定资源位置上上传其新内容上传文件
DELETE
请求服务器删除Request-URL所标识的资源
PATCH
更新部分资源
响应状态码
200--客户端请求成功
301--永久性重定向
302--临时重定向
403--服务器收到请求,拒绝访问
404--请求的资源不存在
500--服务器发生不可预期的错误
SSL通信过程
SSL安全套接层;基于对称密钥与非对称密钥传递数据。
浏览器访问https网站,要求与web服务器建立SSL连接
服务器根据客户端发的请求信息确定是否重新生成新的主密钥,若需要服务器响应给客户的信息将包含生成密钥所需信息;
客户根据收到服务器响应信息,产生一个主密钥,并用服务器的公开密钥加密后传给服务器
服务器回复该主密钥,并返回给客户一个用主密钥认证的信息,以此让客户认证服务器。
Fiddler工具使用
Fiddler抓包工作原理
浏览器发送请求会先发送到fiddler,fiddler再发送到服务器
服务器的响应也是先发送到fiddler,fiddler再发送到浏览器
Rules--Automatic Breakpotins
请求前断点Before Request
步骤
暂停抓包,进入响应的界面输入数据
回到页面进行数据提交
点击break on response -->run to completion 继续执行
使用场景
假设前台页面限制某个输入框只能输入20个字符,
需要测试接口该输入框长度超过20个字符接口是怎么处理的?
请求后断点After Response
设置请求后断点,span style=\"font-size: inherit;\
修改响应内容
run to completion 继续执行
查看页面数据
假设你测试某个UI功能,其中某个字段的长度最大值为100,但是你的请求获取到的内容都很小
无法看到字段长度很长时界面的展示情况。那么,你可以修改响应报文,把返回的内容自行修改
AutoResponder自动响应
抓包请求
选择请求右击save-->response-->save response body
修改保存数据
启用aoturesponseder
把刚才的请求add rule->添加刚才修改的json文件-->save
刷新页面
前端工程师设计好界面后,想调试一下页面效果。但是后端工程师接口功能还未完成,无法调用。
此时,前端工程师可以把某些请求设置为自动应答,响应返回本地测试数据。
Composer模拟器使用
开启抓包,发送请求(该请求要有参数)
拖动请求到compser中.绿色状态松开即可
修改请求参数
模拟后端,查看响应结果
Filters过滤器,域名过滤
只显示特定域名记录,Filters-- 勾选Use Filters--Hosts
选择Show only the following Hosts--输入需要显示的域名--点击actions生效
https抓包设置
tools-->option-->https-->左边选项进行勾选操作
tools-->option-->https--action-export导出证书--浏览器导入证书
手机抓包设置
tools-->option-->connections-->设置好端口--勾选Alliw remote computers to counnect--点击ok
手机设置
设置--无线局域网WiFi--代理设置--设置代理服务器电脑的ip(就是打开Fiddler那台电脑的IP)-端口
手机浏览器--输入代理服务器电脑的ip+端口:如:192.168.1.38:8888
下载安装证书即可
手机弱网测试
Rules--Customize Rules--查找(ctrl+f)300数值--数值往上增加改值保存
启用Rules--Performance--勾选Simulte Modem Speeds
执行发送请求,弱网测试,看响应时间
CookieSessionCache缓存Token
Cookie
什么是Cookie?
状态的保持,辨别用户身份,维持通信状态
Cookie保存于浏览器,来自于服务器
Cookie包含的内容
Key_Value值
Path路径
Expries过期时间
Secure传输格式
HttpOnly防止XSS攻击
Cookie类型
持久Cookie
会话Cookie
Session
服务器创建的,保存于服务器内存中
Session标识是全局唯一的
使用场景:记住用户名和密码登录,购物车功能
Browser Cache浏览器缓存
节约网络的资源加速浏览,浏览器在用户磁盘上对最近请求过的文档存储
当再次请求这个页面时,浏览器就可以从本地磁盘显示文档,这样就可以加速页面的浏览
Token
客户端可以将Token保存到任何地方
无限制,无状态,利于分布式部署
Cookie与Session的区别
cookie数据存放在客户的浏览器上,session数据放在服务器上
cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应当使用session
session会在一定时间内保存在服务器上。当访问增多,会比较占用服务器的性能,考虑到减轻服务器性能方面,应当使用cookie
单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存50个cookie
Cookie与缓存的区别
缓存只是对静态资源的处理;Cookie是一种动态机制
缓存大小受资源和磁盘空间的限制
Cookie本身有大小限制,一般浏览器限制大小不能超过4Kb
缓存不会发送服务器,cookie会与请求一并自动发送
作用不一样,缓存浏览器就可以从本地磁盘显示文档,可以加速页面的阅览。Cookie是服务器辨别用户身份,维持通信传输状态。
0 条评论
回复 删除
下一页