mock模拟接口测试 vue_Easy Mock以及Vue+Mock.js模拟数据

Easy Mock以及Vue+Mock.js模拟数据

一、Mock.js简介

Mock.js是一个可以模拟后端数据,也可以模拟增删改查操作的js库

基础语法规范

数据模板中的每个属性由 3 部分构成:属性名、生成规则、属性值:'name|rule': value

语法规则

说明

'name|min-max': string

通过重复 string 生成一个字符串,重复次数大于等于 min,小于等于 max

'name|count': string

通过重复 string 生成一个字符串,重复次数等于 count

'name|min-max': number

生成一个大于等于 min、小于等于 max 的整数,属性值 number 用来确定类型

'name|+1': number

初始值为 number,以后每次请求在前面的基础上+1

'name|min-max.dmin-dmax': number

生成一个浮点数,整数部分大于等于 min、小于等于 max,小数部分保留 dmin 到 dmax 位

'name|1': boolean

随机生成一个布尔值,值为 true 的概率是 1/2,值为 false 的概率同样是 1/2

'name|count': object

从属性值 object 中随机选取 count 个属性

'name|min-max': object

从属性值 object 中随机选取 min 到 max 个属性

'name|1': array

从属性值 array 中随机选取 1 个元素,作为最终值

'name|+1': array

从属性值 array 中按照顺序选取 1 个元素,作为最终值

'name|count': array

通过重复属性值 array 生成一个新数组,重复次数为 count

'name|min-max': array

通过重复属性值 array 生成一个新数组,重复次数大于等于 min,小于等于 max

简单举例:

var arr=['aa','bb','cc'];

var obj={

'name':'MountainC44',

'old':'23',

'sex':'man'

};

//数据模版简单举例

{

'firstName|3':'xue',//重复fei这个字符串 3 次。

'lastName|2-5':'yangbo',//重复yangbo这个字符串 2-5 次。

'index|+1':0, //属性值自动加 1,初始值为 0

'age|20-30':25,//生成一个大于等于 20、小于等于 30 的整数,属性值 25 只是用来确定类型

'weight|100-120.2-5':110.24,//生成一个浮点数,整数部分大于等于 100、小于等于 120,小数部分保留 2 到 5 位。

'likeMovie|1':Boolean,//随机生成一个布尔值,值为 true 的概率是 1/2,值为 false 的概率同样是 1/2。

'friend1|1':arr,//从数组 arr 中随机选取 1 个元素,作为最终值。

'friend2|+1':arr,//从属性值 arr 中顺序选取 1 个元素,作为最终值

'friend3|2-3':arr,//通过重复属性值 arr 生成一个新数组,重复次数大于等于 2,小于等于 3。

'obj1|2':obj,//从属性值 obj 中随机选取 2 个属性

'obj2|1-2':obj,//从属性值 obj 中随机选取 1 到 2 个属性。

'regexp1':/^[a-z][A-Z][0-9]$/,//生成的符合正则表达式的字符串

}

//返回示例

{

'firstName':'xuexuexue',

'lastName':'yangboyangbo',

'index':0,

'age':28,

'weight':115.223,

'likeMovie':Boolean,

'friend1':'bb',

'friend2':'aa',

'friend3|2-3':['aa','bb','cc','aa','bb','cc'],

'obj1':{'name':'MountainC44','old':'23',},

'obj2':{'name':'MountainC44',},

'regexp1':'sC2',

}

数据占位符

//数据占位符使用

{

"string|1-2": "@string", //随机生成字符串

"integer": "@integer(10, 30)", //随机生成一个10~30之间的正整数

"float": "@float(60, 100, 2, 2)", //随机生成浮点数,参数分别为整数部分最小值和最大值、小数部分保留最小位数和最大位数

"boolean": "@boolean", //随机生成boolean

"date": "@date(yyyy-MM-dd)", //按照格式随机生成时间

"datetime": "@datetime", //随机生成时间

"now": "@now", //当前时间

"url": "@url", //随机生成url字符串

"email": "@email", //随机生成邮箱

"region": "@region", //随机生成地区

"city": "@city", //随机生成城市

"province": "@province", //随机生成省会

"county": "@county", //随机生成一个(中国)县

"upper": "@upper(@title)", //把生随机成的标题全部转为大写

"guid": "@guid", //随机生成一个 GUID

"id": "@id", //随机生成一个 18 位身份证

"image": "@image(200x200)", //随机生成一个大小为200x200的图片链接

"title": "@title", //随机生成一句标题,其中每个单词的首字母大写

"cparagraph": "@cparagraph", //随机生成一段中文文本

"csentence": "@csentence", //随机生成一段中文文本

"range": "@range(2, 10)" //返回一个内容从2开始到9的整型数组

}

