web前端自动接口扫描

第一次发博客,还请大家多多指教。

目前在做的项目是前后台分离的,使用wiremock造的数据,但是接口一般都是后台推动的(版本经理在后台那边)。很多次后台改动了接口往往没有告知前台,导致联调时候经常出现接口错误,而且很多时候各个接口之间有依赖关系,如果前面的接口没法测试后续的接口也没法进行。基于此,很有必要开发一套能够自动测试接口的方法。

直接上代码,testPortForConsole.js:

var postDatas = [
    {
        url : '/getStudents.do'  ,
        portName:'',
        description :'',
        data:{
            serviceName : "getStudents",
            class : "six",
            grade : "two"
        }
    },
    {
        url : "/getScore.do",
        portName:'',
        description :'',
        data:{
            serviceName : "getScore",
            studentID : "08070146",
            subject : "Math"
        }
    }
//这里每一个元素对应一个接口 ]; (function(){ localStorage.removeItem('success'); localStorage.removeItem('failed'); var send = function(url,param,portName){ $.ajax({ url : url, type: 'POST', data: JSON.stringify(param), dataType: 'application/json,text/plain.*/*' }) .success(function(data){ localStorage.setItem('success',localStorage.getItem('success') + portName + '接口返回成功|'); }) .error(function(data){ localStorage.setItem('failed',localStorage.getItem('failed') + portName + '接口返回失败|') ; throw portName + '接口返回失败'; }) }; for(var s = 0,len = postDatas.length;s < len;s++){ send(postDatas[s].url,postDatas[s].data, postDatas[s].portName); } })();

如果接口过多的话可以考虑使用grunt命令来从项目中合并各个下发的请求的mock数据,这样便于分模块维护和管理。

module.exports = function (grunt) {
    // 项目配置
    grunt.initConfig({
        pkg: grunt.file.readJSON('package.json'),
        concat: {
            options: {
                banner: '[\n',
                separator:',\n',
                footer:']',
                stripBanners:'true'
            },
            build: {
                src: 'src/**/*.json',
                dest: 'dest/dest.json'
            }
        }
    });
    grunt.loadNpmTasks('grunt-contrib-concat');
    grunt.registerTask('default', ['concat']);
}

这样直接在原有的项目中直接将testPortForConsole.js中的代码拷贝运行即可自动完成接口的扫描。扫描的结果都保存在localStorage中,通过如下方法可以得到

console.dir(localStorage.getItem('success').split('|'));
console.dir(localStorage.getItem('failed').split('|'));

新手求支持 ~_~.

 

posted @ 2015-05-27 20:55  西安ZJ  阅读(2251)  评论(0编辑  收藏  举报