过了那么久终于要开始学习接口了!学习三个工具 1.fiddler 抓包工具 2. postman  3.soupUI

首先讲这个 fiddler  

Fiddler是最强大最好用的Web调试工具之一,它能记录所有客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出数据,Fiddler包含了一个强大的基于事件脚本的子系统,并且能使用.net语言进行扩展

  你对HTTP 协议越了解, 你就能越掌握Fiddler的使用方法。你越使用Fiddler,就越能帮助你了解HTTP协议。

  Fiddler无论对开发人员或者测试人员来说,都是非常有用的工具。

Fiddler的工作原理

  Fiddler 是以代理web服务器的形式工作的,它使用代理地址:127.0.0.1,端口:8888。当Fiddler退出的时候它会自动注销,这样就不会影响别的 程序。不过如果Fiddler非正常退出,这时候因为Fiddler没有自动注销,会造成网页无法访问。解决的办法是重新启动下Fiddler。

接口工具,,,,学习。。

下载的完毕的时候,打开fiddler,这个时候打开浏览器随意登个网站看看 fiddler是否有截获到信息!如果没有就去设置一下,我这里用的是google浏览器 右上角点击设置,滑到最下面点击高级,然后找到 打开代理设置  ,打开后点击链接,再点击局域网设置,勾选 “为LAN使用代理服务器” 再点击高级, 在http和安全,地址写 127.0.0.01  端口写8888.这个时候就能截获拉!

有两种代理模式

1.流模式(streaming)2 .缓冲模式(buffering)

区别:

流模式:可实时把服务器数据返回给客户端,最接近于真正的浏览器本身

缓冲模式:是http请求所以的数据都准备好后才把数据返回给客户端,它可以控制最后的服务器响应


使用环境

1. 开发环境host配置:简化了不同环境下的配置

2.前后端接口调试:不需要花费很大时间来创建假数据

3.线上bugfix:可将发布文件代理到本地,快速定位线上bug

4.性能分析和优化:提供清晰请求实际图,清晰明了网站需优化的部分


工具条介绍

接口工具,,,,学习。。

1.备注 ,comments    选中一个会话,添加备注信息

2.Replay ,回放按钮,选中一个会话,点击回放,快捷键r 

3.× : 清空面板,里面还有可选清除

4.Go:调试Debug  发出的request请求 和 反应的 response请求作断点

5.Stream:模式切换: 默认是缓存模式 ,被选中状态下就是流模式

6.Decode :解压请求,解压http请求里面的东西,便于查看

7.Keep:保持会话

8.Any Process :过滤请求:点击Any 再点击你想捕获的浏览器界面,他就可以只捕获选中的浏览器

9.find 查找会话,可选择查找到的会话的颜色

10.save 保存会话

11.相机:保存截图 

12.时钟:计时

 13 e :快速启动浏览器 

接口工具,,,,学习。。

14.clear Cache :清除浏览器缓存

15.TextWizard:编码解码  选择url 复制到解码界面上 选择 URLDecode  他可以解码多种格式

16.Tearoff:分离左右面板,关闭就恢复

17. MSDN Search:MSDN搜索,几乎不用

接口工具,,,,学习。。

19:黑色长条框:控制台,可以输入命令 不懂得可以输help 就会出来一个页面告诉你里面有哪些命令

20.Capturing:显示出来就代表fiddler在工作,点掉就不工作

21.红色的那个就是结合 Go调试BeDug的 箭头向上就表示停在发送请求阶段,点go就执行了,箭头向下就是停在返回请求阶段。


左侧监控面板的使用:

1.记录了来自 Web server请求的会话,以及会话的状态。

右侧面板

接口工具,,,,学习。。

Statistics: 数据统计。一个请求的性能指标,用于分析性能和优化

ClientConnected:客户端连接建立的时间

ClientBeginRequest: 请求开始时间

GotRequestHeaders: 请求头时间

ClientDoneRequest: Determine Gateway: DNS Lookup: TCP/IP Connect: HTTPS Handshake: ServerConnected: FiddlerBeginRequest: ServerGotRequest: ServerBeginResponse: GotResponseHeaders: ServerDoneResponse: ClientBeginResponse: ClientDoneResponse:  各种时间

RTT  :请求往返的总时间

最下面有一个 show chat :图形化

inspectors: 对请求解包  他有Request  和 Response

