cucumber+sikuli自动化测试框架演进

更新时间:2023-08-08 04:34:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

PDA客户端自动化框架演进2012-11-29

版本1 sikuli端:完成所有的脚本开发工作,通过 定义不同粒度的函数来实现对脚本的复用。 用bat文件运行sikuli脚本文件。 cucumber端:写feature文件,在 step_definitions里面调用bat文件执行sikuli脚 本,然后在每一个step中判断sikuli的运行结 果,以此来分析该step是否通过。

版本1 缺点:脚本在sikuli端写死了,cucumber端 只起到编写feature的作用。没有实现对step 原子级别的复用。sikuli端定义了大量函数, 不好理解。需要大量时间熟悉代码后才能 上手维护。 解决方法:把sikuli脚本打散,不再依赖 sikuli IDE执行脚本,通过cucumber直接调用 sikuli函数,实现对操作的原子级别控制。

版本2 不再依赖sikuli,sikuli只用做截图,以及简单的 流程控制。 sikuli端:截图,用函数封装图片和对图片基本 的click操作,也封装一些需要复用的基本流程。 cucumber端:1.调用sikuli函数库,对sikuli底层 函数用ruby进行包装,在step里面直接调用 ruby包装的sikuli底层函数。实现了对sikuli原子 级操作。 2.在step_definitions里面使用参数,实现类似 step的通用。不同的参数用哈希散列表或case when语句来区分。

版本2 缺点:feature里面使用大量原子级别描述性 语句,虽然step_definitions里面定义若干个 通用的step就可以了,但feature文件可读性 和易维护性很差。 解决方法:feature里面使用概括性自然语言, 而非完全操作细节。实现原子级step和其他 概括性step搭配灵活使用。在 step_definitions里面,实现原子级step和非 原子级step。

版本3 实现不同级别step的封装及复用。 sikuli端:截图,用函数封装图片和对图片 基本的click操作,也封装一些需要复用的基 本流程。 cucumber端:在step_definitions里面除了对 原子级step实现外,还实现各种非原子级 step。并在需要的时候直接调用。

版本3 缺点:在实现step的时候,cucumber会调用 大量sikuli封装的图片和点击函数,这些函 数都是以英文字母形式存在,可读性很差, 维护工作量也大。 解决方法:直接在sikuli端写step,显示step封 装要验证的图片,点击step封装要点击动作 及图片,图片直接贴进去,避免烦人的图 片命名问题。

版本4 直接在sikuli端写step。 sikuli端:对每一个要点击的图片都封装一 个点击的step,对每一个要验证的界面封装 一个验证的step。在step里面直接贴图,不 考虑命名问题。sikuli里除少量函数外,都 是step实现。 cucumber端:不再需要点击和显示step的实 现,避免了大量的case when语句及对sikuli 函数的调用。

版本4 缺点:sikuli端step通用性降低,大量类似的 ste

p被重复定义。比如点击step,对点击每 一个不同的图片都要定义一个step。 优点:在sikuli端编辑step,图片比较直观, 好理解,易操作。

版本5 完全不再依赖sikuli IDE,直接给图片命名成 feature语句中对应的拼音。 sikuli端:完全剔除,直接利用QQ截图,并给 图片命名成feature语句中对应的拼音。把图片 保存在图片对象库中。 cucumber端:1.调用第三方中文转拼音的库。 step实现的时候,直接把feature中的图片对象 转换成拼音,然后去图片对象库中寻找相应的 图片,执行相关操作。 2.使用参数,实现类似step的通用。

版本5 缺点:需要注意feature描述文字和图片对象 库中的命名一致。有时候会有多音字的问 题。这会增加脚本调试时间。

本文来源:https://www.bwwdw.com/article/qz0j.html

Top