Behavior-driven development (BDD) is an idea or method of software process and a technology for agile software development.
Flybirds is a front-end UI automation test framework based on BDD mode, providing a series of out-of-the-box tools and complete documentation.
- Based on Behave, supporting BDD tools are required to associate Natural Language Test Case Documentation with Automated Test Code in BDD.
- Based on Airtest, UI automated test framework is needed to implement "test cases can be executed on automated test platform" in BDD.
What can I do?
With Flybirds you can do most of the mobile automation, here are some features to help you get started:
- Based on BDD pattern, similar natural language syntax
- Support automatic app operation, form submission, UI element verification, keyboard input, deeplink jump, etc. on the Android side. The IOS side is in progress
- English and Chinese are supported by default. Support more languages extensions
- Plug in design, support user-defined automation framework extension
- Provide cli scaffolding construction to help build projects quickly
- Provide html report
pip to install flybirds，required pip install dependency package will be automatically installed
pip install flybirds
On MacOS/Linux platform, you need to grant adb execute permission.
chmod +x adb
chmod +x adb
use cli to create project
You will be prompted to input the following information during project creation
- project name
- test platform：Android / iOS
- test device name（ can be skipped. you can config the node
deviceIdbefore running ）
- APP package name（ can be skipped，ctrip demo package is default，you can config the node
packageNamebefore running ）
- webDriverAgent BundleID（ can be skipped. only ios test needed, you can config the node
webDriverAgentbefore running ）
To help you use, demo features will be generated in the test directory when the project is created, and can be deleted later
Please ensure that the test device used can be connected normally， then execute the following command
- Android: run
adb devices, check if test device is in the list
- iOS：use tidevice，run
tidevice list，check if test device is in the list
- Please install the official driver of the phone's corresponding brand first to ensure that you can use the computer to perform USB debugging on the phone
- Make sure that the "Developer Options" in the phone is turned on, and turn on "Allow USB Debugging" in the "Developer Options"
- Some phones need to turn on "Allow Simulated Location" and "Allow App Installation via USB"
- Turning off the mobile assistant software installed on the computer can avoid most of the problems. Please be sure to manually end the mobile assistant process in the task manager
- Please prepare a macOS first. After successfully deploying iOS-Tagent using xcode, you can connect to the iOS phone on the mac or windows machine. Please click linkdownload the project code to local deployment。
- mac: install iproxy by Homebrew
brew install libimobiledevice
- windows: install itunes
Download and install test package
- Android：project will automatically download and install the test package through
packagepathin config(Please make sure that the phone is turned on "Allow installation from unknown sources"). It can also be downloaded and installed manually.Download
- download from below address and install manually: Download
- use cmd or shell to start wdaproxy manually
shell tidevice --udid $udid wdaproxy -B $web_driver_angnt_bundle_id -p $port
Run test，all feature files in the features directory by default
flybirds run # run test
- The presentation contains the main automation syntax. In order to make the presentation run normally, it is recommended not to modify the configuration items
packagepath. If you do not need a presentation, you can modify it yourself
- For more description of the cli ： flybirds cli
- For more description of the project ： Project atructure
- For more description of the feature writing ： Feature writing
3. Project structure
4. Feature writing
5. flybirds cli
- Fork this repository
- Create a new branch (
git checkout -b my-new-feature)
- Commit your changes (
git commit -am 'Add some feature')
- Push (
git push origin my-new-feature)
- File a PR
Welcome to fork and feedback
If you have any suggestion, welcome to GitHub to raise issues.
This project follows the MIT license.
Thanks for all these great works that make this project better.