Charles和Fiddler 接口测试基本使用以及postman 断言方法

目录

一、测试工具

二、Charles下载安装

1-1、官方网站下载地址:

三、Charles HTTPS抓包配置

四、fiddler修改返回响应

方式一:命令

方式二:全局

方式三:修改boby

方式四:修改脚本

五、fiddler使用小技巧:

六、wireshark 使用

1)过滤源IP以及目的IP:

2)端口过滤:

3)协议过滤:

4)连接符and的使用。

七、wireshark 分析

八、wireshark 与charles 和fiddler区别

九、Postman 断言


一、测试工具

1,自动化功能测试工具:QTP、selenium

2,自动化性能测试功能:LoadRunner、jmeter

3,自动化接口测试工具:Charles、soapUI、LoadRunner、jmeter、fiddler、Wireshark

4,测试管理工具:禅道、qc、jira、testlink

管理需求,管理测试计划、管理测试用例、管理bug、分析bug

二、Charles下载安装

1-1、官方网站下载地址:

Download a Free Trial of Charles • Charles Web Debugging Proxy

图示1 . 下载Charles

三、Charles HTTPS抓包配置

2-1.     如下图,打开菜单,安装根证书,所有操作按默认完成

Help----->SSL Proxying------>Install Charles Root Certificate

图示2 . 安装证书

2-2.     如下图保存根证书到桌面

Help----->SSL Proxying------>Save Charles Root Certificate……

图示3 . 保存证书

2-3.  选择保存证书类型:下图中,输入charles为证书名字,下面选择.cer类型

注意事项:保存格式为  .cer

图示4 . 保存证书格式 .cer

2-4.     保存完成后,在桌面就会有一个证书文件charles.cer,后面会用到的

图示5 .  证书Charles.cer

2-5.     PC端安装Charles信任证书

IE浏览器    、  Google浏览器   、 Firefox浏览器安装(以下只列举 IE浏览器、google浏览器)

2-5-1、IE安装Charles信任证书

打开--------Internet选项-----------内容------------证书----------导入

图示6 .  导入证书

导入-------------下一步--------------浏览-----------选择Charles的证书--------------打开/安装-----------------下一步-------下一步---------完成

图示7 .  浏览目录导入证书

2-5-1、Google安装Charles信任证书

暂时后续,可参考如下

charles最新破解jar文件,及浏览器证书安装 - oucbl - 博客园

6.     导入之后,重启charles

7.     配置ssl代理

四、fiddler修改返回响应

https://www.jianshu.com/p/194a61e2fcca

方式一:命令

请求打断点:bpu XXX         取消断点:bpu+Enter

响应打断点:bpafter XXX   取消断点:bpafter+Enter

·"XXX" 可以是完整的url,也可以是url中的一部分,如:

方式二:全局

菜单栏选择 :Automatic Breakpoints(自动设置断点)

发起请求之前:before

发起请求之后: after

会全局设置断点

方式三:修改boby

1.将自己需要的响应保存到  自己本地 保存为 json文件(响应 body保存指定格式)

2.右选择 AutoResponder ---->  选url拖拽到autoResponeder 

3. 然后在 Rule Editor 选择自己保存json文件

4.请求发包,查看    注意修改每次接收响应都自己 自定义的 

方式四:修改脚本

Rules ---->  customize rules ----> 打开文件 找到OnBeforeResponse这个方法,需要修改的内容

  

5.1 postman 接口测试简介 · 软件接口测试 · 看云

五、fiddler使用小技巧:

fiddler 抓包抓的是http协议的包。不能抓其它协议。
    ctrl+x快捷键  清屏。
    顶部Decode 解码,默认勾上,返回体的内容会自动解码。  勾上之后是蓝色框框框起的。 
    rules菜单中,把hide connects 勾上 hide image勾上。

    https配置:  tools options 中的https菜单, 勾选各种,然后actions里面 先reset 然后 trust。

    fiddler本身是在电脑上开了一个代理,用来收发http协议报文,手机如果要抓包,就指定用这个代理就行。

    fiddler  的核心功能: 
        inspector 查看 接口报文信息
        filters :过滤器。
        composer:发送接口请求。可以直接从抓到的报文拖过去,自动填写,自己修改请求内容。
        autoresponder:可以根据规则修改返回的结果。  有时候会用于进行mock测试。伪造返回,供后续测试使用。

六、wireshark 使用

1)过滤源IP以及目的IP:

在wireshark的过滤规则框Filter中输入过滤条件。

        ①查找目的地址为120.24.89.47 的包,ip.dst==120.24.89.47;

        ②查找源地址为192.168.1.37的包,ip.src==192.168.1.37。

