• Stars
    star
    844
  • Rank 53,983 (Top 2 %)
  • Language
    Python
  • License
    MIT License
  • Created almost 3 years ago
  • Updated about 1 month ago

Reviews

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

Repository Details

基于自然语言的,跨端跨框架 BDD UI 自动化测试方案,BDD testing, Python style, Present by Trip Flight

logo

Flybirds | English Version

downloads Downloads/month Downloads/week pypi version pyversions

跨端跨框架 BDD UI自动化测试方案

背景

Flybirds 是一套基于BDD模式的前端UI自动化测试框架,提供了一系列开箱即用的工具和完善的文档。

多端研发对于当今时代的前端开发来说是个绕不过去的话题,为了解决这些问题,行业内推出了很多开发方案,但是跨端 UI 自动化测试的解决方案并不多。

Flybirds从2022年初开源至今,通过与社区内活跃用户的交流和反馈,推出了v0.4 版本的跨端跨框架测试方案,一套脚本多端运行,插件化的架构设计,也方便社区开发者自由加入扩展,一起共建成长。

我们需要一个怎么样的多端测试方案

近几年,每隔一段时间就会有很多新的开发框架出现,带来了更好的开发体验和性能的同时,也给自动化测试创造了很多难题。

我们到底需要一个怎样的多端测试方案呢?从 Flybirds 的视角来说,我们希望多端测试不会成为研发流程中的障碍,特别是多端生态整体呈现欣欣向荣之时,自动化测试方案应和开发方案共同成长。

不论是 Web 、Android、iOS、Flutter、React Native 还是小程序,理想的方案应该进行多端适配,保留良好扩展,兼顾更多框架,由社区共同建设,促进整体生态繁荣,因此就有了Flybirds 向社区提供的跨端跨框架测试方案。

插件化架构

插件化架构帮助我们将每一个端的能力拆分开, 插件提供运行时所需的组件、API 和配置,Flybirds 将它们分别注入对应的生命周期。

Arc

  • 基于Behave,实现BDD中“自然语言测试用例文档”和“自动化测试代码”关联所需要用到的支持BDD工具。
  • 基于Airtest,实现BDD中“测试用例能在自动化测试平台上执行”所需要用到的APP端UI自动化测试能力。
  • 基于Playwright, 实现BDD中“测试用例能在自动化测试平台上执行”需要用到Web端UI自动化测试能力。
  • 基于PaddleOCR和OpenCV, 实现BDD中“测试用例能在自动化测试平台上执行”需要用到的OCR和图像识别能力。
  • 基于Multiple-cucumber-html-reporter,实现可视化的测试报告

文件结构

 																
├─ cli	                        脚手架
├─ core
|   ├─ config_manage.py         配置管理
|   ├─ dsl
|   │    ├─ globalization       国际化处理
|   │    └─ step                Step 列表
|   ├─ global_resource.py       全局配置
|   ├─ launch_cycle             生命周期管理
|   └─ plugin
|        ├─ event               事件管理
|        ├─ plugin_manager.py   插件管理
|        └─ plugins					
|             ├─ android        Andriod 相关处理
|             ├─ ios            iOS 相关处理
|             └─ web            Web 相关处理
├─ report                       报告
├─ template                     模板处理
└─ utils								

特性

使用Flybirds你能够完成大部分的手机端自动化操作,以下是一些帮助入门的特性描述:

  • 基于BDD模式,类自然语言语法
  • 支持自动化操作、表单提交、UI元素校验、键盘输入、Deeplink跳转等
  • 支持 Android、iOS、React Native、Flutter、Web
  • 多端脚本复用
  • 支持多浏览器渲染引擎:Chromium、WebKit 和 Firefox
  • 支持多浏览器并发模式下的兼容性测试
  • 默认支持英文、中文两种语言,支持更多语言扩展
  • 插件式设计,支持用户自定义自动化扩展
  • 提供cli脚手架,快速搭建项目
  • 提供html报告

Enjoying this?

请给我们支持,点上一颗 Star

教程

贡献

  1. Fork 仓库
  2. 创建分支 (git checkout -b my-new-feature)
  3. 提交修改 (git commit -am 'Add some feature')
  4. 推送 (git push origin my-new-feature)
  5. 创建 PR

欢迎 fork 和反馈

如有建议或意见,欢迎在 GitHub issues 区提问

协议

本仓库遵循 MIT 协议

致谢

感谢以下仓库让Flybirds变得更好:

技术交流

Chats

More Repositories

1

C-OCR

C-OCR是携程自研的OCR项目,主要包括身份证、护照、火车票、签证等旅游相关证件、材料的识别。 项目包含4个部分,拒识、检测、识别、后处理。
Java
2,373
star
2

x-pipe

X-Pipe是由携程框架部门研发的Redis多数据中心复制管理系统。基于Redis的Master-Slave复制协议,实现低延时、高可用的Redis多数据中心、跨公网数据复制,并且提供一键机房切换,复制监控、异常报警等功能。开源版本和携程内部生产环境版本一致。
Java
2,001
star
3

CRN

CRN是Ctrip React Native简称,由携程无线平台研发团队基于React Native框架优化,定制成稳定性和性能更佳、也更适合业务场景的跨平台开发框架。
JavaScript
1,457
star
4

dal

Ctrip Database Access Layer
Java
1,246
star
5

moles-packer

moles-packer 是由携程框架团队研发的,与携程moles框架配套使用的React Native 打包和拆包工具,同时支持原生的 React Native 项目。
JavaScript
721
star
6

wean

🍀 Super fast miniapp compiler.
JavaScript
390
star
7

tars

携程下一代发布系统
JavaScript
365
star
8

vi

帮助了解和控制应用
Java
269
star
9

SQLlin

A DSL ORM library for Kotlin Multiplatform.
C
218
star
10

tripdocs

TripDocsSDK是基于携程内部在线文档编辑器内核,提炼的一款通用的,现代的、稳定的、支持协同的、可用于生产环境的在线文档编辑器
TypeScript
159
star
11

dataworks-zeus

Ctrip Hadoop Job Scheduling System derived from https://github.com/alibaba/zeus
Java
153
star
12

nephele

Image Service
Go
145
star
13

mmkv-kotlin

A Kotlin Multiplatform porting for MMKV.
Kotlin
130
star
14

drc

Java
127
star
15

hermes

Message Queue Solution at Ctrip.com
Java
85
star
16

cat.net

.Net Client of CAT
C#
69
star
17

zeus

Soft Load Balancer at ctrip.com
JavaScript
55
star
18

kbear

Enterprise Kafka Solution
Java
51
star
19

artemis

artemis
Java
41
star
20

caravan

Caravan
Java
34
star
21

cat.js

Javascript client of CAT
JavaScript
29
star
22

ghost

A set of go tools with simple construction and powerful features.
Go
18
star
23

xredis-crdt

C
11
star
24

caravan.net

caravan.net
C#
9
star
25

crdt-module

C
8
star
26

chystrix.net

chystrix.net
C#
7
star
27

homer

Go
6
star
28

TripLink

TripLink
Java
5
star
29

artemis.net

artemis.net
C#
4
star
30

hermes.js

hermes client for javascript
4
star
31

kvrocks

kvrocks
2
star
32

venus

Dependency Injection Framework for .NET
1
star
33

ares-ceph

1
star
34

react-native-cba

react-native-cba
1
star