Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/meituan-dianping/lyrebird
移动应用插件化测试工作台
https://github.com/meituan-dianping/lyrebird
android-testing ios-testing lyrebird mobile-testing mock proxy python testing-tools
Last synced: 3 days ago
JSON representation
移动应用插件化测试工作台
- Host: GitHub
- URL: https://github.com/meituan-dianping/lyrebird
- Owner: Meituan-Dianping
- License: mit
- Created: 2018-07-12T08:50:59.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2024-10-29T09:29:36.000Z (about 2 months ago)
- Last Synced: 2024-10-29T10:57:34.456Z (about 2 months ago)
- Topics: android-testing, ios-testing, lyrebird, mobile-testing, mock, proxy, python, testing-tools
- Language: Python
- Homepage: https://meituan-dianping.github.io/lyrebird/
- Size: 85.5 MB
- Stars: 1,167
- Watchers: 40
- Forks: 246
- Open Issues: 81
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Lyrebird
![Tests](https://github.com/Meituan-Dianping/lyrebird/workflows/Tests/badge.svg)
![Publish](https://github.com/Meituan-Dianping/lyrebird/workflows/Publish/badge.svg)
![CodeQL](https://github.com/Meituan-Dianping/lyrebird/workflows/CodeQL/badge.svg)# [PYPI](https://pypi.org/project/lyrebird/)
[![PyPI](https://img.shields.io/pypi/v/lyrebird.svg)](https://pypi.python.org/pypi/lyrebird)
![PyPI](https://img.shields.io/pypi/pyversions/lyrebird.svg)
![PyPI - Downloads](https://img.shields.io/pypi/dm/lyrebird.svg)```
pip install lyrebird
```# [DockerHub](https://hub.docker.com/r/overbridge/lyrebird)
![Docker Image Version (latest semver)](https://img.shields.io/docker/v/overbridge/lyrebird?sort=semver)
![Docker Image Size (latest by date)](https://img.shields.io/docker/image-size/overbridge/lyrebird?sort=date)```
docker pull overbridge/lyrebird
```# [Docs](https://meituan-dianping.github.io/lyrebird)
[![Doc](https://img.shields.io/badge/docs-github_page-green.svg)](https://meituan-dianping.github.io/lyrebird/)
[![Backers on Open Collective](https://opencollective.com/lyrebird/backers/badge.svg)](#backers)
[![Sponsors on Open Collective](https://opencollective.com/lyrebird/sponsors/badge.svg)](#sponsors)
![GitHub](https://img.shields.io/github/license/meituan/lyrebird.svg)---
- [简介](#简介)
- [快速开始](#快速开始)
- [环境要求](#环境要求)
- [安装](#安装)
- [启动](#启动)
- [连接移动设备](#连接移动设备)
- [查看及录制数据](#查看及录制数据)
- [使用 Mock 数据](#使用Mock数据)
- [Mock 数据管理](#Mock数据管理)
- [基本命令](#基本命令)
- [感谢](#感谢)# 简介
**Lyrebird** 是一个基于拦截以及模拟 HTTP/HTTPS 网络请求的面向移动应用的插件式测试平台。
**Lyrebird** 不只提供 UI 操作,也可以通过 API 控制所有功能。
**Lyrebird** 也可作为服务端接口测试 mock 工具使用。
**Lyrebird** 可以通过**插件**扩展能力,实现埋点自动测试、API 覆盖率统计、移动设备及 App 控制和信息记录、自定义检查脚本等一系列功能。
> Lyrebird (琴鸟) 不但美丽壮观,且能歌善舞。它不但能模仿各种鸟类的鸣叫声,还能学人间的各种声音。如汽车喇叭声、火车喷气声、斧头伐木声、修路碎石机声及领号人的喊叫声等。歌声婉转动听,舞姿轻盈合拍,是澳洲鸟类中最受人喜爱的珍禽之一。
---
# 快速开始
## 环境要求
- macOS/Windows
* Python >= 3.7
```bash
# macOS系统中推荐使用Homebrew(https://brew.sh/#install)安装Python3
brew install python3
```Windows 需要的额外步骤:
- 下载并安装[编译版 OpenSSL](https://slproweb.com/products/Win32OpenSSL.html)
- 设置系统环境变量(根据实际路径调整)
- LIB = C:\Program Files\OpenSSL-Win64\lib
- INCLUDE = C:\Program Files\OpenSSL-Win64\include## 安装
```bash
# 安装lyrebird
pip3 install lyrebird
```## 启动
```bash
lyrebird
```## 连接移动设备
- 启动 Lyrebird 后,移动设备需要通过代理的方式将请求数据接入。
- 将移动设备的代理地址设为当前电脑地址,默认端口为 4272(IP 地址可查看 Lyrebird 启动时输出的日志)
_(注意 ⚠️:4272 端口上使用的 mitmproxy 服务为外置依赖,需要用户自行安装 mitmproxy。如果没有安装 lyrebird 会尝试自动安装该应用)_
- 被测设备上用浏览器打开 http://mitm.it, 选择对应操作系统安装证书
> Lyrebird 接入有两种方式:
a. 设置代理
b. 直连
## 查看及录制数据
> 现在,可以开始操作移动设备了。Lyrebird 将显示捕获到的 HTTP/HTTPS 请求。
>
> 选中请求后,可以将它保存到已激活的 mock 数据组中。## 使用 Mock 数据
> 激活 mock 数据选择器,选择 mock 数据后。经过 Lyrebird 的请求会被 mock,如果 mock 数据中没有匹配的数据,则会代理该请求。
>
> 可以在 DataManager 界面管理 mock 数据。## Mock 数据管理
> mock 数据可由左边导航栏切换到 DataManager 界面进行编辑管理
---
## 插件
> 文档在建中
---
# 基本命令
- **lyrebird**
以缺省参数启动 lyrebird
- **lyrebird -v**
以输出详细日志模式启动 lyrebird
- **lyrebird -b**
启动 lyrebird 不默认打开浏览器
- **lyrebird --mock 9090 --proxy 4272 --data . --config your/config/file**
指定参数启动 lyrebird
参数:
--mock 默认9090 , mock服务及前端端口
--proxy 默认4272, 代理服务端口
--data 默认./data, mock数据根目录
--config 默认~/.lyrebird/conf.json, lyrebird启动配置
---
# 感谢
本工具中的代理功能使用[mitmproxy](https://github.com/mitmproxy/mitmproxy)实现。
## Contributors