2)端口过滤:

在wireshark的过滤规则框Filter中输入过滤条件。

        ①过滤80端口,tcp.port==80,这条规则是把源端口和目的端口为80的都过滤出来。

        ②使用tcp.dstport==80只过滤目的端口为80的,tcp.srcport==80只过滤源端口为80的包。

3)协议过滤:

在wireshark的过滤规则框Filter中输入过滤条件。

        ①过滤get包,http.request.method=="GET",过滤post包,http.request.method=="POST"。

注:HTTP的协议,TCP协议

4)连接符and的使用。

过滤两种条件时,使用and连接,如过滤ip为192.168.1.37并且为tcp协议的,ip.src==192.168.1.37 and tcp。

七、wireshark 分析

四、报文分析

抓取并且过滤出相应的报文,我们就可以开始进行详细的报文分析了。

双击其中一个报文,即可打开这个报文的详细内容,如下图所示:

第一层Frame I:TCP/IP 协议栈中的物理层

第二层Ethernet II:TCP/IP 协议栈中的数据链路层,也就是现实网卡的源目MAC地址,依据这部分信息来做二层转发;

第三层Internet Protocol : TCP/IP 协议栈中的网络层,发明了IP协议,所以报文在这一层会带上源目IP地址。

第四层 Transmission Control Protocol: TCP/IP 协议栈中的传输层,定义了TCP协议和UDP协议,以及定义了端口的概念。所以在这一层的安博文,会带上协议的源目端口。


————————————————
原文链接:软件测试必须掌握的抓包工具Wireshark,你会了么?_程序员二黑~的博客-CSDN博客_软件测试抓包工具

八、wireshark 与charles 和fiddler区别

原理上

Fiddler进行网络数据并且解析,wireshark是进行分析网络数据的

作用上

Fiddler是在windows上运行的程序,专门用来捕获HTTP,HTTPS的。

wireshark能获取HTTP,也能获取HTTPS,也可TCP、UDP协议

运行环境

Fiddler是在windows上运行的程序,wireshark可以在windows上运行的程序,也可以在linux

页面操作不同

Fiddler可以设置断点,修改请求和返回数据

九、Postman 断言

Postman接口测试: 

1.设置环境变量
 postman.setEnvironmentVariable("key", "value");
 例子:postman.setEnvironmentVariable("url", "http://192.168.36.47/v2/api");
使用环境变量的格式:{{url}}
1.1清除环境变量
postman.clearEnvironmentVariable("variable_key");
例子:postman.clearEnvironmentVariable("url");
3.检查响应体包含一个字符串
tests["Body matches string"] = responseBody.has("string_you_want_to_search");
例子:响应体包含以下字段 "path": "field is read-only",
tests["Body matches string"] = responseBody.has("field is read-only");
tests["Body matches string"] = responseBody.has("path");
​
4.转换XML身体JSON对象
var jsonObject = xml2Json(responseBody);
5.检查响应体等于一个字符串(所有)
tests["Body is correct"] = responseBody === "response_body_string";
例子:响应体包含以下字段 "path": "field is read-only",
tests["Body is correct"] = responseBody === "response_body_string";
​
6.检查一个JSON值
var data = JSON.parse(responseBody);
tests["Your test name"] = data.value === 100;
7.Content-Type的存在(不区分大小写检查)
tests["Content-Type is present"] = postman.getResponseHeader("Content-Type");
//Note: the getResponseHeader() method returns the header value, if it exists.
8.Content-Type的存在(区分大小写)
 tests["Content-Type is present"] = responseHeaders.hasOwnProperty("Content-Type");
​
9.响应时间小于200ms的
 tests["Response time is less than 200ms"] = responseTime < 200;
​
10.状态代码是200
 tests["Status code is 200"] = responseCode.code === 200;
 例子:状态码是404
 tests["Status code is 404"] = responseCode.code === 404;
11.代号包含一个字符串
tests["Status code name has string"] = responseCode.name.has("Created");
例子:Status:201 CREATED
tests["Status code is 201"] = responseCode.code === 201;
tests["Status code name has string"] = responseCode.name.has("Created");
​
12.成功的POST请求的状态代码
tests["Successful POST request"] = responseCode.code === 201 || responseCode.code === 202;
13.使用TinyValidator的JSON数据
var schema = {
    "items": {
    "type": "boolean"
    }};
var data1 = [true, false];
var data2 = [true, 123];
console.log(tv4.error);
tests["Valid Data1"] = tv4.validate(data1, schema);
tests["Valid Data2"] = tv4.validate(data2, schema);

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AMING20220827

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值