来一个实例
假如我们现在拿到了如下的一个接口文档(豆瓣图书开源 API:https://developers.douban.com/wiki/?title=book_v2)
从文档中我们可以大体知道这个接口的一些信息, 例如接口是 GET 请求, 请求协议是 https, 请求的接口服务器地址是 api.douban.com, 接口的路径是 / v2/book/search, 接口可以带有四个参数 q(查询的关键字),tag(查询的 tag),start(取结果的 offset),count(取结果的条数), 如果接口请求正常返回状态 200, 返回大体如下结果:
假设这个文档是完善的 (个人认为开发文档还可以把参数类型写上) 这时我们根据这个文档, 我们设计了如下一个测试用例:
用 q = 自动化测试, start=0,count=1 作为参数请求搜索图书接口, 那么接口请求的状态码应该是 200,reponse 应该返回 count=1,start=0 等等
最后我们去执行测试用例, 假设我现在没有别的接口测试用例工具, 我们就通过浏览器来测试这个 GET 请求的接口, 那么我就可以在浏览器低质栏输入: https://api.douban.com/v2/book/search?q = 自动化测试 & start=0&count=1, 并判断返回信息是否有误
JSONView 引入
我们发现直接从 Chrome 打开我们的查询图书的接口请求, 返回的 数据为 JSON 格式, 但是浏览器显示排版难以阅读, 这时我们可以考虑安装一些插件来便于我们阅读, 例如 JSONView 插件, 安装这个插件后 会自动排版的 json 格式:
当然类似的格式化 JSON 的插件工具非常多, 可以自己找个喜欢方便的便可
Postman 引入
我们刚刚通过浏览器来测试我们的一个 GET 请求的接口的一个测试用例, 但是平时我们的接口请求方法除了 GET 还有 POST,PUT,DELETE 等等, 那么浏览器毕竟不是专业的接口测试软件, 而且它也无法测试 POST 这类型的的接口, 那么我们就需要找一个专业的接口测试软件: Postman
Get 请求
测试用例:
https://api.douban.com/v2/book/search?q=自动化测试&start=0&count=1
Post 请求
POST 请求例子, 通过 Postman 配置好请求方法, 地址, 参数后发起请求, 最后如下:
也许你也有疑问, 如果开发没有完备的接口文档, 我如何知道他 API 的信息?
这时我们就得通过一些抓包工具抓取这些 API 信息
常见抓包工具
HTTP 抓包工具: FiddlerCharlesFirebug 开发者工具等等
Chrome 开发者工具简单演示
1. 打开 Chrome 浏览器, 按下 F12 快捷打开 Chrome 开发者工具
2. 点击 Network 标签
3. 勾选 Preserve log 选项, 确保页面刷新不会把已抓到的请求清空
4. 打开网站首页, 输入登录名和密码, 点击登录
5. 查看开发者工具, 可以找到如下图 Login 的请求接口
6. 查看 Login 请求的详细信息
请求方法: POST
请求的 URL:http://test.logwing.com/Home/Login
请求参数格式: Content-Type: application/x-www-form-urlencoded
请求参数: UserName=XXX&Password=XXXX&CheckCode=&Remember=false&LoginCheckCode=7119
请求结果类型: Content-Type: application/json; charset=utf-8
请求结果:
更多关于 Chrome 开发者工具帮助中文帮助文档可以参考: https://github.com/CN-Chrome-DevTools/CN-Chrome-DevTools
Fiddler
Chrome 开发者工具依赖于 Chrome 浏览器, 也只能抓取 Chrome 浏览器发起的请求, 如果我们想获取所有程序发起的请求, 我们就可以通过 Fiddler 来抓取
简介
Fiddler(中文名称: 小提琴)是一个 HTTP 的调试代理, 以代理服务器的方式, 监听系统的 Http 网络数据流动, Fiddler 可以也可以让你检查所有的 HTTP 通讯, 设置断点, 以及 Fiddle 所有的进出的数据(我一般用来抓包),Fiddler 还包含一个简单却功能强大的基于 JScript .NET 事件脚本子系统, 它可以支持众多的 HTTP 调试任务
工作原理
Fiddler 是以代理 web 服务器的形式工作的, 浏览器与服务器之间通过建立 TCP 连接以 HTTP 协议进行通信, 浏览器默认通过自己发送 HTTP 请求到服务器, 它使用代理地址: 127.0.0.1, 端口: 8888. 当 Fiddler 开启会自动设置代理, 退出的时候它会自动注销代理, 这样就不会影响别的程序不过如果 Fiddler 非正常退出, 这时候因为 Fiddler 没有自动注销, 会造成网页无法访问解决的办法是重新启动下 Fiddler
简单演示
抓取 http 请求
1. 启动 Fiddler
2. 点击 Fiddler 主界面右下角的监听程序, 选择 ie 浏览器则该系统上所有的浏览器发起的 http 请求都将被抓取
image.png
3. 打开 chrome 浏览器 , 打开官网首页, 输入用户名密码登录
4. 查看 Fiddler 主面板, 可以查看到 Login 请求
5. 查看 Login 请求的信息
可以查看到跟 Chrome 插件查看到类似的信息
request\response
请求参数
来源: http://www.bubuko.com/infodetail-2515324.html