BDD-driven natural language automated testing framework, present by Trip Flight

行为驱动开发(Behavior-driven development,缩写BDD),是一种软件过程的思想或者方法,是一种敏捷软件开发的技术.

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

  • 基于Behave,实现BDD中“自然语言测试用例文档”和“自动化测试代码”关联需要用到支持BDD工具。
  • 基于Airtest,实现BDD中“测试用例能在自动化测试平台上执行”需要用到UI自动化测试框架。

特性

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

  • 基于BDD模式,类自然语言语法
  • 支持自动化APP操作、表单提交、UI元素校验、键盘输入、Deeplink跳转等
  • 默认支持英文、中文两种语言,支持更多语言扩展
  • 插件式设计,支持用户自定义自动化扩展
  • 提供cli脚手架,快速搭建项目
  • 提供html报告

环境要求

  • python(3.7-3.9)
  • nodejs(12+)

快速开始

1. 环境搭建

使用pip安装flybird框架,过程中会自动安装所需的 依赖包

在Mac/Linux系统下,需要手动赋予adb可执行权限

cd {your_python_path}/site-packages/airtest/core/android/static/adb/mac
chmod +x adb

cd {your_python_path}/site-packages/airtest/core/android/static/adb/linux
chmod +x adb

使用脚手架创建项目

创建过程中会提示输入以下信息

  • 项目名称
  • 测试平台:Android / iOS
  • 测试设备名称( 可跳过,后续可在config中配置deviceId节点 )
  • webDriverAgent的BundleID( 可跳过,ios设备连接使用,后续可在config中配置webDriverAgent节点 )
  • APP测试包名称(可跳过,默认为ctrip演示包,后续可在config中配置packageName节点)

为了帮助使用,项目创建时,会在test目录下生成演示features,后续可自行删除

2. 测试执行

  1. 请确保配置的测试设备能够正常连接

    • Android: 执行命令 adb devices , 检查设备列表中是否包含测试设备
    • iOS:以tidevice库举例,执行命令 tidevice list,检查设备列表中是否包含测试设备

    Android设备连接 Q&A

    • 请先安装手机对应品牌的官方驱动,确保能使用电脑对手机进行USB调试
    • 确保已经打开了手机中的”开发者选项”,并且打开”开发者选项”内的”允许USB调试”
    • 部分手机需要打开”允许模拟位置”、”允许通过USB安装应用”
    • 关闭电脑上已经安装的手机助手软件,能避免绝大多数问题,请务必在任务管理器中手工结束手机助手进程

    iOS设备连接 Q&A

    • 请先准备一台macOS ,使用xcode部署 iOS-Tagent 成功后,能够在mac或windows机器上连接到iOS手机。请点击链接下载项目代码到本地进行部署。
    • mac 环境通过 Homebrew 安装iproxy brew install libimobiledevice
    • windows 环境安装itunes
  2. 下载安装测试包