使用Mock.js生成前端测试数据


Posted in Javascript onDecember 13, 2020

Mock.js是一个模拟数据生成器,可以让前端独立于后端进行开发。如果你正在开发一个前端页面,可是后台还没有完成供你调用的Api,并且数据格式已经确定,那么你就可以使用Mock.js模拟相关的接口,生成假数据来查看页面效果。Mock.js的功能:生成随机数据,拦截 Ajax 请求。

参考文档:https://github.com/nuysoft/Mock/wiki/Getting-Started

语法规范:https://github.com/nuysoft/Mock/wiki/Syntax-Specification

安装

npm install mockjs

创建模拟Api,拦截Ajax请求,返回测试数据

//模拟后台
  Mock.mock('http://api.com', {
    "user|5-10": [{
      'name': '@cname',  //中文名称
      'age|1-100': 100,  //100以内随机整数
      'birthday': '@date("yyyy-MM-dd")', //日期
      'city': '@city(true)'  //中国城市
    }]
  });

发送ajax请求

//JQuery方式
  $.ajax({
    url: 'http://api.com',
    dataType: 'json'
  }).done(function(data, status, xhr) {
    console.log(
      JSON.stringify(data, null, 4)
    )
  });
  //原生ajax方式
  function myajax(url) {
      if (window.XMLHttpRequest) {
        ajax = new XMLHttpRequest();
      } else if (window.ActiveXObject) {
        try {
          ajax = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
          try {
            ajax = new ActiveXObject("Microsoft.XMLHTTP");
          } catch (e) {}
        }
      }
      if (!ajax) {
        window.alert("不能创建XMLHttpRequest对象实例.");
        return false;
      }
      ajax.open("GET", url, true);
      ajax.send(null);
      ajax.onreadystatechange = function() {
        if (ajax.readyState == 4 && ajax.status == 200) {
          console.log(ajax.responseText);
        }
      }
    }

  myajax('http://api.com');

查看响应

{
  "user": [
    {
      "name": "锺丽",
      "age": 17,
      "birthday": "1983-11-01",
      "city": "内蒙古自治区 赤峰市"
    },
    {
      "name": "陈艳",
      "age": 25,
      "birthday": "1973-07-10",
      "city": "河南省 驻马店市"
    },
    {
      "name": "冯霞",
      "age": 59,
      "birthday": "2010-10-28",
      "city": "澳门特别行政区 离岛"
    },
    {
      "name": "贾秀英",
      "age": 63,
      "birthday": "1973-01-22",
      "city": "新疆维吾尔自治区 伊犁哈萨克自治州"
    },
    {
      "name": "周勇",
      "age": 34,
      "birthday": "1985-05-21",
      "city": "湖南省 衡阳市"
    }
  ]
}

示例

// 使用 Mock
var Mock = require('mockjs')

/**
 * 
 * 数据模板
 * 属性名|生成规则: 属性值
 */
var data = Mock.mock({
  // 属性 list 的值是一个数组,其中含有 1 到 10 个元素
  'list|1-10': [{
    // 属性 id 是一个自增数,起始值为 1,每次增 1
    'id|+1': 1,
    'name': '@FIRST'
  }]
})

// 输出结果
console.log(JSON.stringify(data, null, 4))

运行结果

{
    "list": [
        {
            "id": 1,
            "name": "Larry"
        },
        {
            "id": 2,
            "name": "Edward"
        },
        {
            "id": 3,
            "name": "Jessica"
        },
        {
            "id": 4,
            "name": "William"
        },
        {
            "id": 5,
            "name": "Christopher"
        },
        {
            "id": 6,
            "name": "Michael"
        },
        {
            "id": 7,
            "name": "Susan"
        },
        {
            "id": 8,
            "name": "Shirley"
        },
        {
            "id": 9,
            "name": "Angela"
        },
        {
            "id": 10,
            "name": "George"
        }
    ]
}

