首页 文章详情

刚刚美团开源了一款超级好用的抓包及 Mock 工具

大邓和他的Python | 315 2021-04-13 15:37 0 0 0
UniSMS (合一短信)

1. 前言

抓包和 Mock 是日常工作中经常用到的 2 个功能,可能第一时间你会想到 Charles、Fiddler 

但是这两款工具在 Mock 数据管理上功能过于简单,并且扩展性不强

这里,强烈推荐美团刚开源的一个工具,即:Lyrebird

2. 介绍

Lyrebird 是一个基于 mitmproxy 拦截及模拟 HTTP/HTTPS 网络请求的面向移动端的插件式测试平台

项目地址:

https://github.com/Meituan-Dianping/lyrebird

主要功能为:

  • 网络抓包

  • Mock 功能及管理

  • 支持插件功能

    包含实现埋点自动测试、API 覆盖率统计、移动设备及 APP 控制和信息记录、自定义检查脚本等一系列功能

3. 准备

首先,安装依赖库

# 安装依赖库:lyrebird
pip3 install lyrebird

然后,使用 lyrebird 命令启动服务

  • lyrebird

    默认方式启动服务,打开浏览器操作界面

  • lyrebird -v

    启动服务,打开浏览器操作界面,并会在控制台显示详细的日志信息

  • lyrebird -b

    启动服务,不打开浏览器

  • lyrebird --mock 9090 --proxy 4272 --data . --config your/config/file

    自定义参数的方式,启动服务,并打开浏览器

需要指出的是,lyrebird 默认代理服务器端口号为:4272;Mock 服务及前端端口号为:9090

当然,也可以通过最后一种方式自定义代理服务器的端口号及 Mock 服务端口号

4. 使用

在使用之前,我们需要拿到 PC 端的 IP 地址,根据启动代理服务,在移动端配置手动代理

比如,如果是以默认的方式启动 lyrebird 服务,手动代理的端口号配置为 4272

然后,利用浏览器打开 http://mitm.it 下载并安装 mitmproxy 证书

最后,就可以对移动端的 App 进行抓包了

4-1  抓包

lyrebird 服务的操作界面默认停留在抓包界面,会将录制的请求数据在左侧列表中显示,点击某一个请求,右侧会展示请求报文的详细内容

工具栏包含停止、清除两个功能,用于管理请求列表

另外,右上角的输入框可以通过关键字对请求进行筛选

4-2  Mock

lyrebird 对某一个接口进行 Mock 也非常方便

首先,在左侧列表中选中 DataManager,然后添加一个 Group

接着,回到请求列表页面

选择一个激活的 Mock 组,然后选中待 Mock 的请求接口,点击保存按钮

然后,回到 DataManager Tab,对需要 Mock 的接口的请求、响应进行编辑,然后保存

最后,回到请求主界面,再次录制相同的接口,会发现该接口会返回上一步设置的 Mock 数据

并且凡是走 Mock 请求的项都被标注为:mock

5. 最后

实际上,lyrebird 除了抓包和 Mock,还可以通过插件扩展能力,实现更加复杂的功能

如果你觉得文章还不错,请大家 点赞、分享、留言 下,因为这将是我持续输出更多优质文章的最强动力!

精选文章

系列视频|Python网络爬虫与文本数据分析
B站视频 | Python自动化办公
53个Python库,你必须要试试
SciencePlots | 科研样式绘图库
bsite库 | 采集B站视频信息、评论数据
texthero包 | 支持dataframe的文本分析包
爬虫实战 | 采集&可视化知乎问题的回答
pdf2docx库 | 转文件格式,支持抽取文件中的表格数据
tidytext | 耳目一新的R-style文本分析库
reticulate包 | 在Rmarkdown中调用Python代码
plydata库 | 数据操作管道操作符>>
plotnine: Python版的ggplot2作图库
读完本文你就了解什么是文本分析
文本分析在经管领域中的应用概述  
综述:文本分析在市场营销研究中的应用
plotnine: Python版的ggplot2作图库
小案例: Pandas的apply方法  
stylecloud:简洁易用的词云库 
用Python绘制近20年地方财政收入变迁史视频  
Wow~70G上市公司定期报告数据集
漂亮~pandas可以无缝衔接Bokeh  
YelpDaset: 酒店管理类数据集10+G  

    分享”和“在看”是更好的支持





good-icon 0
favorite-icon 0
收藏
回复数量: 0
    暂无评论~~
    Ctrl+Enter