//返回示例

{

"string": "A0L^Z",

"integer": 16,

"float": 82.23,

"boolean": true,

"date": "1994-09-16",

"datetime": "1994-10-22 02:30:32",

"now": "2018-10-21 10:31:00",

"url": "mailto://tfoyemmcy.as/ppm",

"email": "f.lqdfggdy@wulqhmm.com",

"region": "华南",

"city": "茂名市",

"province": "澳门特别行政区",

"county": "和平区",

"upper": "LGHV FJV FDHNA ZJQO MKQEPMY BYVPYMU JRUPL",

"guid": "EdAD386E-eCB3-e054-fBd3-D4BCd58bF2Dd",

"id": "630000201810081550",

"image": "http://dummyimage.com/200x200",

"title": "Powol Qhycsib Nvwf Bmiuvcek Ioisiu Sxdmrpdip",

"cparagraph": "又平你大万被然红义她之影此属且。定圆光半条社已上实参规持备特战划。打第一在感革会属利小年往。认七单边济火国风风速次支比容争连劳。目叫织新百却又处思只名发这实。什济安这自空东认十需打现军应。",

"csentence": "火事必该验导回声市然第别程确条状。",

"range": [2,3,4,5,6,7,8,9]

}

Mock对象方法简介

Mock.mock( rurl?, rtype?, template|function( options ) ) :根据数据模板生成模拟数据,拦截指定rtype类型的url为rurl的ajax请求,返回数据模板中的模拟数据或执行回掉方法

Mock.setup( settings ):配置拦截 Ajax 请求时的行为。支持的配置项有:timeout,指拦截的 Ajax 请求的响应时间,单位是毫秒

Mock.Random.xxx():Mock.Random对象提供的方法在数据模板中称为占位符,书写格式为 @占位符(参数 [, 参数])

Mock.valid( template, data ):校验真实数据 data 是否与数据模板 template 匹配

Mock.toJSONSchema( template ):把 Mock.js 风格的数据模板 template 转换成 JSON Schema

二、Easy Mock

Easy Mock是一个可视化,并且能快速生成 模拟数据的持久化服务,支持在线访问和本地部署

Easy Mock 引入了Mock.js,所以支持Mock.js语法规范

创建Easy Mock项目

使用Easy Mock 的Sagger特性快速生成Mock接口

查看Mock接口进行测试

在线测试

三、Vue+Mock.js模拟数据

npm安装mockjs ,创建mock.js文件

编写mock.js文件,main.js文件引入

//mock.js文件

const Mock = require('mockjs');

const data = Mock.mock({

// 属性 list 的值是一个数组,其中含有 1 到 10 个元素

'foods|10-50': [{

name: '@ctitle(2,10)',

img: "@image('600x600',#b7ef7c)",

brief: '@csentence(1,50)',

'price|0-20.0-2': 1,

num: 0,

minusFlag: true,

time: '@time',

'peisongfei|0-100.0-2': 1,

'limit|0-50': 1,

}],

'sales|10-50': [{

// 属性 id 是一个自增数,起始值为 1,每次增 1

name: '@ctitle(2,10)',

img: "@image('600x600',#b7ef7c)",

brief: '@csentence(1,50)',

'price|0-100.0-2': 1,

num: 0,

minusFlag: true,

time: '@time',

'peisongfei|0-100.0-2': 1,

'limit|0-100': 1,

}],

});

Mock.mock('/api/data', data); //对url为/api/data的ajax请求进行拦截返回data假数据

