软件测试软件测试

Fiddler只对post请求打断点

2019-07-31  本文已影响24人  是萌萌哎

最近在测试一个活动,参与答题返现金,涉及到钱的话会有很多异常情况,比如说调取财务,微信的接口失败啊,但是这些异常情况,单纯的正常测试无法覆盖到,所以只能打断点,通过更改接口的请求参数来验证。

打断点其实fiddler有有个非常简单的方式:

1.Before Requests ,后台服务器调用接口请求之前打断点,还没有请求到后台的时候,用于修改入参

2、After Response ,后台调用请求之后打断点,用于修改出参

但是这种一旦设置了就是针对所有请求,不方便测试

如上图修改对应的入参或者出参后,点击Run to Commpletion就可以了

像我们平时如果接口参数网关加密的话,直接用解密方法解密修改后在加密放到上面就可以了

划重点:

就像我这次是一个h5的活动,你会发现前端有的时候会调用同一个接口两次,第一次的请求方式是options的,第二次才是真正的post请求。

什么是options的请求呢:

在有很多情况下,当我们在js里面调用一次ajax请求时,在浏览器那边却会查询到两次请求,第一次的Request Method参数是OPTIONS,还有一次就是我们真正的请求,比如get或是post请求方式,查阅相关的资料之后发现,这是浏览器对复杂跨域请求的一种处理方式,在真正发送请求之前,会先进行一次预请求,就是我们刚刚说到的参数为OPTIONS的第一次请求,他的作用是用于试探性的服务器响应是否正确,即是否能接受真正的请求,如果在options请求之后获取到的响应是拒绝性质的,例如500等http状态,那么它就会停止第二次的真正请求的访问。也就是说这样的调用安全性会比较高》

但是如果我用之前全部拦截的方法的话,就会只拦截到options请求的接口,连token,参数都没有,是无用的

下面就是如何通过脚本的方式来拦截呢:

首先fiddler,有一个基于.NET的脚本,我们可以通过修改这个脚本来修改:

下面这里可以作选择:一般就是前两个,响应前和后:

选择后他会跳到对应的方法上,直接加上圈出的这部分代码(取消注释),然后保存,就会生效,值拦截post请求的接口啦。

其他的操作方法就和前面的一样了,附上这部分脚本:

if (oSession.HTTPMethodIs("POST")){

            oSession["x-breakrequest"]="breaking for POST";

        }

其实官方的文档给出如何使用,下面是我发现的一个 比较实用的文章,有很多其他的脚本,比如只搜关键啊这些:

https://www.zhaokeli.com/article/8089.html

其实我觉的fiddler还有另外一个强大的功能就是模拟弱网环境,发送请求,可以针对这种极端的情况进行测试,下一篇将会介绍。。。。

上一篇下一篇

猜你喜欢

热点阅读