AutoResponder:文件代理  可将左侧会话拖进右侧,在最下面选择返回响应,例如 200 502 点击 save 再重跑次会话。还可以上传代理文件,从本地获取代理服务器文件

Composer:前后端接口连调  可查看传递的参数,也可以将会话拖进右侧  修改 请求方式

log:记录log日志

timeline :网站性能分析 ,选中有关的会话进行查看


常用功能使用

1.host配置:点击tools,选中hosts 输入域名地址就可以了  把所有文件映射到指定服务器

2.文件替换,把线上文件拖到 AutoResponder,可以排查线上文件的bug  最下面有一个 Rule Editor  地址前的EXACT 表示精准匹配 ,也可以写复杂的正则表达式。

然后选择本地的文件替换线上的文件 执行。 还可以替换响应

3.前后端接口连调,  get请求 直接在url跟参数,post请求在response body写参数 点击execute 即可查看会话 也可以输入cookie

4.网络限速: 需要下载一个插件 fiddle script  把一个请求代码化, 限速 需要用到 代码化里面一个 叫 onBeforeRequest

下面写上 延迟指令

oSession["request-trick-delay"] = "3000"  延迟三秒发送  oSession["response-trick-delay"] = "3000"  延迟三秒返回

fiddler还提供了各种插件、

接下来讲讲 postman

Postman是google开发的一款功能强大的网页调试与发送网页HTTP请求,并能运行测试用例的的Chrome插件。其主要功能包括:

  • 模拟各种HTTP requests

从常用的 GET、POST 到 RESTful 的 PUT 、 DELETE …等等。 甚至还可以发送文件、送出额外的 header。

  • Collection 功能(测试集合)

Collection 是 requests的集合,在做完一個测试的時候, 你可以把這次的 request 存到特定的 Collection 里面,如此一來,下次要做同样的测试时,就不需要重新输入。而且一个collection可以包含多条request,如果我们把一个request当成一个test case,那collection就可以看成是一个test suite。通过collection的归类,我们可以良好的分类测试软件所提供的API.而且 Collection 还可以 Import 或是 Share 出來,让团队里面的所有人共享你建立起來的 Collection。

  • 人性化的Response整理

一般在用其他工具來测试的時候,response的内容通常都是纯文字的 raw, 但如果是 JSON ,就是塞成一整行的 JSON。这会造成阅读的障碍 ,而 Postman 可以针对response内容的格式自动美化。 JSON、 XML 或是 HTML 都會整理成我们可以阅读的格式

  • 内置测试脚本语言

Postman支持编写测试脚本,可以快速的检查request的结果,并返回测试结果

  • 设定变量与环境

Postman 可以自由 设定变量与Environment,一般我们在编辑request,校验response的时候,总会需要重复输入某些字符,比如url,postman允许我们设定变量来保存这些值。并且把变量保存在不同的环境中。比如,我們可能会有多种环境, development 、 staging 或 local, 而这几种环境中的 request URL 也各不相同,但我们可以在不同的环境中设定同样的变量,只是变量的值不一样,这样我们就不用修改我们的测试脚本,而测试不同的环境。


直接扔下载地址 http://pan.baidu.com/s/1pKJDURL

下载完之后 将postman.rcx文件改为postman.zip  然后解压 

在Chrome的地址栏中输入:chrome://extensions/ 打开Chrome浏览器的扩展程序管理界面,并在该界面的右上方的开发者模式按钮上打勾

然后点击加载已解压的扩展程序,导入文件,如果出现错误就把一个叫_metadata的文件夹名改为 metadata  刷新重新加载 就可以了

接口  、功能测试

不过chrome版本已经落后了 现在应该装native版本 直接访问官网 www.getpostman.com下载

官方文档 https://www.getpostmman.com/docs/

发送第一个Api

测试专用网址  :https://www.v2ex.com/api/topics/hot.json

接口工具,,,,学习。。 get请求  type :NoAuth  会以Json格式返回

Content-Type application/json;charset=UTF-8

右侧上一小部分表示request 请求   下一大部分表示 response 响应

必须掌握 http协议

http请求:

http消息是服务器和客服端交换数据的方式

两种类型:

请求 -- 客户端发送用来触发一个服务器上的动作   响应:--来自服务器的应答

参考:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Messages


http请求构成

