把自己需要的请求保存下来,再用接口测试框架调用,并验证返回结果。
可以做请求录制,自动断言
保存Request
把下面代码贴在OnBeforeRequest()方法末尾
//过滤无关请求,只关注特定请求
if (oSession.fullUrl.Contains("meizu.com")) { var fso; var file; fso = new ActiveXObject("Scripting.FileSystemObject"); //文件保存路径,可自定义 file = fso.OpenTextFile("D:\Fiddler Sessions\Sessions.txt",8 ,true, true); file.writeLine("Request url: " + oSession.url); file.writeLine("Request header:" + " " + oSession.oRequest.headers); file.writeLine("Request body: " + oSession.GetRequestBodyAsString()); file.writeLine(" "); file.close(); }
保存Response
把下面代码贴在OnBeforeResponse()方法末尾
//过滤无关请求,只关注特定请求
if (oSession.fullUrl.Contains("meizu.com")) { oSession.utilDecodeResponse();//消除保存的请求可能存在乱码的情况 var fso; var file; fso = new ActiveXObject("Scripting.FileSystemObject"); //文件保存路径,可自定义 file = fso.OpenTextFile("D:\Fiddler Sessions\Sessions.txt",8 ,true, true); file.writeLine("Response code: " + oSession.responseCode); file.writeLine("Response body: " + oSession.GetResponseBodyAsString()); file.writeLine(" "); file.close(); }
2.常用设置
1.断点,修改request
2.模拟response
3.filter
4.模拟弱网
5.获取返回大小
6.命令
3.Fiddler快捷键
=post
?qq 搜索关键字
bold baidu 加粗
4.常用script
(1)修改请求的显示样式 If(oSession.uriContains(“bro”)){ oSession[“ui-color”]=”purple”; } (2) 修改请求 if(oSession.uriContains("sogou")){ oSession.url = "www.sogou.com?c=1"; } (3)隐藏返回图像的session if (oSession.oResponse.MIMEType.Contains("image")) { oSession["ui-hide"] = "Script hiding images"; }
Mock
1、Anproxy:http://anyproxy.io/cn/
AnyProxy 是一个基于 Node.js 的代理服务器。这里主要作用
(1)对https的兼容 (否则就要配置nginx拉)
(2)把需要mock的链接转移给moco,不需要的正常发送http请求
2.Moco 一个mockserver
http://blog.csdn.net/sanjay_f/article/details/50204883
java -jar moco-runner-0.10.2-standalone.jar start -p 5566 -c D:mockservermockserverconfigssimplefoo.json
[
{
"request" : {
"uri" : "/v1/public/favorite/default"
,
"queries": {
"imei": "869011020625742",
"sn": "80QBCNJ22CW61"
}
},
"response" : {
"text" : "{"code":110000,"message":"1111111111111111"}"
}
}
]
Anproxy转接请求:达到不同的链接转到不同的sever处理(真实server和mockserver)
//mark if use local response
shouldUseLocalResponse : function(req,reqBody){
if(/aa/.test(req.url)){ //被mock接口判断选择
req.replaceLocalFile = 0;
return true;
}
if(/bb/.test(req.url)){
req.replaceLocalFile = 1;
return true;
}
return false;
},
dealLocalResponse : function(req,reqBody,callback){
if(req.replaceLocalFile==0){
callback(200,'sdds','2222'); //mock数据返回给客户端
}
}