# Mock数据管理

# 概念

数据

保存Mock数据时每个请求和响应保存为一条数据(mock data)。

数据组

一个目录下可以保存多条mock数据,或多个数据目录。我们把这种目录称作数据组(Group)

Mock数据仓库

一个包含若干数据组或Mock数据的文件夹。

Lyrebird以此处作为根目录加载所有的Mock数据。

每个数据仓库会默认生成一个根,名称为$。

标签

可以为数据组分配标签,可用于数据组展示和搜索。🔍如何使用标签?

命中规则

每条数据有且仅有一组命中规则,作为判断一条请求是否可以被当前数据mock的条件。🔍如何使用命中规则?

# 存储

  • mock数据默认存储于 ~/.lyrebird/mock_data/personal 目录下。此目录即mock数据仓库。

  • 也可以在Lyrebird启动时通过 --data 重新指定一个mock数据仓库。

    lyrebird --data /your/data/dir
    
  • 在启动过一次Lyrebird之后也可以通过修改 ~/.lyrebird/conf.json 来配置mock数据仓库的默认路径。

    {
        "version": "0.10.5",
        "proxy.filters": [],
        "proxy.port": 4272,
        "mock.port": 9090,
        "mock.data": "{{current_dir}}/mock_data/personal"
    }
    

    通过修改mock.data来重新定义mock数据仓库

# 操作

# 数据组

# 快捷操作

  • :激活

  • :删除

# 上下文菜单

  • 激活(Activate)

  • 删除 (Delete)

  • 复制 (Copy)

  • 粘贴 (Paste)

  • 新建数据组 (Add group)

  • 新建mock数据 (Add data)

# 数据组属性

在左侧树形浏览窗选中数据组后,右侧详情页就会展示出数据组的属性。属性以key-value的形式存储,可在数据组属性中添加任意自定义的属性。

数据组默认包含以下属性:

key 说明 可编辑 可删除
id 数据组的唯一标识 False False
name 数据组的名称,可修改 True False
super_id 继承数据组的ID True False
label 数据组标签,可用于搜索 True False

此外,部分数据组属性会获得不同的展示外观:

  • 链接:属性的value中包含://时,会被识别为链接,并在属性值末尾出现二维码按钮,点击此按钮可查看链接的二维码。

  • 标签:属性的key为label时,会被识别为标签,点击按钮可在下拉菜单中查看标签,并可为当前数据组添加标签。🔍如何编辑标签?

# 冲突检查

选中数据组时,可以进行mock数据命中规则冲突检查。

该检查会显示命中规则相同或者互相包含的数据。

请注意处理检查结果,以免命中了错误的mock数据。

# 搜索

# 按name或id搜索

点击左侧文件树顶部的搜索按钮展开搜索弹框。搜索时支持输入数据组name和id。

未输入搜索词,或搜索词为空时,搜索结果默认展示当前Mock数据仓库中的全部数据组。点击搜索结果,搜索弹框自动关闭,并展示所点击的数据组。

# 按标签搜索

进入DataManager,点击左侧文件树顶部的标签按钮展开下拉菜单。选择菜单中的标签后,文件树将展示添加了所选标签的数据组。🔍如何新增标签?

# 命中规则

选中mock数据时,右侧详情页会显示数据详情。

Infomation页面中 rule字段是该条数据的命中规则。

在该数据被激活后,每个经过Lyrebird的请求,都会和这个规则进行匹配判断,如果匹配此规则,该数据就会被Lyrebird作为响应发回到客户端。

# request.url

该规则是一个用于匹配URL字符串的正则表达式。

例子

{
    "rule": {
        "request.url": "(?=.*/anything/DYoaLRmx)(?=.*argA=1)"
    }
}

该规则会匹配任何包含 "/anything/DYoaLRmx" 和 "argA=1" 的URL

# 标签

可以为数据组分配标签,标签可用于数据组展示和搜索。

进入DataManager,点击左侧文件树顶部的标签按钮展开下拉菜单,点击菜单底部的,展开标签弹窗。

在标签弹框中,点击右上角的可新增label。

也可编辑和删除已有的label。

# 在自动化测试中使用mock功能

  • 在自动化测试中,可以通过API控制Lyrebird激活数据。 实现每个测试使用不同的mock数据。

  • mock数据可存在于独立的git仓库中,也可以和测试代码存储在一个仓库。

  • 启动Lyrebird时,指定mock数据所在目录后即可开始使用。

    lyrebird --data /your/mock/data/dir
    
  • API详见接口

# 通过Git管理mock数据

Mock数据目录结构如上图所示

  • .lyrebird_prop 是数据关系文件
  • 其他是数据文件

.lyrebird_prop 文件结构如上图所示

  • 每个数据或数据组独占一行
  • 有冲突时可以很直观的通过git diff处理