• Stars
    star
    1,163
  • Rank 40,128 (Top 0.8 %)
  • Language
    Python
  • License
    MIT License
  • Created over 6 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

移动应用插件化测试工作台

Lyrebird

Tests Publish CodeQL

PYPI

PyPI PyPI PyPI - Downloads

pip install lyrebird

DockerHub

Docker Image Version (latest semver) Docker Image Size (latest by date)

docker pull overbridge/lyrebird

Docs

Doc Backers on Open Collective Sponsors on Open Collective GitHub


简介

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

Lyrebird 不只提供 UI 操作,也可以通过 API 控制所有功能。

Lyrebird 也可作为服务端接口测试 mock 工具使用。

Lyrebird 可以通过插件扩展能力,实现埋点自动测试、API 覆盖率统计、移动设备及 App 控制和信息记录、自定义检查脚本等一系列功能。

Lyrebird (琴鸟) 不但美丽壮观,且能歌善舞。它不但能模仿各种鸟类的鸣叫声,还能学人间的各种声音。如汽车喇叭声、火车喷气声、斧头伐木声、修路碎石机声及领号人的喊叫声等。歌声婉转动听,舞姿轻盈合拍,是澳洲鸟类中最受人喜爱的珍禽之一。


快速开始

环境要求

  • macOS/Windows
  • Python >= 3.7
# macOS系统中推荐使用Homebrew(https://brew.sh/#install)安装Python3
brew install python3

Windows 需要的额外步骤:

  • 下载并安装编译版 OpenSSL
  • 设置系统环境变量(根据实际路径调整)
    • LIB = C:\Program Files\OpenSSL-Win64\lib
    • INCLUDE = C:\Program Files\OpenSSL-Win64\include

安装

# 安装lyrebird
pip3 install lyrebird

启动

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实现。

Contributors

More Repositories

1

mpvue

基于 Vue.js 的小程序开发框架,从底层支持 Vue.js 语法和构建工具体系。
JavaScript
20,419
star
2

walle

Android Signature V2 Scheme签名下的新一代渠道包打包神器
Java
6,770
star
3

Leaf

Distributed ID Generate Service
Java
6,438
star
4

Logan

Logan is a lightweight case logging system based on mobile platform.
C
5,709
star
5

SQLAdvisor

输入SQL,输出索引优化建议
C
5,551
star
6

Robust

Robust is an Android HotFix solution with high compatibility and high stability. Robust can fix bugs immediately without a reboot.
Java
4,420
star
7

Zebra

美团点评集团统一使用的MySQL数据库访问层的中间件。主要提供对业务开发透明、读写分库、分库分表能力,并提供了端到端SQL监控的集成方案。
Java
2,746
star
8

DBProxy

C
2,226
star
9

beeshell

React Native 组件库
TypeScript
1,797
star
10

MyFlash

flashback mysql data to any point
C
1,102
star
11

Shield

A declarative, efficient, and flexible Native framework for building user interfaces.
Java
940
star
12

octo-rpc

OCTO-RPC 是支持Java和C++的企业级通信框架,在RPC服务之上扩展了丰富的服务治理功能,为美团各业务线提供高效、统一的通信服务。
Java
648
star
13

koa-restql

Build real RESTful APIs without writing one line of code.
JavaScript
447
star
14

octo-ns

OCTO-NS是美团OCTO服务治理体系服务注册发现功能的套件, 包括SDK(Java/C++)、本地服务治理代理(SgAgent), 服务缓存(NSC), 云端健康检查(Scanner)等基础组件,目前已经在全公司大规模使用
C++
327
star
15

asap

ASAP: A Chinese Review Dataset Towards Aspect Category Sentiment Analysis and Rating Prediction
311
star
16

vision-ui

视觉UI分析工具
Python
251
star
17

octo-portal

OCTO-Portal 是OCTO服务治理体系的管理端,为服务权重修改,性能数据分析等服务治理功能提供人性化的一站式管理平台
JavaScript
173
star
18

lyrebird-android

本程序是一个Lyrebird的插件,用于支持获取Android设备信息。
Python
125
star
19

vision-ml

A R-CNN machine learning model for handling Pop-up window in mobile Apps.
Python
71
star
20

lyrebird-ios

本程序是Lyrebird插件,您可以在插件中快速查看已连接iOS设备的详细设备信息,截取屏幕快照,以及查看已连接设备的应用信息。
Python
71
star
21

cat-go

Go
50
star
22

lyrebird-tracking

Tracking 是基于Lyrebird的插件,提供服务请求的数据分析及验证的功能
Python
25
star
23

lyrebird-api-coverage

API-Coverage是基于Lyrebird的插件,为客户端提供API维度测试覆盖评估方法。
Python
23
star
24

mos-mss

mtyun MSS(Meituan Storage Service) sdk for Node.js
JavaScript
19
star
25

lyrebird-java-client

lyrebird-java-client 是Lyrebird的一个 Java SDK,通过调用Lyrebird本身提供的API实现在Java项目中控制 Lyrebird Services
Java
15
star
26

lyrebird-bugit

lyrebird-bugit是Lyrebird的一个插件,目前应用于提交Bug场景
Vue
14
star
27

cat-python

Python
6
star
28

cat-node-js

CMake
5
star
29

cat-c-client

C
1
star
30

groupmeal-java-sdk

Java
1
star