自动化测试框架设计核心理念——关键字驱动

很多人在接触自动化测试时,都会听到关键字驱动这样的一个概念,但是在研究时却有些不太清楚这种驱动模式的设计及实现到底该如何着手去做。

关键字驱动,作为一种自动化测试框架的设计形式,在很早的时候就已经有提及过了。它的基本原理或者说构思就是将原本的自动化代码进行代码与数据的分离,再将分离出来的代码二次分离,形成所谓行为代码与测试代码,而后再经由数据内容驱动行为代码,生成测试代码。从而更加便捷地进行自动化测试代码的管理,以及提高自动化的复用性,让使用者更加容易理解和使用自动化(毕竟还是有很多很多测试人员对代码一窍不通。


可能这个解释听起来有点复杂,那么我举个很简单的例子让大家了解一下关键字驱动的形式:

1. 我在吃饭。

2. 你在吃饭。

3. 他在吃饭。

这一组内容可以看到,不论是谁,都在做着吃饭这样的一个行为,而其中重点的是角色,也就是所谓的“你我他”,那么我们可以将“吃饭”这个行为提取出来,作为一个公共的内容,这样就只需要提供一个角色数据,就可以实现任何一个人吃饭的这样一件事情了。而这个提取行为作为公共内容的过程,就是所谓的关键字封装,通过角色数据去驱动这样的一个行为,形成这一件事情,这就是所谓的“关键字驱动+数据驱动”的自动化测试设计模式了。


那么在自动化测试中我们要实现关键字驱动的话,该如何去做呢?

首先是环境的准备:

1. Selenium+WebDriver常规组建的生成:(有关这部分可以参照我之前写的的Selenium环境搭建)

在Pycharm中导入Selenium模块

在Python安装根路径下添加driver文件

2. 如果想要结合数据驱动,则依据数据文件格式选择对应的组件安装:

Excel可以通过xlrd

yaml可以通过pyyaml

还有很多其他不一一例举了。

3. 如果想要整个框架做的更加完善,可以添加很多其他的内容,比如说logging日志记录,Requests接口自动化,Appium/uiautomator2移动端UI自动化等等等等,这里依据个人喜好和需要进行添加即可。

准备好环境后,就是重点的关键字封装提取,在这里以Selenium为例:

先看基本的工程结构:

定义一个最基本的关键字结构,创建一个包,专门用于管理各类关键字类对象,可以是WebUI,AppUI,接口的关键字对象。作为一个关键字库,用于存放和被调用。再定义一个包,专门用于调用关键字库的内容,实现自动化的执行,当然,也可以用其他形式,这里很多方法可以应用。

接着再来看看关键字类如何实现:

关键字类中,将常规的元素操作行为从Selenium对象中提取出来,然后进行二次封装,生成自己的关键字库,这个库可以理解为是工具库,当实际测试过程中需要应用到任何的方法时,直接通过实例化这个库,然后在库中进行调用即可。这个类中,在执行过程中是有可能会出现异常的,比如元素查找失败,超时等等,所以最好在关键字封装时,添加异常处理机制,避免在运行时出现异常而导致无法捕捉具体原因。

关键字类的调试:

因为没做数据驱动类,所以直接在Pycharm中编写测试代码中对已生成的关键字类进行调试,通过运行可以发现,整个过程已经可以正常实现,也就意味着,这个关键字对象库没有太大问题,而我们后续需要做的,就只是在这个对象库中不停添加需要的关键字即可。而结合到数据驱动,像是Excel、yaml等之后,也可以通过这些数据文件来驱动我们的对象库。

SO.

通过关键字驱动的实现,可以很好地将常规的自动化代码进行操作行为与测试代码的分离,生成复用性较高的自动化测试模式。而且结合到数据驱动,可以应用到多种不同类型的业务系统,来实现自动化测试工作。从而提升我们的工作效率以及个人的自动化测试能力。

robotframework安装_RobotFramework——基于关键字驱动的 ⾃动化测。。。 突然发现官⽅Robot Framework RIDE项⽬更新了,新的版本基于wxPython4.0.4⽀持了Python3.x,⽆疑是对于Robot Framework推 ⼴的重⼤利好(由于之前RIDE受限于wxPython,使得⽆法兼容Python3.x,部分⽤户望⽽却步……),本⽂主要介绍Robot Framework安 装,后续会介绍基于该框架的⾃动化测试设计及应⽤,若感兴趣的,可以关注⼀下。 Robot Framework RIDE官⽅: GitHub - robotframework/RIDE: Test data editor for Robot Framework 关键字驱动测试框架 关键字驱动测试框架 关键字驱动是对数据驱动的逻辑扩展,它的核⼼思想可以概括为数据、代码、流程(逻辑)解耦,同时完成了代码与测试描述(针对被测对象的 测试描述)的映射。该框架的原理是基于数据驱动的基础上,完成了对被测对象的拆分、抽象、 封装使之映射成⼀个个"关键字" (测试描 述),编写测试⽤例时,仅需要对关键字进⾏组合 ,即可完成不同场景的测试⽤例开发。 优点:对于业务⼿⼯测试⼈员,由⾯向代码或配置的开发转化为⾯向⾃然语⾔(测试描述)的开发,最⼤程度的降低了开发难度与维护成 本,同时提⾼了测试⽤例的易扩展性、易组织性,实现了⾃动化代码不随⽤例的增长⽽增多。 缺点:对测试⼈员的测试开发能⼒以及业务了解程度要求很⾼。 适⽤场景:被测对象包含复杂业务流程(逻辑),当然复杂的能做简单的更ok。 Robot Framework简介 简介 Robot Framework就是基于关键字驱动的⾃动化测试思想设计⽽成的,基于Python的开源测试框架,具备良好的可扩展性,⽀持数据驱 动,可以满⾜多种客户端(WEB端、移动端),覆盖不同测试类型(页⾯、API),⽐如: Web端⾃动化测试:Selenium2Library、Selenium2Library for Java Windows GUI 测试:AutoItLibrary 移动端测试:Android library、iOS library、AppiumLibrary Api接⼝测试:HTTP library (Requests) 数据库测试:Database Library (Python)、Database Library (Java) ⽂件测试:Diff Library …… 如,想了解更多⾃动化测试框架,可以阅读《接⼝⾃动化测试设计》。 Robot framework的安装 的安装 Robot framework框架是基于Python开发的,其运⾏依赖Python环境,需要到官⽹(http://www.python.org)下载并安装(需添加⾄环境 变量),此处不做详细介绍。 Robot framework的安装核⼼步骤 1. Robot framework安装 2. Robot framework-ride安装 Robot framework安装 安装⽅式如下: pip install robotframework Robot framework-ride安装 RIDE作为robot framework标配IDE,安装⽅式如下: pip install robotframework-ride 建议使⽤pip⽅式安装,其会⾃动安装其wxPython等依赖库,⽆须单独安装其依赖组件包。 Robot framework-ride启动 通过执⾏C:Python36Scriptside.py⽂件启动RIDE,如下: python ride.py 写⾏代码试⼀下: 执⾏结果如下: Robot framework离线安装 离线安装 只是下载和安装命令不同,这⾥不做详细介绍,具体命令如下: 离线下载 使⽤download参数离线下载.whl安装包⾄⽬标⽬录,如下: pip install robotframework-ride --download D:Download 离线安装 pip install --no-index --find-links="D:Download" robotframework-ride 若对你有所帮助,欢迎⼤家评论、留⾔。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值