目录
- 接口测试基础
- Charles 安装配置
- Charles 工具实战
接口测试概念
- 接口:不同的系统之间相互连接的部分,是一个传递数据的通道
- 接口测试:检查数据的交换、传递和控制管理过程
- 使用场景:针对于前后端分离的产品(基本上市面上的绝大部分产品)
接口测试的价值
名企的接口文档
接口测试用例
- 用例名称
- 接口地址
- 请求方式
- 前置条件
- 请求头部
- 请求参数
- 响应状态码
- 预期响应结果
接口测试工具类型
测试类型 |
工具 |
接口数据分析 |
Charles、Fiddler、谷歌开发者工具 |
弱网测试 |
Charles、Fiddler |
性能测试 |
JMeter |
安全测试 |
owasp |
功能测试 |
Postman |
自动化测试 |
Python+Request、Java+RestAssured |
性能测试 |
JMeter |
Mock技术 |
Charles、Python+Requests、Java+RestAssured |
Charles 工具介绍
- 支持 SSL 代理
- 支持流量控制
- 支持重发网络请求,方便后端调试
- 支持修改网络请求参数
- 支持网络请求的截获并动态修改
- 可以自动将 json 或 xml 数据格式化,方便查看
Charles 安装
Charles 界面介绍
Charles 基础设置
Windows 系统安装证书
Mac 系统安装证书
Charles 端设置 ssl
注意事项
- Android 6 以上的系统 app 默认不信任抓包证书
- 需要开发修改代码
- 大部分测试 app 安装包默认打开状态
- iPhone 10 系统以上需要在 设置->通用->关于本机->证书信任设置 中打开信任开关
抓包原理
常用应用场景
- 解决移动端接口测试
- 解决接口测试过程中检查传参错误问题
- mock 测试
接口抓包分析实战
- 抓取接口数据
- Overview:接口的大体情况
- Content:请求信息和响应信息
- 上半部分:请求,请求头信息,请求参数,cookie
- 下半部分:响应,响应头信息,响应体(不同格式)
- Summary:响应时间
- Chart:图标形式的资源情况展示
- Notes:写一些记录
HTTP 协议
- 请求
- 请求行:method url protocol
- 请求方法:GET、POST、PUT、DELETE、HEAD
- 请求头: Host Cookie User-Agent
- 请求参数 query
- 请求体:JSON XML FORM
- 响应:
URI 和 URL
- URI,统一资源标识符,用来唯一的标识一个资源。
- URL,统一资源定位符,它是一种具体的 URI
URL 解析
- URL 结构:
https://www.baidu.com/s?wd=霍格沃兹&rsv_spt=1
字段名称 |
含义 |
|
https |
使用什么协议 |
哪家快递公司 |
www.baidu.com |
目标地址的域名 |
收件人省份、城市 |
省略代表使用默认端口 |
端口 |
进城的入口 |
/s |
资源的路径 |
收件人具体的地址 |
wd=霍格沃兹&rsv_spt=1 |
URL 的参数信息 |
快递的类型、比如生鲜、冷链、文件 |
HTTP 请求报文
> GET /uploads/user/avatar/31438/8216a3.jpg HTTP/1.1
> Host: ceshiren.com
> Accept-Encoding: deflate, gzip
> Connection: keep-alive
> Pragma: no-cache
> Cache-Control: no-cache
> User-Agent: Mozilla/5.0
(Macintosh; Intel Mac OS X 10_15_0)
AppleWebKit/537.36
(KHTML, like Gecko)
Chrome/80.0.3987.116 Safari/537.36
> Accept: image/webp,image/apng,image/*,*/*;q=0.8
> Referer: https://ceshiren.com/
> Accept-Language: en,zh-CN;q=0.9,zh;q=0.8
> Cookie: user_id=xx;
_homeland_session=xx;
>
HTTP 响应报文
< HTTP/1.1 200 OK
< Server: nginx/1.10.2
< Date: Thu, 12 Mar 2020 09:13:44 GMT
< Content-Type: image/png
< Content-Length: 11390
< Connection: keep-alive
HTTP 响应状态码
- 1xx 临时响应,表示通知信息,请求收到了或正在进行处理
- 2xx 表示成功,接受或知道了
- 3xx 表示重定向,要完成请求还必须才去进一步的行动
- 4xx 表示客户端请求错误
- 5xx 表示服务端错误
断点(BreakPoint)
- 调整接口的参数信息
- 鼠标右键 — Breakpoint
- Proxy – Breakpoint settings 设置断点
- 确定接口信息,确定是请求断点还是响应断点
- 重新发送请求 – 进入断点修改状态 – 修改内容 – 点击 Excute
重写(Rewrite)
- Tools -> Rewrite
- 勾选 Enable Rewrite
- 点击下方 Add 按钮新建一个重写的规则
- 在右侧编辑重写规则
- 点击 ok 生效
实战
- 修改雪球行情页面的股票名称
- 修改雪球行情页面的股票价格