一. 一些尴尬前端的业务场景
在我的工作经验里,须要期待后端童鞋配合我的情景大略有以下几种:
a. 咱们跟内部有我的项目单干,须要调用到第三方接口。
个别这种状况下,商务那边谈合同,走流程,等第三方审核,咱们这边会间接开始开发,而这个时候还没有内部接口能够应用;或者是合同都谈妥了,然而第三方对接的工作人员排期还没有排到。总之是须要等。
b. 流动抢节点上线
一个比拟赶时间节点(如七夕,双十一)的流动需要下来,前后端同时开发,后端还没有开发完接口能够调试。
c. 须要调用的接口很简单。
原本我只须要一个简略的返回,但因为各种历史起因和业务宰割等起因须要间接调用 N 个不同的简单接口,导致这部分工作量十分大消耗工夫很多,但又没有很大的价值。
这个时候我就偏差于抉择 mock,联调时就做得毛糙一点,而后等进入测试阶段,让测试同学给我裸露问题(测试童鞋请原谅我偷懒 hahah)
当初给前端 mock 的软件也有很多,大家本人挑本人适合的就好。
其实 mock 工具都满足的需要都大同小异,关键在于可能模拟出一些业务场景外面具体的细节,细节缩小你在反复的事件上破费的工夫。
我集体当初用的是 apifox(www.apifox.cn),比拟起来长处是它能仿造出比拟真切的业务数据,我不必再去二次调整。
细节上节俭的工夫每天要是认真去算,也有一两个小时的,省下来就是能提前上班的时长。
我这里只写一些我尝试过的在 Apifox 上 mock 数据的省时小技巧。
二. 省时提效小 tips
tips1:罕用的返回参数封装成一个数据模型,用到间接填。
比方一个音乐软件,最罕用到的返回数据可能是歌手数据和歌曲数据。
歌手数据包含:歌手头像,歌手姓名,性别,热门歌曲 50 首等信息;
歌曲数据包含:歌曲名称,大小,歌曲链接,专辑封面,所属歌手,歌词文件等信息。
如果每次设置返回值都须要反复设置上述字段,那么麻烦又耗时。
这时候能够将罕用参数别离封装成一个数据类型,填返回值的时候间接填进去,这样接口返回就能返回相应的字段了。
tips2:数据采纳高仿真数据,防止数据类型和显示的相干 bug
之前我本人造假数据有时候会疏忽了格局,只填数字或轻易打几个中文字符填充,这样容易产生不必要的谬误。
一是返回的数据会有格局校验,不合乎的会报错,这时再回头批改节约了工夫;
二是不合乎数据结构的展现也可能会出异样,如果后续还要用这个数据进行解决也会妨碍程序的失常运行。
别的软件没怎么细用我没法具体开展说。如果大家是用 apifox 这个软件来 mock 数据的话,它在返回数据类型那里提供了很多罕用的数据类型以供填充。
大家在造数据时能够依据本人的业务类型造出更仿真的数据进去。
造数据实际上很麻烦又费时间。一般的如中文姓名的还好说,如果要造 URL,邮编,16 进制色值,域名,身份证号我常常得去检索一下数据规定能力造。
个别我是在这个软件填完返回参数后再进一步抉择某类数据,apifox 会主动生成合乎相应数据结构要求的数据进去。
它能够反对根底的文本,身份证,ip 地址,url 这类数据也能仿造进去。
举个例子:我在返回值中别离设置了下列数据类型:
返回值数据如下,进去的是能用的“真”数据了。
tips3:边界场景给接口“打暗号”调试
apifox 提供了一个高级 mock 性能:当用户在申请参数中填写的值合乎特定的条件的时候,接口会返回特定的值。
我个别用这个性能来做边界场景的测试,比如说设置申请参数的值为 none 让接口返回空值;或者测试某个字段在各种长度下 UI 的体现是否失常。
tips4:错误码应用枚举类型,调试异样场景的兼容
另外有时候咱们前端须要对后端返回的错误码进行兼容解决或者给到用户相干提醒。
调试这个性能的时候我有一个比拟取巧的形式是利用 response 参数设置里的高级设置。
将错误码以枚举值的模式填进去。测试当后端返回不同的错误码类型时,前端是否有相应的反馈。
tips5:有业务束缚的设置更精准的返回值
在 mock 数据上,除了数据类型自身的束缚,还存在着业务束缚。
有时候尽管返回的数据类型是咱们要的,合乎数据格式了,但还可能不合乎咱们理论的业务场景。
举例:某个曲库里只有 50000 张 album,但 album 返回值设置了 integer,导致每次返回可能会超出曲库 ID 下限而返回异样值。但我是须要返回的货色来执行进一步操作的,我须要它失常返回。
此时可进入高级设置,设置好返回值的数值范畴,从而使得返回的数据能合乎咱们的调试要求。
这些尽管是很小的性能点,但的确在理论业务里能给大家节俭掉不少工夫。
目前 apifox 这个软件我只用了 mock 性能,所以就先分享这么多,后续有其余能够提高效率省时省力的小 tips 我再分享给大家。
如果想下载的话能够间接去他们官网 www.apifox.cn,软件目前还是收费的,间接下载就能用了。