1、余 萝长期从事于工具类产品开发,擅长以产品经理的思维,工程的技巧提升工具的效率与使用体验。在前端开发、工程效率等方面有丰富实践经验。成方金科UI自动化测试框架CFUI负责人嘉宾照片面向自然语言交互的UI自动化测试框架余萝成方金科UI自动化测试框架CFUI负责人目录CONTENTS概况概况01 成方金科成方金科UI自动化测试框架自动化测试框架CFUI设计思路设计思路02 自动化录制脚本实践自动化录制脚本实践03 最后最后04 01概况概况UI自动化测试目前存在的问题脚本编写难度大测试流程较长元素定位繁琐隐藏页面元素混淆元素查找页面组件操作麻烦对测试人员编码水平有较高要求脚本运行稳定性差脚本维护成
2、本高xpath,css等元素定位方式差网络请求不稳定界面变动频繁测试数据被污染xpath等定位方式可阅读性差界面变动频繁实现方式变动频繁高级人工智能解决一切以自然语言编写测试用例基于图像识别编写测试用例脚本录制形式编写测试用例需求妥协技术突破我们的终极目标计划now以类自然语言API编写测试用例完善脚本录制工具以真正的自然语言编写测试用例2023年底?CFUI框架框架是API的集合,框架的核心就是提供简洁易用的API,最大程度地提升测试用例编写与维护效率。02成方金科成方金科UI自动化测试框架自动化测试框架CFUI设计思路设计思路一些应用“自然语言”的UI测试框架关键字驱动测试框架(Rober
3、t Framework)RF以关键字驱动为核心思想进行设计。以关键字编写测试用例也是一种更接近自然语言的设计思路。但RF更多是一个抽象的测试框架,关键字的定义依然需要依赖Selenium这样的底层基础UI测试框架,需要以Selenium的API编写脚本。另外它只提出了关键字的概念,给了用户自由自定义关键字,这就好比提出了函数的概念,而没有提供一套具体的API。BDD类测试框架(Behave等)BDD(Behavior Driven Development)行为驱动开发测试框架主要应用于开发模式也为BDD的项目。一定程度上,这类测试框架可以看做关键字驱动思想在BDD开发模式这种场景下的应用。Fe
4、ature层可以通过预定义的自然语言编写用例,但与RF一样,它依然是一个抽象的测试框架,step的定义依然需要依赖Selenium这样的底层基础UI测试框架,需要以Selenium的API编写脚本。Playwright等框架Playwright与Airtest等底层基础UI测试框架对一些button,link提供了根据文本内容进行查找的API。但他们并没有提出要以自然语言编写测试用例,也没有着重强调优先广泛地使用文本进行元素查找,其API在文本使用的深度和广度方面都显不足,同时其API的设计也不符合自然语言的表达习惯。CFUI定位于Selenium,Playwright一样的底层UI测试框架,
5、通过API的设计,提供一套类自然语言的API,使测试人员能以接近自然语言的方式编写测试用例。后续,我们考虑接入一些成熟的自然语言识别技术,将自然语言转换为我们的类自然语言API,真正做到以自然语言编写测试用例。上层抽象框架底层基础框架设计思路一/优先广泛地使用基于文本内容的查找基于文本内容的查找能提供符合直觉的测试用例编写体验不仅仅只是提供了API,更是一种用例编写思路:以更接近自然语言的方式编写测试用例设计思路一/优先广泛地使用基于文本内容的查找table单元格查找Dialog查找设计思路一/优先广泛地使用基于文本内容的查找支持生僻字测试设计思路一/优先广泛地使用基于文本内容的查找为什么需要
6、引入查找上下文?来自古老框架jquery的灵感一个干净的新世界栈结构的多层嵌套与playwright的比较未来的场景,自动补充上下文查 找上 下 文设计思路二/查找上下文设置设计思路二/查找上下文设置为什么需要引入查找上下文?设计思路二/查找上下文设置来自古老框架jquery的灵感 connected dot设计思路二/查找上下文设置一个干净的新世界设计思路二/查找上下文设置栈结构的多层嵌套设计思路二/查找上下文设置与playwright的比较不改变定位符本身的情况下,以一种解耦的方式,实现了设置元素的查找范围Playwright脚本CFUI脚本设计思路二/查找上下文设置未来的场景,自动补充上