当前位置: 首页 > 科技观察

携程跨终端跨框架UI自动化测试方案Flybirds

时间:2023-03-18 17:07:11 科技观察

作者|Liang,携程资深测试专家,开源项目作者,关注DevOps、自动化框架、工具平台等。一、背景多端研发是当今时代前端开发无法回避的话题。为了解决这些问题,业界推出了很多开发方案,但是跨终端UI自动化测试的方案并不多。Flybirds自2022年初开源至今已经三个多月了,通过与社区活跃用户的交流和反馈,推出了v0.2版本的跨终端跨框架测试方案。方便社区开发者自由加入和扩展,共同建设和成长。2、v0.2新特性支持多端脚本复用,支持多浏览器渲染引擎:Chromium、WebKit、Firefox支持多浏览器并发模式下的兼容性测试3、我们需要什么样的多端测试方案最近几年?,每隔一段时间就会有很多新的开发框架出现,在带来更好的开发体验和性能的同时,也给自动化测试带来了很多问题。我们需要什么样的多端测试解决方案?从Flybirds的角度来看,我们希望多端测试不要成为研发过程中的障碍,尤其是在整体多端生态蓬勃发展的情况下,自动化测试方案应该与开发计划一起成长。无论是Web、ReactNative,还是Native,理想的解决方案应该是多端适配,保持良好的扩展性,兼顾更多的框架,由社区共同建设,促进整体生态的繁荣。因此,就有了Flybirds提供给社区的跨平台的End-to-end框架测试方案。4.插件架构插件架构帮助我们分离每一端的能力。插件提供运行时所需的组件、API和配置,Flybirds将其注入到相应的生命周期中。4.1文件结构├─cli脚手架├─core|├─config_manage.py配置管理|├─数字用户线|│├─全球化国际化处理|│└─step步骤列表|├─global_resource.py全局配置|周期管理|└─插件|├─活动活动管理|├─plugin_manager.py插件管理|└─插件|├─androidAndriod相关处理|├─iosiOS相关处理|└─webWeb相关处理├─reportreport├─template模板处理└─utils4.2DSL步骤列表当然,在这个架构中,每一端都略有不同,主要是由于每一端的平台差异。以下是各端支持的DSL步骤列表。大多数步骤可以应用于多个端点。5.多终端应用示例5.1测试用例功能:乘客模块@p1@android@web场景:暴露passenger_selection列表页面乘客跳转到【单向填写页面】,页面渲染完成后出现【已选航班】元素人名]然后[选择旅客的文案]的文本是[选择旅客]然后[选择的旅客姓名]的副本是[李易峰]然后[选择的旅客证件类型]的副本是[护照]然后[已选择[PassengerIDNo.]且文案为[YHE77],则有[PassengerTypeLabelChild]的元素,则返回上一页两种情况:1)两端相同时,参考如下配置//元素定位器配置ele_locator.json{"Selectpassengercopy":"testid=passger_check","Selectedpassengername":"testid=passger_name_checked","SelectedpassengerIDtype":"testid=passger_ct_checked","SelectedpassengerID"number":"testid=passger_cn_checked"}2)当di不同终端不同,通过android、ios、web来区分//scheme配置schema_url。json{"单向填写页面":{"android":"urlschemel://auth_activity","ios":"urlschemel://ios_auth_activity","web":"https://address"}}//元素定位配置ele_locator.json{"PassengerTypeLabelChild":{"android":"textid=passger_type_child","ios":"lableid=passger_type_child","web":"xpath=//html/body/div"}}6.数据驱动参数化在实际项目中,自动化测试大多基于数据驱动参数化,因此需要配合“场景大纲+示例”一起使用。这里我们修改上面的例子:功能:PassengerModule@p1@android@web场景大纲:暴露passenger_selectionlist乘客页面跳转到【单向填写页面】时,页面渲染完成,出现元素【选择的乘客姓名】,然后的副本为,然后有一个【乘客类型】的元素labelchild],则返回上一页示例:|元素|标题||选择旅客文件|选择乘客||所选乘客姓名|浏览器并发依靠PlayWright的跨浏览器能力,Flybirds支持所有现代渲染引擎,包括Chromium、WebKit和Firefox。Flybirds支持多浏览器并发模式,方便高效进行浏览器兼容性测试。7.1配置参数//browserType:配置浏览器内核"web_info":{"headless":true,"browserType":["firefox","chromium","webkit"],"defaultTimeout":30},7.2执行命令#浏览器内核可以通过参数指定flybirdsrun-DbrowserType=webkit,firefox,chromium八、运行前检查接下来开始运行前请先检查运行环境8.1Android,iOS1)请确保配置的测试设备可以正常连接Android:执行命令adbdevices查看设备列表中是否包含测试设备iOS:以tidevice库为例,执行命令tidevicelist查看设备列表中是否包含测试设备2)下载并安装测试包Android:框架会通过config配置的packagePath自动下载并安装测试包(请确保手机已开启“允许未知来源安装”es"),也可以手动下载和安装。iOS:请手动下载demoAPP并安装打开wdaproxyshelltidevice--udid$udidwdaproxy-B$web_driver_angnt_bundle_id-p$port8.2执行WebWeb项目前,检查是否安装了浏览器环境#检查安装的浏览器支持安装playwrightinstall--help#不带参数运行,默认安装所有浏览器playwrightinstall#通过提供参数安装特定浏览器playwrightinstallwebkit9.可以通过cli轻松切换执行环境,过滤大小写以及控制并发数,下面列出一些常用的命令。#查看项目运行时支持的操作flybirdsrun--help#执行features目录下的所有feature文件cd{PATH_TO_PROJECT_FOLDER}flybirdsrun#指定要执行的featureset,可以是目录也可以是具体的feature文件flybirdsrun-P./features/test/demo.feature#运行特定标签的场景,倍数用逗号分隔,'-'开头表示不运行包含该标签的场景flybirdsrun-Ttag1,tag2,-tag3,tag4#切换到Web环境执行用例flybirdsrun-Dplatform=web#切换到Android环境执行用例flybirdsrun-Dplatform=Android#切换到iOS环境执行usecaseflybirdsrun-Dplatform=iOS#执行标记为android的用例flybirdsrun-Tandroid-Dplatform=Android#指定并发执行的最大开启进程数。默认为4,只在web环境下生效flybirdsrun--pathfeatures-p50配置以下是每次运行前必须配置的配置项。Android配置项:deviceId、packageNameIOS配置项:platform、deviceId、packageName、webDriverAgent、Web配置项:platform、browserType、headless十一、自定义框架扩展了Flybirds的插件设计模式,保留了很好的扩展,我们将以后多开。11.1修改扩展名如果要修改项目中当前的扩展名,可以将以下插件(app、device、element、app、step、screen、screen_record)替换为本地文件,并在“plugin_info.json”中进行相应的配置”。例如,如果要修改web中的screen.py文件:在本地创建一个py文件,命名为screen.py,在webplugin_info.json中添加如下配置:"screen":{"path":"{local_path}/screen.py","ns":"screen.plugin.myextend"}{local_path}为本地路径,"ns"为包名,注意包名的唯一性(上面的包名只是一个例子,没有强制限制)12.内部增强包对于团队内部通用的自定义功能,可以考虑创建一个扩展包。Flybirds支持动态加载,包名包含“-flybirds-plugin”。在携程内部,DevOps的各类工具都已经对接在增强包中,安装后即可使用。13、持续集成cli提供的命令行执行方式可以很方便的添加各种持续集成工具。以Jenkins为例:#jenkinsshell里面commandcd{PATH_TO_PROJECT_FOLDER}#Runflybirdsrun-P./features/test/everything.feature-defineplatform=Androidcp-Rreports$WORKSPACE十四、发布计划我们会按照SemVer版本控制规范已发布。逐步增加新功能和代码优化,非常欢迎您加入我们的共建计划,在GitHub上提出您宝贵的建议,使用过程中遇到的任何问题,我们也会每周迭代做一个小版本。您也可以在这里给予我们道义上的支持并订购一颗星。</p> </div> </div> <div class="zuowen_sxy"> <div class="prev">上一篇:<a title="知识普及:什么是VoLTE?" href="/kejiguancha/126917.html">知识普及:什么是VoLTE?</a> </div> <div class="prev">下一篇:<a title="如何利用人工智能和自动化大规模识别敏感数据" href="/kejiguancha/126919.html">如何利用人工智能和自动化大规模识别敏感数据</a> </div> </div> <div class="related_about"> <div class="related_about_t"><code>携程跨终端跨框架UI自动化测试方案Flybirds相关文章</code></div> <ul> <li><a href="/kejifunen/366426.html" target="_blank" title="科大讯飞试水智慧办公还需跨过几大障碍?">科大讯飞试水智慧办公还需跨过几大障碍?</a></li> <li><a href="/kejifunen/366390.html" target="_blank" title="智能终端!用“第三只眼”来“看透”">智能终端!用“第三只眼”来“看透”</a></li> <li><a href="/kejifunen/366303.html" target="_blank" title="对话高通创投沉金! AI投资不会降温,终端智能是中小型创业公">对话高通创投沉金! AI投资不会降温,终端智能是中小型创业公</a></li> <li><a href="/kejifunen/366177.html" target="_blank" title="《智能家居产品》互联智能与终端智能的博弈">《智能家居产品》互联智能与终端智能的博弈</a></li> <li><a href="/kejifunen/365977.html" target="_blank" title="浦发银行数字生态再发力,全面升级“SWIFT跨境汇款”">浦发银行数字生态再发力,全面升级“SWIFT跨境汇款”</a></li> <li><a href="/kejifunen/365800.html" target="_blank" title="AI与艺术跨界长虹CHiQ电视Q5R诠释时尚精致生活">AI与艺术跨界长虹CHiQ电视Q5R诠释时尚精致生活</a></li> <li><a href="/kejifunen/365719.html" target="_blank" title="苏宁小天鹅宝洁818跨界玩“服装拯救研究院”">苏宁小天鹅宝洁818跨界玩“服装拯救研究院”</a></li> <li><a href="/kejifunen/365601.html" target="_blank" title="海信跨界VR新品蚁视VR眼镜亮相">海信跨界VR新品蚁视VR眼镜亮相</a></li> <li><a href="/kejifunen/365552.html" target="_blank" title="360与中国电信签约,将在泛智能终端领域开展战略合作">360与中国电信签约,将在泛智能终端领域开展战略合作</a></li> <li><a href="/kejifunen/365418.html" target="_blank" title="谁是你手腕上的智能终端舞者!智能手表还是智能手环? ">谁是你手腕上的智能终端舞者!智能手表还是智能手环? </a></li> <li><a href="/kejifunen/364936.html" target="_blank" title="中国赣州家具产业跨境电子商务峰会在江西南康举行">中国赣州家具产业跨境电子商务峰会在江西南康举行</a></li> <li><a href="/kejifunen/364853.html" target="_blank" title="跨越2014年智能硬件死亡谷:谁还活着? ">跨越2014年智能硬件死亡谷:谁还活着? </a></li> <li><a href="/kejifunen/364693.html" target="_blank" title="智能语音会颠覆增值终端行业吗? ">智能语音会颠覆增值终端行业吗? </a></li> <li><a href="/kejifunen/364690.html" target="_blank" title="可穿戴设备作为智能终端行业的新热点,已经走下神坛了">可穿戴设备作为智能终端行业的新热点,已经走下神坛了</a></li> <li><a href="/kejifunen/364676.html" target="_blank" title="智能锁九大阵营正在交战,大企业跨境涌入有何利弊? ">智能锁九大阵营正在交战,大企业跨境涌入有何利弊? </a></li> <li><a href="/kejifunen/364666.html" target="_blank" title="小米手环2与拉卡拉跨界手环功能体验对比!谁更好? ">小米手环2与拉卡拉跨界手环功能体验对比!谁更好? </a></li> <li><a href="/kejifunen/364663.html" target="_blank" title="手机厂商集体跨界的电视行业发展现状如何? ">手机厂商集体跨界的电视行业发展现状如何? </a></li> <li><a href="/kejifunen/364609.html" target="_blank" title="Apple Watch 遇到了强劲的对手,来聊聊钟表界的“跨">Apple Watch 遇到了强劲的对手,来聊聊钟表界的“跨</a></li> <li><a href="/kejifunen/364517.html" target="_blank" title="力维家x小米有品,力维家布局3C渠道,引领行业跨界流量变革">力维家x小米有品,力维家布局3C渠道,引领行业跨界流量变革</a></li> <li><a href="/kejifunen/364516.html" target="_blank" title="比特大陆聚焦边缘计算,详细讲解终端AI芯片BM1880">比特大陆聚焦边缘计算,详细讲解终端AI芯片BM1880</a></li> </ul> </div> </div> <div class="main-right"> <div class="right_fix"> <div class="r_con"> <div class="r_title">最新推荐</div> <ul> <li><em>1</em><a href="/kejifunen/371273.html" title="苹果跨界!让VR和iPhone擦出火花" target="_blank">苹果跨界!让VR和iPhone擦出火花</a></li> <li><em>2</em><a href="/kejifunen/370652.html" title="移动支付+可穿戴设备+车联网跨平台连接新消费" target="_blank">移动支付+可穿戴设备+车联网跨平台连接新消费</a></li> <li><em>3</em><a href="/kejifunen/370638.html" title="种植圣诞礼物!支持eSIM 1双终端的HUAWEIWATCH" target="_blank">种植圣诞礼物!支持eSIM 1双终端的HUAWEIWATCH</a></li> <li><em>4</em><a href="/kejifunen/370450.html" title="跨过全屏!旷视科技助力坚果Pro 2S发布全球首款无限屏手机" target="_blank">跨过全屏!旷视科技助力坚果Pro 2S发布全球首款无限屏手机</a></li> <li><em>5</em><a href="/kejifunen/370438.html" title="针对商旅客人三大痛点,卡萨帝联手山航、携程等打造高端生态圈" target="_blank">针对商旅客人三大痛点,卡萨帝联手山航、携程等打造高端生态圈</a></li> <li><em>6</em><a href="/kejifunen/370431.html" title="移动医疗深度报告分析!产业跨界擦出的“火花”(一)" target="_blank">移动医疗深度报告分析!产业跨界擦出的“火花”(一)</a></li> <li><em>7</em><a href="/kejifunen/370391.html" title="可穿戴设备如何跨过“标准化”的门槛? " target="_blank">可穿戴设备如何跨过“标准化”的门槛? </a></li> <li><em>8</em><a href="/kejifunen/370275.html" title="ECShop帮助OPPO建设越南官方网站,这次跨境海外旅行很" target="_blank">ECShop帮助OPPO建设越南官方网站,这次跨境海外旅行很</a></li> <li><em>9</em><a href="/kejifunen/370068.html" title="一体机医疗自助终端解决了就医“三长一短”问题" target="_blank">一体机医疗自助终端解决了就医“三长一短”问题</a></li> <li><em>10</em><a href="/kejifunen/370054.html" title="智能穿戴设备的发展必须跨越标准化的坎" target="_blank">智能穿戴设备的发展必须跨越标准化的坎</a></li> </ul> </div> <div class="r_con"> <div class="r_title">猜你喜欢</div> <ul class="you_like"> <li><em>1</em><a href="/kejifunen/369473.html" title="期待社交的AR跨界掘金游戏" target="_blank">期待社交的AR跨界掘金游戏</a></li> <li><em>2</em><a href="/kejifunen/369397.html" title="民生银行携瑞士手环跨界合作,推动钱包理财" target="_blank">民生银行携瑞士手环跨界合作,推动钱包理财</a></li> <li><em>3</em><a href="/kejifunen/369227.html" title="“十”鲜!松下大型跨门冰箱上市! " target="_blank">“十”鲜!松下大型跨门冰箱上市! </a></li> <li><em>4</em><a href="/kejifunen/369049.html" title="2016中国移动终端质量报告发布(全文下载) 82款手机评测" target="_blank">2016中国移动终端质量报告发布(全文下载) 82款手机评测</a></li> <li><em>5</em><a href="/kejifunen/369023.html" title="华为杨涛!两年后,可穿戴设备将跨越鸿沟" target="_blank">华为杨涛!两年后,可穿戴设备将跨越鸿沟</a></li> <li><em>6</em><a href="/kejifunen/368830.html" title="虚拟现实技术的竞争日趋激烈, 2016年将有大跨越" target="_blank">虚拟现实技术的竞争日趋激烈, 2016年将有大跨越</a></li> <li><em>7</em><a href="/kejifunen/368705.html" title="LV进军智能手表市场,运动与时尚的跨界智能穿戴市场前景如何?" target="_blank">LV进军智能手表市场,运动与时尚的跨界智能穿戴市场前景如何?</a></li> <li><em>8</em><a href="/kejifunen/368445.html" title="跨越国界,奇迹发生!泰捷Jeet w1运动防水蓝牙耳机" target="_blank">跨越国界,奇迹发生!泰捷Jeet w1运动防水蓝牙耳机</a></li> <li><em>9</em><a href="/kejifunen/368399.html" title="新品牌抵达终端!云媒体云仓储智能供应链系统受关注" target="_blank">新品牌抵达终端!云媒体云仓储智能供应链系统受关注</a></li> <li><em>10</em><a href="/kejifunen/368280.html" title="跨界合作好看,智能穿戴还能持续流行多久? " target="_blank">跨界合作好看,智能穿戴还能持续流行多久? </a></li> <li><em>11</em><a href="/kejifunen/367967.html" title="博鳌亚洲论坛第二十四届议程预览!可穿戴设备和智能终端的未来" target="_blank">博鳌亚洲论坛第二十四届议程预览!可穿戴设备和智能终端的未来</a></li> <li><em>12</em><a href="/kejifunen/367649.html" title="显卡霸主NVIDIA跨界可穿戴虚拟现实Shiled VR登场" target="_blank">显卡霸主NVIDIA跨界可穿戴虚拟现实Shiled VR登场</a></li> <li><em>13</em><a href="/kejifunen/367505.html" title="可穿戴设备将成为中国智能产业实现“跨越式”发展的契机" target="_blank">可穿戴设备将成为中国智能产业实现“跨越式”发展的契机</a></li> <li><em>14</em><a href="/kejifunen/367417.html" title="苏宁打造智能家居生态链将对智能终端市场产生哪些影响? " target="_blank">苏宁打造智能家居生态链将对智能终端市场产生哪些影响? </a></li> <li><em>15</em><a href="/kejifunen/367252.html" title="腾讯语电亮相CHIMA2018,助力浙江大学儿童医院构建终端" target="_blank">腾讯语电亮相CHIMA2018,助力浙江大学儿童医院构建终端</a></li> <li><em>16</em><a href="/kejifunen/366763.html" title="2015世界移动通信大会!手机厂商跨界玩智能穿戴" target="_blank">2015世界移动通信大会!手机厂商跨界玩智能穿戴</a></li> <li><em>17</em><a href="/kejifunen/366656.html" title="智能穿戴健康终端与生态环境研究" target="_blank">智能穿戴健康终端与生态环境研究</a></li> <li><em>18</em><a href="/kejifunen/366649.html" title="2018北京国际音乐生活展是一次跨界体验,酷狗硬件让音乐复活" target="_blank">2018北京国际音乐生活展是一次跨界体验,酷狗硬件让音乐复活</a></li> <li><em>19</em><a href="/kejifunen/366605.html" title="eSIM就是未来!中国移动“一号双终端”业务正式上线" target="_blank">eSIM就是未来!中国移动“一号双终端”业务正式上线</a></li> <li><em>20</em><a href="/kejifunen/366596.html" title="当天使遇上足球看游族《天使纪元》如何玩转世界杯跨界营销" target="_blank">当天使遇上足球看游族《天使纪元》如何玩转世界杯跨界营销</a></li> </ul> </div> </div> </div> </div> <div class="related_article"></div> <div class="footer"> <p>Copyright © 2012-2022 程序源 版权所有<a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">豫ICP备2022028201号</a></p> <p>重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。 如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。</p> </div> <!-- 应用插件标签 start --> <!-- 应用插件标签 end --> </body> </html>