Optimized interactio of filter group. (#6) Optimized interactio of filter group. add unnamed group status
Optimized interactio of filter group. (#6)
Optimized interactio of filter group.
add unnamed group status
Tracking 是基于Lyrebird的插件,为移动端应用提供服务请求的数据分析及验证的功能
macOS
Python3.6及以上
pip3 install lyrebird-tracking
请求数据分析的应用场景比较广泛,以其中一种典型应用场景如客户端埋点的分析校验来进行示例
[ { "key1": "val1", "property1" : [ { "key2": "val2", "action": "view", "page": "detail_page" } ] } ]
{ "target": [ "abctest.com" ], "cases": [{ "name": "test case 1st", "selector": "$[?key1='val1'].property1[?key2='val2']", "asserts": [{ "field": "action", "schema": { "type": "string", "pattern": "view" } }, { "field": "page", "schema": { "type": "string", "pattern": "detail_page" } } ] }] }
若移动端发出符合预期的Request Data,如下
[ { "key1": "val1", "property1" : [ { "action": "view", "key2": "val2", "lab": { "good_id": 10001, "index": 5, "page_name": "detail_page101" }, "page": "detail_page" } ] } ]
Tracking会自动分析和校验,如图所示
若移动端发出不符合预期的Request Data,如其中action字段的值不符合预期”view”,如下
[ { "key1": "val1", "property1" : [ { "action": "click", "key2": "val2", "lab": { "good_id": 10001, "index": 5, "page_name": "detail_page101" }, "page": "detail_page" } ] } ]
Tracking会自动分析和校验,并将错误信息高亮标红展示,如图所示
工具栏:清空测试缓存
分组标签:可以分组筛选查看case的结果
case列表:以时间倒序排列展示的case记录
校验字段详情展示:点击左侧一行,右侧会展示对应的校验详情,展开状态
校验字段名和结果展示:校验详情的收起状态, 收起状态的校验结果有三种:
匹配数据展示区
准备基准数据文件,数据格式见附录
将基准数据文件放入指定路径下: ~.lyrebird/plugins/lyrebird_tracking/base.json
启动Lyrebird工具,手机链接代理,操作过程中观测case校验等信息展示
# clone 代码 git clone https://github.com/meituan/lyrebird-tracking.git # 进入工程目录 cd lyrebird-tracking # 创建虚拟环境 python3 -m venv venv # 安装依赖 source venv/bin/activate pip3 install -r requirements.txt # 使用IDE打开工程(推荐Pycharm或vscode) # 在IDE中执行debug.py即可开始调试
target:待校验的host集合
cases:测试用例集合
name:测试用例名
selector:JSONPath语法描述的查询条件
asserts:校验条件
field:需要校验的字段
schema:JSONSchema语法描述的校验条件,不校验可填为{},前端会高亮显示该字段
groupname(可选):case对应分组的组名
groupid(可选):case对应分组的组id
{ "target": [ "abctest.com" ], "cases": [{ "name": "test case 1st", "selector": "$[?key1='val1'].property1[?key2='val2']", "asserts": [{ "field": "action", "schema": { "type": "string", "pattern": "view" } }, { "field": "page", "schema": { "type": "string", "pattern": "detail_page" } } ], "groupname": "group1", "groupid": 1 }, { "name": "test case 2nd", "selector": "$[*].property2[?key3='val3']", "asserts": [{ "field": "action", "schema": { "type": "string", "pattern": "click" } }, { "field": "page", "schema": { "type": "string", "pattern": "home_page" } } ], "groupname": "group2", "groupid": 2 }] }
用于查询逻辑的selector配置基于JSONPath的语法。类似于XPath在xml文档中的定位,JSONPath表达式通常是用来路径检索或设置Json的。目前仅支持一部分JSONPath语法,如下所述。
[ { "name":"king", "property":123, "house":120 }, { "name":"wang", "property":456, "house":240 }, { "name":"king", "car":"audi", "house":120 }, { "name":"king", "property":123, "house":789 }, { "name":"king", "property":666, "house":666 } ]
用于校验逻辑的schema配置基于JSONSchema的语法。JSON Schema 用以标注和验证JSON文档的元数据的文档,可以类比于XML Schema。相对于JSON Schema,一个JSON文档就是JSON Schema的一个instance,可以校验数据结构、数据类型、和详细的判断等。
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802032778号
Lyrebird-tracking
简介
Tracking 是基于Lyrebird的插件,为移动端应用提供服务请求的数据分析及验证的功能
环境要求
macOS
Python3.6及以上
安装
简单示例
请求数据分析的应用场景比较广泛,以其中一种典型应用场景如客户端埋点的分析校验来进行示例
分析待测对象
编写配置文件
校验功能
若移动端发出符合预期的Request Data,如下
Tracking会自动分析和校验,如图所示
若移动端发出不符合预期的Request Data,如其中action字段的值不符合预期”view”,如下
Tracking会自动分析和校验,并将错误信息高亮标红展示,如图所示
详细功能介绍
工具栏:清空测试缓存
分组标签:可以分组筛选查看case的结果
case列表:以时间倒序排列展示的case记录
校验字段详情展示:点击左侧一行,右侧会展示对应的校验详情,展开状态
校验字段名和结果展示:校验详情的收起状态, 收起状态的校验结果有三种:
匹配数据展示区
使用流程
准备基准数据文件,数据格式见附录
将基准数据文件放入指定路径下: ~.lyrebird/plugins/lyrebird_tracking/base.json
启动Lyrebird工具,手机链接代理,操作过程中观测case校验等信息展示
开发者指南
附录
配置文件数据格式
字段说明
target:待校验的host集合
cases:测试用例集合
name:测试用例名
selector:JSONPath语法描述的查询条件
asserts:校验条件
field:需要校验的字段
schema:JSONSchema语法描述的校验条件,不校验可填为{},前端会高亮显示该字段
groupname(可选):case对应分组的组名
groupid(可选):case对应分组的组id
JSONPath 简明介绍
用于查询逻辑的selector配置基于JSONPath的语法。类似于XPath在xml文档中的定位,JSONPath表达式通常是用来路径检索或设置Json的。目前仅支持一部分JSONPath语法,如下所述。
支持语法
语法示例
JSONSchema 介绍
用于校验逻辑的schema配置基于JSONSchema的语法。JSON Schema 用以标注和验证JSON文档的元数据的文档,可以类比于XML Schema。相对于JSON Schema,一个JSON文档就是JSON Schema的一个instance,可以校验数据结构、数据类型、和详细的判断等。