zoukankan      html  css  js  c++  java
  • 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: '[
    ',
                    separator:',
    ',
                    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('|'));

    新手求支持 ~_~.

    学而时习之不亦悦乎。
  • 相关阅读:
    LINUX重启MYSQL的命令
    如何在linux下实现mysql数据库每天自动备份
    mysql 2013错误解决
    mysql按年度、季度、月度、周、日统计查询的sql语句
    MySQL 时间戳(Timestamp)函数
    jQuery 选择器大全总结
    使用Git的Push出现rejected
    js实现分页的几个源码,看完基本就懂了
    Get,Post请求中文乱码问题有效解决方法
    web应用中文乱码问题的原因分析
  • 原文地址:https://www.cnblogs.com/xianZJ/p/4534386.html
Copyright © 2011-2022 走看看