yapi入门之使用mock(一)

官方文档地址:https://hellosean1025.github.io/yapi/documents/adv_mock.html

下文为我个人的见解,如有错误,欢迎指出。

 

为什么要使用mock?

(1) 最重要的一点:团建可以并行工作。

        1、现在大部分项目都是前后端分离的了,这就需要提前协商定义好接口,方便异步开发。只要前后端协议好接口规范以及数据结构,就可以各自干自己的活儿了,只有在项目的联调阶段才需要沟通,大大的降低了沟通成本。

        2、对于后端来说,如果两个接口之间有耦合,那么也可以通过mock来解决,只需要提前定义好接口规范以及数据结构即可。

        3、对于测试来说,编写自动化测试脚本过程中、或准备测试用例过程中,可以通过mock来解决。

(2)用于单元测试

        单元测试是最容易发现bug的测试,也是成本最低的测试(以上纯属个人见解),在对一个“单元”进行测试时,如果耦合了其他模块,而这个模块又没有开发完成时,可以使用mock来替代,而且最好是使用mock来替代,实现模块解耦。

(3)用于模拟不容易获取的资源

        在开发/测试过程中,有时候需要依赖某个资源,而这个资源有无法轻易获取到(如有墙等),可以通过mock解决这个痛点。

(3)用于隔离系统

        测试接口的过程中,某些请求会“污染”环境,如post请求会生成很多测试数据,delete请求会删除一些必要数据,可以通过mock来解决。

(5)解决一些接口限制

        有些系统不支持重复请求,或有访问访问频次限制。如不可重复支付,获取敏感信息的接口访问频次不可高于xx等。

 

使用mock

  • 方式一:json-schema 开启 json-schema 功能后,根据 json-schema 定义的数据结构,生成随机数据。

首先,我们建立一个简单的json-schema,如下图所示:

1、默认值:如果需要设置默认值,那么可以填入任意字符串,数据返回永远是设置的默认值。

2、基于mock.js占位符的mock,一些常用的占位符如下:

@integer(min?, max?)

返回一个随机的整数。

  • min:可选参数,整数最小值。
  • max:可选参数,整数最大值。

例:

@integer
//--> 1686805249110932
@integer(10,100)
//--> 26
 

@float( min?, max?, dmin?, dmax? )

返回一个随机浮点数。

  • min:可选,整数部分最小值。
  • max:可选,整数部分最大值。
  • dmin:可选,小数部分最小长度。
  • dmax:可选,小数部分最大长度。

例:

@float
//--> 1924364975802932.5
@float(60, 100, 2, 6)
//--> 68.1258

@string

返回随机字串,有如下几种使用方式:

@string
@string(length)
@string(pool, length)
@string(min, max)
@string(pool, min, max)

  • length: 字串长度
  • min: 字串最短长度
  • max: 字串最大长度
  • pool:表示字符池。如果传入 'lower'、'upper'、'number'或'symbol',表示从内置的字符池从选取。对应关系如下:
    • lower: "abcdefghijklmnopqrstuvwxyz"
    • upper: "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    • number: "0123456789"
    • symbol: "!@#$%^&*()[]"

例:

@string(6)
//--> kV(qj4
@string('upper',2,6)
//--> NJKU
@string('123abc!@#', 2,6)
//--> #ab!21

 

@url(protocol?, host?)

随机生成一个 URL。

  • protocol:指定 URL 协议。例如 http。
  • host:指定URL域名和端口号。

例:

@url('https', '123.sogou.com')
//--> https://123.sogou.com/ccdkttr
 

 

@ip

随机生成一个IP地址。

 

@timestamp

返回当前unix时间戳

 

@datetime(format?)

返回一个随机的日期和时间字符串。

  • format:生成的日期和时间字符串的格式。默认值为yyyy-MM-dd HH:mm:ss。

例:

@datetime()
//--> 1977-11-17 03:50:15
@datetime('y-M-d H:m:s')
//--> 02-4-23 2:49:40

@pick(arr)

从数组中随机选取一个元素,并返回。

例:

@pick(['this', 'is', 'picker', 'test'])
//--> picker

 

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值