到此这篇关于使用Mock.js生成前端测试数据的文章就介绍到这了,更多相关Mock.js生成测试数据内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
jQuery实现仿美橙互联两级导航菜单的方法
Mar 09 Javascript
asp.net中oracle 存储过程(图文)
Aug 12 Javascript
javascript数据类型验证方法
Dec 31 Javascript
JS实现支持Ajax验证的表单插件
Mar 24 Javascript
jQuery文字横向滚动效果的实现代码
May 31 Javascript
js判断checkbox是否选中个数的方法(超简单)
Aug 19 Javascript
JavaScript简单计算人的年龄示例
Apr 15 Javascript
Vue 页面跳转不用router-link的实现代码
Apr 12 Javascript
JS中通过url动态获取图片大小的方法小结(两种方法)
Oct 31 Javascript
简单了解JavaScript异步
May 23 Javascript
Vue使用Clipboard.JS在h5页面中复制内容实例详解
Sep 03 Javascript
如何在postman测试用例中实现断言过程解析
Jul 09 Javascript
javascript实现滚轮轮播图片
Dec 13 #Javascript
swiper实现导航滚动效果
Dec 13 #Javascript
swiperjs实现导航与tab页的联动
Dec 13 #Javascript
Vue实现简单购物车功能
Dec 13 #Vue.js
javascript前端实现多视频上传
Dec 13 #Javascript
vue使用element-ui实现表单验证
Dec 13 #Vue.js
vue+element实现动态加载表单
Dec 13 #Vue.js
You might like
PHP4和PHP5性能测试和对比 测试代码与环境
2007/08/17 PHP
PHP捕获Fatal error错误的方法
2014/06/11 PHP
ThinkPHP的L方法使用简介
2014/06/18 PHP
使用PHP+MySql+Ajax+jQuery实现省市区三级联动功能示例
2017/09/15 PHP
lnmp安装多版本PHP共存的方法详解
2018/08/02 PHP
使用tp框架和SQL语句查询数据表中的某字段包含某值
2019/10/18 PHP
PHP与Web页面交互操作实例分析
2020/06/02 PHP
JavaScript脚本性能的优化方法
2007/02/02 Javascript
基于jquery的给文章加入关键字链接
2010/10/26 Javascript
js window.onload 加载多个函数和追加函数详解
2014/01/08 Javascript
js点击button按钮跳转到另一个新页面
2014/10/10 Javascript
jQuery动态背景图片效果实现方法
2015/07/03 Javascript
深入浅析JavaScript函数前面的加号和叹号
2016/07/09 Javascript
Bootstrap实现带动画过渡的弹出框
2016/08/09 Javascript
web 屏蔽BackSpace键实例代码
2016/12/24 Javascript
微信小程序 wx.login解密出现乱码的问题解决办法
2017/03/10 Javascript
Javascript封装id、class与元素选择器方法示例
2017/03/13 Javascript
jQuery+ajax读取json数据并按照价格排序示例
2018/03/28 jQuery
使用Vue.js 和Chart.js制作绚丽多彩的图表
2019/06/15 Javascript
vue-cli基础配置及webpack配置修改的完整步骤
2019/10/20 Javascript
vue+vant使用图片预览功能ImagePreview的问题解决
2020/04/10 Javascript
JavaScript实现与web通信的方法详解
2020/08/07 Javascript
python 控制语句
2011/11/03 Python
使用python为mysql实现restful接口
2018/01/05 Python
Python3多进程 multiprocessing 模块实例详解
2018/06/11 Python
自定义django admin model表单提交的例子
2019/08/23 Python
django教程如何自学
2020/07/31 Python
详解pyqt5的UI中嵌入matplotlib图形并实时刷新(挖坑和填坑)
2020/08/07 Python
通过代码实例了解Python sys模块
2020/09/14 Python
电气工程及其自动化学生实习自我鉴定
2013/09/19 职场文书
成人大专自我鉴定范文
2013/10/19 职场文书
合同协议书格式
2014/04/18 职场文书
房屋转让协议书
2014/10/18 职场文书
2014年妇幼卫生工作总结
2014/12/09 职场文书
介绍信格式样本
2015/05/05 职场文书
《云雀的心愿》教学反思
2016/02/23 职场文书