动态mock接口返回

目的:接口返回需要带请求校验参数(可能是时间戳之类的)。直接mock 返回会有问题,此时就需要通过脚本进行动态mock。

代码如下:

static function readFile(filename)    {
        var fos = new ActiveXObject( "ADODB.Stream"); 

        fos.Charset = "UTF-8";
        fos.Open;
        fos.LoadFromFile(filename);
        var s = "";
        s = fos.ReadText();
        fos.close;
        return s;
}

static function readFile(filename)    {
        var fso = new ActiveXObject( "Scripting.FileSystemObject");
        var f = fso.OpenTextFile(filename, 1);
        var s = "";
        while(!f.AtEndOfStream)
            s += f.ReadLine();
        f.Close();
        return s;
}

static function OnBeforeResponse(oSession: Session) {
            if (m_Hide304s && oSession.responseCode == 304) {
                oSession["ui-hide"] = "true";
            }
        if(oSession.hostname == "xxx.xxx.com" && oSession.url.indexOf("xxxxx") > -1 ){
            oSession["ui-color"]="red";
            oSession.utilDecodeResponse();
            var body = oSession.GetResponseBodyAsString();
            var string = readFile("D:\\xxxx.txt");
            var index = body.indexOf('(');
            var b = body.slice(0, index);
            body = b +string ;
            
            oSession.utilSetResponseBody(body);
        }
        
}

 

说明:

1、 Scripting.FileSystemObject 或 ADODB.Stream 都可以对文件进行处理,但是如果要处理UTF-8编码的,只能用ADODB.Strea

2、OnBeforeResponse 主要是在请求返回前的处理,代码实现的功能是截取接口原有响应的“(” 之前的字符串和文件的mock拼接输出成新的返回。

参考的链接:

1、http://codeplanet.me/archives/2014/08/read-utf-8-text-file-in-asp/

2、https://blog.csdn.net/u013948858/article/details/61926251

你可能感兴趣的:(动态mock接口返回)