Mock.mock('/api/data1', () => ({

data,

}));

//main.js文件 引入mock.js

require('./mock.js');

//vue组件使用axios发送ajax请求

created() {

this.$axios.get('/api/data1').then((res) => {

console.log(res.data);

});

this.$axios.get('/api/data').then((res) => {

console.log(res.data);

});

}

查看mock接口(在浏览器调试工具Network中不会有http请求,因为已经被拦截)

四、参考链接

水平有限,有写的不对的地方还请各位小伙伴多多指点,共同学习进步😋

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/505919.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

excel转html中文乱码,英文系统中Excel中文乱码问题

我是先用Gridview导出,然后再转换格式,部分代码如下StringWriter sw new StringWriter();HtmlTextWriter htw new HtmlTextWriter(sw);GV.RenderControl(htw);File.WriteAllText(path"temp", sw,System.Text.Encoding.UTF7);Excel.Applicati…

jsbridge原理_React Hooks 原理与最佳实践

1. 前言React Hooks 是 React 16.8 引入的新特性,允许我们在不使用 Class 的前提下使用 state 和其他特性。React Hooks 要解决的问题是状态共享,是继 render-props 和 higher-order components 之后的第三种状态逻辑复用方案,不会产生 JSX 嵌…

html小圆图堆叠轮播,每次移一张图片的无缝轮播图

