Yapi平台之Mock服务

一.Mock介绍

YApi的 Mock 功能可以根据用户的输入接口信息如协议、URL、接口名、请求头、请求参数、返回数据(返回数据)生成 Mock 接口,这些接口会自动生成模拟数据,创建者可以自由构造需要的数据。mock模拟数据基于mock.js。

Mock.js 是一款模拟数据生成器,旨在帮助前端攻城师独立于后端进行开发,帮助编写单元测试。提供了以下模拟功能:

l 根据数据模板生成模拟数据

l 模拟 Ajax 请求,生成并返回模拟数据

l 基于 HTML 模板生成模拟数据

二.简单mock一下

进入项目,选择并点击某接口

  1. 【预览】中可看到该接口的mock地址(mock地址解析:YApi平台网址 + mock + 您的项目id + 接口实际请求path):


    image.png
  2. 【编辑】中请求参数,返回参数可以编辑mock数据,可以写死或者使用mock占位符:


    image.png

    可以预览返回数据效果(其中的mock占位符被随机数据替换):


    image.png
  3. 【运行】页面可以看到里面已经为我们创建好了随机请求参数:


    image.png

    点击POST后面的下拉框添加环境配置,将mock地址配置到环境中


    image.png

    image.png
  4. 选择配置的mock环境,点击【发送】


    image.png

    此时的返回数据中的值就是接口编辑页面中设置的mock数据,其中mock占位符被随机数替代。

三.高级Mock

很多时候需要根据不同的请求参数返回不同的响应数据,可以使用高级Mock中的期望或自定义脚本来实现。
以新网项目中的联合登陆接口为例。后台逻辑为如果用户已开户则返回数据中"openAccount": true,如果未开户"openAccount": false。
接口的输入参数有:mobile,idCard,userRealName。可以设置输入userRealName=’哈哈’时为已开户条件,返回"openAccount": true。为其他值时均为未开户的情况,返回"openAccount": false。下面分别用期望和脚本两种方式实现:

  1. 期望
    基本信息
  • 期望名称:给此条期望命名
  • IP 过滤:请求的 IP 是设置的地址才可能返回期望。默认 IP 过滤关闭,任何 IP 地址都可能返回期望。
  • 参数过滤:请求必须包含设置的参数,并且值相等才可能返回期望。参数可以在 Body 或 Query 中。
    响应
  • HTTP Code:期望响应的 HTTP 状态码
  • 延时:期望响应的延迟时间
  • HTTP 头:期望响应带有的 HTTP 头
  • 返回 JSON:期望返回的 JSON 数据
    (1)添加期望:联合登陆-已开户,参数过滤userRealName=哈哈。


    image.png

    image.png

    (2)再次添加一个期望:联合登陆-未开户


    image.png

    image.png

    编辑后,使列表中的mock记录开启状态
    image.png

    此时回到【运行】页面,模拟发送两种不同的请求,可看到返回不同的响应:

    联合登陆-已开户:


    image.png

    联合登陆-未登陆:
    image.png
  1. 自定义脚本
    请求
  • header 请求的 HTTP 头
  • params 请求参数,包括 Body、Query 中所有参数
  • cookie 请求带的 Cookies
    响应
  • mockJson 接口定义的响应数据 Mock 模板
  • resHeader 响应的 HTTP 头
  • httpCode 响应的 HTTP 状态码
  • delay Mock 响应延时,单位为 ms
  • Random Mock.Random 方法,可以添加自定义占位符
    选择【脚本】,开启脚本,如下配置等同于期望中的配置


    image.png

    同样可以在运行中测试一下返回值。在这里要注意的是当期望和脚本同时生效的时候,期望的优先级>脚本,即参数条件一致的情况下优先返回期望中配置的响应数据。

四.Mock服务实际演练

还是以新网银行项目为例,结合app中的H5页面来演示一下。

  1. 修改nginx配置
    148服务,vim /usr/local/nginx/conf/conf.d/test-callback.jianlc.com443.conf
    修改/xw的proxy_pass为mock服务url。(原配置为:http://10.103.27.56:9302/)

    image.png

    配置完成后,进入nginx的sbin目录,执行./nginx -s reload 重新加载配置文件。

  2. 此时即可登陆app,点击季得利产品进入已投资或未投资首页,即可看到页面上显示返回的mock数据,下面是已投资首页展示:


    image.png
  3. 点击【存入/取出】按钮,跳转联合登陆页面,输入姓名和身份证号,点击【下一步】区分三种情况:
    (1) 当前用户已开户,跳转到指定链接;
    (2) 输入另外一个已开户用户信息,提示报错信息;
    (3) 未开户,跳转到开户页面
    根据不同情况编辑三种期望,实现不同逻辑跳转:


    image.png

    页面根据不同的参数请求响应,结果如下:
    (1)第一种情况,mock数据如下:


    image.png

    前端操作:
    image.png

    image.png

    (2)第二种情况,mock数据如下:
    image.png

    前端操作:
    image.png

    image.png

    (3)第三种情况,mock数据如下:


    image.png

    前端操作如下:
    image.png

    image.png
  4. 其他接口同样根据不同参数配置不同响应,不再详述,下面mock整个开户流程(正常流程):


    image.png

    image.png

    image.png

参考:
yapi官网教程:<u>https://hellosean1025.github.io/yapi/documents/index.html</u>
Mock.js的详细内容参考:<u>http://mockjs.com/0.1/#natural</u>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,847评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,208评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,587评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,942评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,332评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,587评论 1 218
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,853评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,568评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,273评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,542评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,033评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,373评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,031评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,073评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,830评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,628评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,537评论 2 269