Flybirds 简介:
携程机票BDD-UI-Testing框架Flybirds 是一套基于BDD模式的前端UI自动化测试框架,提供了一系列开箱即用的工具和完善的文档,现在逐步稳定。
由于第一次配置环境所以有些工具还不是很清楚,经过1天的配置终于将iOS和android的feature文件运行起来了,遇到一些小坑下面做一些记录。
因为官网文档写的很全面,所以我只记录一下命令以及注意点:
1. python环境变量别错了
在MacOS环境下,如果安装多个python版本的话, 需要将python 3.7x或8x或9x 版本设置为默认版本!
终端输入 : python
输出结果 :
xxxxxx ~ % python
Python 3.8.9 (default, Aug 21 2021, 15:53:23)
[Clang 13.0.0 (clang-1300.0.29.3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
然后再使用pip3 进行环境安装。
2. 配置文件不要忘记,我就是忘记配置了某个地方耽误了些时间.
必须配置项:deviceId packageName。
连接IOS设备时,必须额外配置webDriverAgent、platform。
3. iOS-Tagent 环境
运行iOS项目需要配置iOS-Tagent 环境,但是我下载官方给的链接地址 iOS-Tagent 运行是有错误的,经过各种配置修改后运行在手机上,可是无法映射应用程序UI层级, 应该是版本适配问题 ,我用的是Xcode13,iOS15 ,我又找到了appium 还在维护的 WebDriverAgent 这个不需要改错就是配置就可以了.
这个时候我手机安装的 WebDriverAgent 才是能正常使用的。
最后执行:
tidevice --udid 1xxxxxxxxxxx wdaproxy -B 2xxxxxxxxxxx --port 8100
1xxxxxxxxxxx 手机的 udid。
2xxxxxxxxxxx WebDriverAgent的 bundleID。
顺带说一句使用 tidevice查询链接手机查询安装应用的 bounldID 的时候,如果多设备连接 tidevice applist 无法查询 , 我连接就一台设配但是查看的时候多出来两个不知道在什么地方挂起的设备后边标记为 network 而不是USB连接,所以需要添加设备的 udid 来查看所以应用的bundleID如下:
tidevice --udid 1xxxxxxxxxxx applist
在项目目录下运行
flybirds run -P features/test/ios
最后iOS和Android的 feature文件运行起来了。
2022-03-10 15:15:29,873 - flybirds_log - INFO - <then "not exist element[label=机票]">
2022-03-10 15:15:29,873 - flybirds_log - INFO - run step:not exist element[label=机票]
2022-03-10 15:15:29,873 - flybirds_log - INFO - result_dic: {'selector': 'label=机票'}
2022-03-10 15:15:32,941 - flybirds_log - INFO - <then "not exist text[升级攻略]">
2022-03-10 15:15:32,941 - flybirds_log - INFO - run step:not exist text[升级攻略]
2022-03-10 15:15:32,942 - flybirds_log - INFO - result_dic: {'selector': '升级攻略'}
2022-03-10 15:15:35,525 - flybirds_log - INFO - <then "element[label=机票]disappear">
2022-03-10 15:15:35,525 - flybirds_log - INFO - run step:element[label=机票]disappear
2022-03-10 15:15:35,526 - flybirds_log - INFO - result_dic: {'selector': 'label=机票'}
2022-03-10 15:15:38,201 - flybirds_log - INFO - <then "text[搜索]disappear">
2022-03-10 15:15:38,201 - flybirds_log - INFO - run step:text[搜索]disappear
2022-03-10 15:15:38,201 - flybirds_log - INFO - result_dic: {'selector': '搜索'}
2022-03-10 15:15:40,965 - flybirds_log - INFO - device_id:00008020-001651AE3A88003A,
2022-03-10 15:15:40,965 - flybirds_log - INFO - page_name:scenario_success_page,
2022-03-10 15:15:40,965 - flybirds_log - INFO - package_name:com.ctrip.inner.wireless
2022-03-10 15:15:40,966 - flybirds_log - INFO - running feature:flybirds test feature-android verify element scenario:Element Step Test verify text, location: features/test/ios/en/verify.feature:2
2022-03-10 15:15:40,966 - flybirds_log - INFO - device_id:00008020-001651AE3A88003A,
2022-03-10 15:15:40,966 - flybirds_log - INFO - page_name:before_run_page,
在MacOS环境运行flybirds工程安装的工具:
Xcode13
Python 3.8.9
node v16.10.0
adb Android Debug Bridge version 1.0.41 (运行android 使用)
tidevice : tidevice version 0.5.9 (运行iOS使用)
wdaproxy:
iOS-Tagent 环境(WebDriverAgent) (运行iOS 使用)
flybirds :附带其他工具 (运行iOS 使用)
根据官方文档进行使用 地址 :https://flybirds.readthedocs.io/zh_CN/latest/BDD-UI-Testing-Flybirds.html
下面是注意点:
1. python环境变量
在MacOS环境下,如果安装多个python版本的话, 需要将python 3.7x或8x或9x 版本设置为默认版本!
终端输入 : python
输出结果 :
xxxxxx ~ % python
Python 3.8.9 (default, Aug 21 2021, 15:53:23)
[Clang 13.0.0 (clang-1300.0.29.3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
2. 配置文件不要忘记
必须配置项:
1)deviceId
示例为设备的序列号 Android设备使用 “adb devices” 获取 iOS通过 “ tidevice list” 获取
- packageName
app的packageName 包名 - webDriverAgent
设备里WebDriverAgent的BundleID,可通过tidevice applist命令查看。连接IOS设备时必填。 - platform
待连接测试设备的系统,目前支持Android 和 IOS, 不填时默认为:Android
tidevice查询USB连接的手机查询安装应用的 bounldID 的时候,如果多设备连接 tidevice applist 无法查询 , 我连接就一台设配但是查看的时候多出来两个挂起的设备后边标记为 network 而不是USB连接,所以需要添加设备的 udid 来查看所以应用的bundleID如下:
tidevice --udid xxxxxxxxxxxx applist
3. iOS-Tagent 环境
运行iOS项目需要配置iOS-Tagent 环境,但是我下载官方给的链接地址 iOS-Tagent 运行是有错误的,我又找到了appium 还在维护的 WebDriverAgent
参照官方文档进行安装主要这几点