作者简介
Liang,携程研发总监,关注工程效能、DevOps、自动化框架等。
一、背景
携程机票从2018年年中正式引入BDD,至今已3年多,成为内部首选的敏捷开发技术。
Flybirds 是一套基于BDD模式的前端UI自动化测试框架,提供了一系列开箱即用的工具和完善的文档,现在逐步稳定,成为机票内部首选的BDD-UI-Testing测试框架。
二、为什么开源
分享我们的BDD技术方案
期待业内使用BDD技术的同行通过开源社区与我们进行更深入的交流
本文将从特性介绍、环境搭建、使用帮助、自定义扩展、持续集成、发版计划这几个方面对框架进行介绍。
三、Flybirds
基于Behave,实现BDD中“自然语言测试用例文档”和“自动化测试代码”关联需要用到支持BDD工具。
基于Airtest,实现BDD中“测试用例能在自动化测试平台上执行”需要用到UI自动化测试框架。
基于Multiple-cucumber-html-reporter,实现可视化的测试报告。
四、特性
使用Flybirds你能够完成大部分的手机端自动化操作,以下是一些帮助入门的特性描述:
基于BDD模式,类自然语言语法
支持自动化APP操作、表单提交、UI元素校验、键盘输入、Deeplink跳转等
默认支持英文、中文两种语言,支持更多语言扩展
插件式设计,支持用户自定义自动化扩展
提供cli脚手架,快速搭建项目
提供html报告
五、环境搭建
5.1 使用pip安装flybirds框架,过程中会自动安装所需的依赖包
pip3 install flybirds
在Mac/Linux系统下,需要手动赋予adb可执行权限
for mac
cd {your_python_path}/site-packages/airtest/core/android/static/adb/mac
chmod +x adb
for linux
cd {your_python_path}/site-packages/airtest/core/android/static/adb/linux
chmod +x adb
5.2 使用脚手架创建项目
flybirds create
六、快速上手
6.1 运行演示
为了帮助使用,项目创建时,会生成中英文的Android、iOS演示feature,方便用户参考。
features/test/
features/test/android
features/test/android/cn/everything.feature
features/test/android/en/everything.feature
features/test/ios
features/test/ios/cn/everything.feature
features/test/ios/en/everything.feature
以“Android”为例:
执行命令 adb devices , 检查设备列表中是否包含测试设备
开始运行
cd {PATH_TO_PROJECT_FOLDER}
flybirds run -P features/test/android
框架会通过flybirds_config中配置的packagePath自动下载测试包并安装(请确保手机已经打开”允许安装未知