【接口测试】

【接口测试】

一、接口测试工具

1、postman

postman官方下载地址:

https://www.postman.com/downloads

2、charles

1)charles下载地址

charles官方下载地址:

https://www.charlesproxy.com/

学社下载地址:

https://download.ceshiren.com/charles/

2)charles功能

  • 支持 SSL 代理
  • 支持流量控制
  • 支持重发网络请求,方便后端调试
  • 支持修改网络请求参数
  • 支持网络请求的截获并动态修改
  • 可以自动将 json 或 xml 数据格式化,方便查看

3、fiddler

Fiddler 是位于客户端和服务器端的 HTTP 代理
也是目前最常用的 HTTP 抓包工具之一

1)fiddler下载地址

fiddler官方下载地址:

https://www.telerik.com/fiddler/fiddler-classic

2)fiddler功能

  • 监控流量
  • 支持解密 HTTPS
  • 查看分析接口数据
  • 修改请求的数据
  • 修改服务器返回的数据
  • 设置断点

二、接口自动化测试

1、分层测试理论:

UI测试(测试成本最高,发现BUG时间最晚)
接口测试
单元测试
在这里插入图片描述

2、协议分析工具

1)网络监听

TcpDump + Wireshark

2)协议客户端工具

curl、postman

3)代理Proxy

推荐工具:手工测试charles【全平台】、安全测试burpsuite【全平台java】
自动化测试:mitmproxy
其他代理:fiddler【仅windows】、Anyproxy【全平台】

3、常见的接口协议

1)HTTP协议

端口号:80

(1)HTTP请求报文:

请求行:method url protocol
eg.
GET /uploads/user/avatar/31438/8216a3.jpg HTTP/1.1
请求方法:GET、POST、PUT、DELETE、HEAD

请求头:Host Cookie User-Agent
包括:
host: 主机和端口号。 eg.www.baidu.com
Connection: 客户端与服务 端之间的链接类型。 eg. 常见的keep-alive,表示长连接,一次信息发完不会立刻关闭TCP链接,还可以继续发送内容。
User-Agent: 客户端类型
Accept: 传输文件类型。eg. image表示让服务器知道自己需要发图片。
Referer: 追踪页面跳转。看看我的访问是从哪个网站来的,或者统计网站流量
Application-Encoding: 文件编解码方式。指出客户端接受的解码方式。
Accept-Language: 指出客户端接受的语言种类
Cookie: 记录和服务器相关的一些用户信息

请求参数: 拼接在URL中

请求体:JSON XML FORM

(2)HTTP响应报文:

响应状态行:
HTTP版本 响应码。 eg. HTTP/1.1 200 OK

响应头:
connection: 链接类型
content-type: 实际发送的数据格式。 eg. image/png
date: 响应是什么时候发送出去的
Server: 服务器本身的额信息
Transfer-Encoding: 数据传输的方式。 eg.分段传输方式
keep-alive: 可以规定长连接的连接过期时间

响应体:
服务端返回给客户端的内容。body 是我们很关注的内容

HTTP响应状态码:
1xx:临时响应,表示通知信息,请求收到了或正在进行处理
2xx:成功,接受或知道了
200OK
3xx:重定向,
301永久移动
302临时移动
4xx:表示客户端请求错误
403未授权
404未找到
5xx:服务器错误
500服务器内部错误
503服务不可用

URI 和 URL

URI:统一资源标识符,标识资源
URL:统一资源定位符,定位资源
eg.
URL
https://www.baidu.com/s?tn=baidu&wd=接口测试
协议https
域名www.baidu.com
端口跟在域名后面,域名和端口之间使用":"作为分隔符,非必须,如果省略端口部分都将采用默认端口
路径/s,即资源在服务器www.baidu.com的哪个路径下
请求参数tn=baidu&wd=接口测试

2)HTTPS协议

端口号:443

RESTful架构

URL定位资源
用请求方法实现资源的状态切换:
GET: 获取资源
POST: 新增或更新
PUT: 更新
DELETE: 删除

4、JSONPath语法

$ 查询根节点对象,用于表示一个json数据,可以时数组或对象
@ 过滤器处理的当前节点对象
* 获取所有节点
. 获取子节点
.. 递归搜索,搜索所有符合条件的节点
?() 过滤器表达式,筛选操作
[start:end] 数组片段,区间为[start,end),不包含end
[A]或[A,B] 迭代器下标,表示一个或多个数组下标

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值