1.起始行 startline  POST / HTTP /1.1     2. Headers   3. Body

起始行3要素  1.POST/GET 一个http方法   ,2. url  请求目标  3. http版本

headers  (配置项) 客户端我要啥

不区分大小写的字符串    

包括 Request headers   General headers  Entity headers

body  post才会有body


http 响应

1.状态行 2 headers 3,body

1. 状态行 

1.协议版本  2. 状态码 。200,400  3. 状态文本

200  :OK 成功    201: 成功创建/更新

300 : 重定向  301: 转变目的地  302 found

400 :bad request  401  402 403    404:没找到

500:服务器错误   502 

2.headers  服务器我做了啥

set-Cookie


断言 预期与实际结果的判断

Assert


在http (Responses)响应里面断言  状态码 body

给v2ex 增加断言

1,返回的状态码必须是200  2. 返回10条


postman 的Test功能

设置全局变量 

设置环境变量 

拿到并处理请求的响应

 定义测试检查点和断言

tests["Body is correct"]  = responseBody ==="response_body_string'

在tests里面写

tests["状态码必须是200"] = responseCode.code ===200;
var res =JSON.parse(responseBody);
console.log(res.lentsh);

tests["必须是10条"] = res.length ===10;

点击send查看结果

接口工具,,,,学习。。



sandbox

运行一下js代码

1.公共库(js) 2。 操作cookie


chai断言

  pm.test('ztm', function () {

    pm.expect(pm.response).to.have.status(200);

      pm.expect(pm.response).to.be.success(200);

  });

参考网站:https://www.getpostman.com/docs/v6/postman/scripts/postman_sandbox_api_reference


postman做简单ui测试

用到的库 Cheerio  有点类似于 jQuery

var cheerio = require('cheerio');
var $ = cheerio.load(responseBody);
pm.test("4门课程",function(){
    pm.response.to.be.success;
    pm.expect($('.service-block-in').length === 4 )

});


局限 交互一般 无法处理ajax请求 没有更多的js


Request methods

get post  put  patch 更新 delete


cookie

添加cookie

查看cookie        responseBody.has("cookies");

     pm.cookies.get("cookiename")


postman 鉴权

basic authentication

https://postman-echo.com/basic-auth

必须先登入


collection

容器  组织业务逻辑  导入导出 其他功能 

pre-request Script 发送请求前执行的一个js 可以初始化数据

变量

api.itest.info/tasks   api.itest,info/tasks/:task_id  不写死

{{itest.domain}}/tasks   通过变量去传递


变量作用域

Global  全局,错误信息设置成全局

Environment : 环境变量  domain

Local  环境变量 在sandbox中定义

Data 测试数据中导入变量,参数化

变量引用 

builder里引用

{{variable}}

https://www.v2ex.com/api/nodes/show.json?name={{node_name}}

接口工具,,,,学习。。

在环境变量里面设置 接口工具,,,,学习。。

在全局变量设置 就是全局变量 不用环境也行

环境变量会覆盖全局

接口工具,,,,学习。。

点击save  取名,介绍 ,保存成功后  点击右侧collentions  点击  > 再点run

就会打开一个runner界面

接口工具,,,,学习。。可选择环境变量, 循环次数   ,延迟,也可导入json/csv文件 参数驱动化, data file type 要选择对应文件的类型,也可预览数据。

去文件中的数据通过 date.yourname

var jsondata = JSON.parse(responseBody)    tests["dengx"] = JSONdata.name === data.yourname

如果有不会的就去访问官方文档!!!!!最好的学习途径!!

 https://www.getpostmman.com/docs/


命令行运行postman脚本

在runner 右上角点击Run in Commad Line  

在命令行 输入 cnpm install newman --global

要先下载node.js

检查是否下载完毕 newman -h

回到主界面  选择文件夹点击Export 

选择collection v2

打卡命令行 newman run export.postman_collection.json -d data.json -r html,cli,json,junit   生成各种文件


下载python 下载 requests pip install  requests

相关文章:

  • 2021-09-23
  • 2021-11-09
  • 2022-12-23
  • 2022-12-23
  • 2021-04-14
  • 2021-11-29
  • 2021-12-09
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-09-03
  • 2021-07-24
  • 2021-11-29
  • 2021-12-04
  • 2021-09-27
  • 2022-01-21
相关资源
相似解决方案