my动画轮播图*{list-style: none;margin: 0px;padding: 0px;}.carousel{width: 530px;height: 280px;overflow: hidden;position: relative;}.carousel .imgList{width: 9999px;position: absolute;}.carousel .imgList>li{float: left;}.carousel .imgList>li>img{wi…

mfc绘制bezier b样条三种曲线_生存曲线(二):SPSS和Origin绘图教程及相关问题

上期生存分析推送后,有粉丝在后台问:有发生率的情况,为什么要做生存曲线分析?举个例子:临床试验中,共招募30位胃腺癌患者,均分为3组,分别使用了A/B/C三套不同的治疗方案,…

8位可控加减法电路设计_高级工程师:相同的地线GND,却有不同的电路设计含义...

问一个简单而又很难回答的电路问题:电路中的地线GND,它的本质是什么?工程师,在研发设计一个电路项目时,一般会经历三个阶段:电路项目PCBA板1,项目方案论证项目方案论证,是在项目前期…

word刷子刷格式_Excel技巧—开始菜单之格式刷六大功能

点赞再看,养成习惯千里之行,始于足下今天我们主要学习的是“第一区块-剪贴板”中的“格式刷”。“格式刷”主要将一个对象的颜色、字体样式、字体大小、边框样式等所有格式复制到目标对象上,我们可以把它理解为格式的复制粘贴。说到“格式刷”…

html/css题库,DIV+CSS题库

CD2、在CSS语言中下列哪一项是"左边框"的语法?(C )A、border-left-width:B、border-top-width:C、border-left:D、border-top-width:3. 选出你认为最合理的定义标题的方法( C )A. 文章标题B.文章标题C.文章标题D. 文章标题4、在CSS语言中下列哪一项的适用…

紫金计算机网络,南京理工大学紫金学院《计算机网络技术》考试复习试题试题(含答案解析)2...

一、选择题:(每题2分,共40分)1.在TCP/IP参考模型中,TCP协议工作在()。A、应用层B、传输层C、互联网层D、网络接口层2.下列()是合法的E-mail地址。A、mnetworkhttp://www.doczj.com/doc/fe7e6e475ebfc77da26925c52cc58b…

go语言和python结合_Go+Python双语言混合开发-第1章 【阶段一:Go语言基础】

1-1 GoPython双语言混合开发-课程导学 (11:35)1-2 课程资源获取方式 - 非常重要!!! (06:07)1-3 课程中需要用到的开发环境介绍 (03:47)1-4 windows中安装centos7虚拟机 (19:16)1-5 xshell的安装和使用 (04:14)1-6 git的安装和配置 (06:22)1-7…

cwinthread*线程指针怎么销毁结束_最新版Web服务器项目详解 01 线程同步机制封装类...

点 击 关 注 上 方"两猿社"设 为"置 顶 或 星 标",干 货 第 一 时 间 送 达。互 联 网 猿 | 两 猿 社基础知识RAIIRAII全称是“Resource Acquisition is Initialization”,直译过来是“资源获取即初始化”.…

您的计算机无法访问dota2,解决win7系统DOTA2无法连接至Steam网络的设置方法

随着电脑的使用率越来越高,我们有时候可能会遇到win7系统DOTA2无法连接至Steam网络问题,如果我们遇到了win7系统DOTA2无法连接至Steam网络的问题,要怎么处理win7系统DOTA2无法连接至Steam网络呢?接下来给大家带来win7系统DOTA2无法…

根据经纬度计算范围_高中地理必修一二三思维导图+计算公式全汇总!能用3年...

必修一必修二必修三计算公式1.经纬度计算:经度差与地方时差算经度——地方时每相差1小时,经度相差1;纬差法与正午太阳高度算纬度——正午太阳相差多小,纬度相差多少;北极星的仰角即地平高度等于当地地理纬度;经纬线上长度算经纬度——1经线长…

linux 系统 可视化工具实时监控_Linux上的实时监控平台-你需要这样做

应朋友们要求,介绍上Linux系统下的实时监控平台,在上次提到了glances,它提供了较多的监控指标,那如果我们要看历史数据呢?某一时间段的回放呢?显然glances是做不到的。因此,实时监控平台就应运而…

职称类计算机论文,计算机类职称论文发表(2)

计算机类职称论文发表篇二基于计算机通信网络的采矿传输技术【摘 要】煤矿开采是人类合理开发自然资源的主要途径,对国民产业经营收益水平也有很大的影响。信息科技改革指导下,分析了基于计算机通信网络的采矿信息传输方案,指导了煤炭开采新模…

linux 普通用户touch权限不够_Linux 开启指令

简单指令1.1、 ls 指令语法1:# ls [路径]表示列出指定路径下的文件夹和文件 的名字,如果路径没有指定则列出当前路径下的(list)列如:在root用户的家目录中输入ls命令,则会看到以下的效果:要求列…

5、this调用语句必须是构造函数中的第一个可执行语句_ES6中的Promise和Generator详解...

简介ES6中除了上篇文章讲过的语法新特性和一些新的API之外,还有两个非常重要的新特性就是Promise和Generator,今天我们将会详细讲解一下这两个新特性。Promise什么是PromisePromise 是异步编程的一种解决方案,比传统的解决方案“回调函数和事件”更合理和…

华中师范大学本科生计算机课教师,华中师范大学第八届大学生计算机设计大赛的通知...

为了激发大学生学习计算机知识和技能的兴趣和潜能,培养其创新能力和团队合作意识,以及运用信息技术解决实际问题的综合实践能力,切实提高计算机教学质量,教育部高等学校计算机类专业教学指导委员会、软件工程专业教学指导委员会、…

labelimg如何调整框的颜色_如何制作摄影集(下)

如果说上篇讲的是有关排版设计,那么下篇就是有关具体实施了。如果你正对作品集的制作跃跃欲试,那么下篇的内容仍旧非常重要,而且非常干货。 目录:软件推荐(Id)字体推荐纸张选择打印方式(激光、喷…

highcharts 显示平均值数值_拼多多评价多久能显示,有什么出评价技巧吗?

很多商家都知道,拼多多的评价,有时不一定会在买家评价后就立马出现,一般得等一段时间才会显示,,这个时间一般不会很久,24小时之内,评论一般在审核通过后就会展示出来。如果长时间不展示&#xf…

辽宁省大学生计算机系统与程序设计竞赛,2019CCF大学生计算机系统与程序设计竞赛(华东分赛区)在我校顺利举办...

5月18日,2019CCF大学生计算机系统与程序设计竞赛(CCSP)华东分赛区比赛及颁奖会在我校举办。今年是CCSP大赛首次采用区域分赛区的比赛,共分为7个赛区,包括东北区(哈尔滨工业大学承办),华北区(北京邮电大学承办)、华东区(南京航空航…