Mock.js
什么是Mock.js
Mock.js入门
一、安装命令
cnpm install mockjs
二、模拟数据
让对象以字符串形式输出,数字2表示分隔的大小
JSON.stringify(data,null,2)
注意:mockjs中除了数字,都要用''
括起来
//mockjs入门
//1.导入模块
let mock = require("mockjs")
//2.通过mockjs工具类模拟产生:数组数据
let data = mock.mock({
'list':[{
'id':1,
'name':'zhangsan'
}]
})
console.log(JSON.stringify(data,null,2))
三、模拟5个数据
需求:生成列表数据,数据条数为5条。
'list|5'
//mockjs入门
//1.导入模块
let mock = require("mockjs")
//2.通过mockjs工具类模拟产生:数组数据
let data = mock.mock({
'list|5':[{
'id':1,
'name':'zhangsan'
}]
})
console.log(JSON.stringify(data,null,2))
数据模板定义规范DTD
定义属性的元素
属性名称 生成规则 属性值
传统定义数据
属性名:属性值
dtd规范生成模拟数据语法
属性名|生成规则:属性值
生成规则:不同类型的生成规则不同
'name|min-max': value
'name|count': value
'name|min-max.dmin-dmax': value
'name|min-max.dcount': value
'name|count.dmin-dmax': value
'name|count.dcount': value
'name|+step': value
一、数字类型
'name|min-max': value 属性的取值范围
'name|count': value 属性的取值
'name|min-max.dmin-dmax': value 属性的取值范围,dmin-dmax表示小数位数范围
'name|min-max.dcount': value 属性的取值范围,dcount表示小数位数
'name|count.dmin-dmax': value 属性的取值,dmin-dmax表示小数位数范围
'name|count.dcount': value 属性的取值,dcount表示小数位数
'name|+step': value 每生成一条数据+step的值
二、字符串类型
'name|min-max': value 属性值随机重复min-max次
'name|count': value 属性值重复count次
三、布尔类型
如果value为true
'name|min-max': value true出现的几率为min/min-max
'name|count': value true出现的概率=50%
四、对象类型
'name|min-max': value 随机从对象的属性中选择min-max个
'name|count': value 随机从对象的属性中选择count个
五、数组类型
'name|min-max': value 随机生成min-max个元素
'name|count': value 生成count个元素
数据占位符定义规范DPD
语法规则:
'属性名':'@占位符'
占位符
基本方法
图像方法
文本方法
名称方法
网络方法
地址方法
一、基本方法
1、@string(5)
生成5个字符
2、@integer(1,9999)
生成1-9999的随机数字
3、@data
生成随机日期
//1.导入模块
let mock = require("mockjs")
//2.通过mockjs工具类模拟产生:数组数据
let data = mock.mock({
'list|5':[{
'id':'@integer(1,9999)',
'name':'@string(5)',
'birthday':'@date'
}]
})
console.log(JSON.stringify(data,null,2))
二、图像方法
@image(100)
生成100*100的图片的地址
//1.导入模块
let mock = require("mockjs")
//2.通过mockjs工具类模拟产生:数组数据
let data = mock.mock({
'list|5':[{
'id':'@integer(1,9999)',
'name':'@string(5)',
'birthday':'@date',
'heading':'@image(100)'
}]
})
console.log(JSON.stringify(data,null,2))
三、文本方法
1、@title(2)
生成有2个单词的标题
2、@word(100)
生成有100个字符的正文
//1.导入模块
let mock = require("mockjs")
//2.通过mockjs工具类模拟产生:数组数据
let data = mock.mock({
'list|5':[{
'id':'@integer(1,9999)',
'name':'@string(5)',
'birthday':'@date',
'heading':'@image(100)',
'title':'@title(2)',
'content':'@word(100)'
}]
})
console.log(JSON.stringify(data,null,2))
四、名称方法
1、@first
生成firstname
2、@last
生成lastname
3、@name
生成整个名称,但与上面两个的组合不匹配
//1.导入模块
let mock = require("mockjs")
//2.通过mockjs工具类模拟产生:数组数据
let data = mock.mock({
'list|5':[{
'id':'@integer(1,9999)',
'name':'@string(5)',
'birthday':'@date',
'heading':'@image(100)',
'title':'@title(2)',
'content':'@word(100)',
'firstname':'@first',
'lastname':'@last',
'fullname':'@name'
}]
})
console.log(JSON.stringify(data,null,2))
五、网络方法
1、@email
2、@ip
3、@url
//1.导入模块
let mock = require("mockjs")
//2.通过mockjs工具类模拟产生:数组数据
let data = mock.mock({
'list|5':[{
'id':'@integer(1,9999)',
'name':'@string(5)',
'birthday':'@date',
'heading':'@image(100)',
'title':'@title(2)',
'content':'@word(100)',
'firstname':'@first',
'lastname':'@last',
'fullname':'@name',
'email':'@email',
'ip':'@ip',
'url':'@url'
}]
})
console.log(JSON.stringify(data,null,2))
六、地址方法
1、@region
2、@city
3、@county
//1.导入模块
let mock = require("mockjs")
//2.通过mockjs工具类模拟产生:数组数据
let data = mock.mock({
'list|5':[{
'id':'@integer(1,9999)',
'name':'@string(5)',
'birthday':'@date',
'heading':'@image(100)',
'title':'@title(2)',
'content':'@word(100)',
'firstname':'@first',
'lastname':'@last',
'fullname':'@name',
'email':'@email',
'ip':'@ip',
'url':'@url',
'region':'@region',
'city':'@city',
'county':'@county'
}]
})
console.log(JSON.stringify(data,null,2))
七、生成中文
在分隔符之前加c
1、@ctitle
2、@cword
3、@cfirst
4、@clast
5、@cname
EasyMock
在线文档:https://www.easy-mock.com/docs
在线使用EasyMock
一、进入地址:https://www.easy-mock.com,登录
二、点击右下角创建项目
注意:一个前端工程对应一个项目
三、进入项目,创建接口
四、编写接口
五、使用postman测试
六、同步swagger
1、点击右边设置
2、上传已经完成的文档,保存
3、同步Swagger
自建easymock
可以查看上传的文档