Fiddler 基本使用及自动化测试

发布时间:2024-11-22 07:02

了解和使用自动化测试工具。 #生活技巧# #学习技巧# #编程学习技巧#

目录

1、抓本地包:

2、按URL过滤:

3、拦截脚本:

4、FiddlerScript:

4.1、OnBeforeResponse:

4.2、文件操作:

4.3、添加菜单按钮

4.4、csv文件的处理

4.5、列表操作

4.6、JSON操作

4.7、JScript(C#)

4.7.1、object[]转byte[]

1、抓本地包:

在IP地址后面加个点:127.0.0.1.

或者直接用外部地址:192.168.X.X,就不需要加点号了

2、按URL过滤:

3、拦截脚本:

4、FiddlerScript:

JScript.Net语法:http://doc.51windows.net/jscript5/?url=/jscript5/dir.htm

C#语法:在脚本中可以直接使用C#语法,只是定义变量是采用  var varName:varType的方式,直接用C#代码需要import包

4.1、OnBeforeResponse:

可以对响应体内容进行修改,这里响应体内是拦截的是Java后台用GZip压缩的数据,这里处理后返回原数据:

static function OnBeforeResponse(oSession: Session) {

if (m_Hide304s && oSession.responseCode == 304) {

oSession["ui-hide"] = "true";

}

if (oSession.fullUrl.Contains("YSSUCOBRIDGE")) {

var _keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";

var respStr = oSession.GetResponseBodyAsString();

var respByte: byte[] = Convert.FromBase64String(respStr);

var depressedByte: byte[] = Utilities.GzipExpand(respByte);

var depressStr = Convert.ToBase64String(depressedByte);

var e = depressStr;

var t = "";

var n, r, i;

var s, o, u, a;

var f = 0;

e = e.replace(/[^A-Za-z0-9\+\/\=]/g, "");

while (f < e.length) {

s = _keyStr.indexOf(e.charAt(f++));

o = _keyStr.indexOf(e.charAt(f++));

u = _keyStr.indexOf(e.charAt(f++));

a = _keyStr.indexOf(e.charAt(f++));

n = s << 2 | o >> 4;

r = (o & 15) << 4 | u >> 2;

i = (u & 3) << 6 | a;

t = t + String.fromCharCode(n);

if (u != 64) {

t = t + String.fromCharCode(r)

}

if (a != 64) {

t = t + String.fromCharCode(i)

}

}

depressStr = utf8_decode(t);

oSession.utilSetResponseBody(depressStr);

}

}

static function utf8_decode(e: String): String {

var t = "";

var n = 0;

var r = 0;

var c1 = 0;

var c2 = 0;

var c3 = 0;

while (n < e.length) {

r = e.charCodeAt(n);

if (r < 128) {

t += String.fromCharCode(r);

n++

} else if (r > 191 && r < 224) {

c2 = e.charCodeAt(n + 1);

t += String.fromCharCode((r & 31) << 6 | c2 & 63);

n += 2

} else {

c2 = e.charCodeAt(n + 1);

c3 = e.charCodeAt(n + 2);

t += String.fromCharCode((r & 15) << 12 | (c2 & 63) << 6 | c3 & 63);

n += 3

}

}

return t;

}

4.2、文件操作:

其中depressStr为每个请求写入文件的内容:

var fso = new ActiveXObject("Scripting.FileSystemObject");

var a = fso.CreateTextFile("C:\\Users\\Administrator\\Desktop\\output.xls", true);

a.WriteLine("input");

for (var i:int = 0; i < reqArr.length; i++) {

try {

if (String.IsNullOrWhiteSpace(reqArr[i])) {

continue;

}

a.WriteLine(reqArr[i]);

} catch (ex:Exception) {

}

}

a.Close();

reqArr = new Array();

FiddlerObject.alert("保存成功");

4.3、添加菜单按钮

https://www.cnblogs.com/zhm450/p/6770595.html?utm_source=itdadao&utm_medium=referral

https://www.cnblogs.com/weekend001/p/3475980.html

public static ToolsAction("FAST Print")

function FASTPrint(){

var str = "";

for (var n:int = 0; n < reqArr.length; n++) {

str += reqArr[n] + "\r\n";

}

FiddlerObject.alert(str);

}

public static ToolsAction("FAST Clear")

function FASTClear(){

reqArr = new Array();

}

public static ToolsAction("FAST Save")

function FASTSave(){

var fso = new ActiveXObject("Scripting.FileSystemObject");

var a = fso.CreateTextFile("C:\\Users\\Administrator\\Desktop\\output.xls", true);

a.WriteLine("input");

for (var i:int = 0; i < reqArr.length; i++) {

try {

if (String.IsNullOrWhiteSpace(reqArr[i])) {

continue;

}

a.WriteLine(reqArr[i]);

} catch (ex:Exception) {

}

}

a.Close();

reqArr = new Array();

FiddlerObject.alert("保存成功");

}

4.4、csv文件的处理

如果想要将结果数据保存到csv文件中,供Jmeter使用,这里可能出现的问题是,csv文件是采用逗号分隔,如果需要写入文件中的数据有逗号,可能需要采用以下方式处理:

如果字段中有逗号(,),该字段使用双引号(")括起来;

如果该字段中有双引号,该双引号前要再加一个双引号,然后把该字段使用双引号括起来。

4.5、列表操作

var reqHeaderArr = new Array();

reqArr[reqArr.length] = "XXX"; 这里注意length是小写

4.6、JSON操作

var sInput = '{}';

var oJSON = Fiddler.WebFormats.JSON.JsonDecode(sInput);

oJSON.JSONObject["USER"] = oSession.oRequest.headers["USER"];

oJSON.JSONObject["POST"] = oSession.oRequest.headers["POST"];

var result = Fiddler.WebFormats.JSON.JsonEncode(oJSON.JSONObject);

4.7、JScript(C#)

可以像C#一样import System相关包,但是JScript里面不能用List只能用ArrayList,备一些代码以后可能用得到

4.7.1、object[]转byte[]

object[] objBytes = new object[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };

byte[] bytes = new byte[objBytes.Length];

for (int i = 0; i < objBytes.Length; i++)

{

bytes[i] = Convert.ToByte(objBytes[i]);

}

网址:Fiddler 基本使用及自动化测试 https://www.yuejiaxmz.com/news/view/187542

相关内容

耗时一个星期整理的APP自动化测试工具大全
2024 年 8 个好用的 Websocket 测试工具推荐
八个高效测试工具
好用的自动化测试工具推荐
推荐几款常用测试数据自动生成工具(适用自动化测试、性能测试)
请介绍一下如何进行APP专项测试?
测试人员的价值=自动化测试的水平?
andriod自动化压力测试
UI自动化测试工具推荐
【书单】自动化测试书籍推荐?自动化测试书籍哪个好?笔者亲自看过后推荐!

随便看看