把自己需要的请求保存下来,再用接口测试框架调用,并验证返回结果。
可以做请求录制,自动断言
保存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:" + "\n" + oSession.oRequest.headers); file.writeLine("Request body: " + oSession.GetRequestBodyAsString()); file.writeLine("\n"); 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("\n"); 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:\mockserver\mockserver\configs\simple\foo.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数据返回给客户端 } }