Web自动化系列--一个基于关键字驱动的自动化测试Library

首先说明下,这里采用的关键字驱动框架是RobotFramework,Web自动化测试框架是Selenium2。该Library是对自动化测试的一个初步探索,并不完善,欢迎大家一起讨论。

这个自动化Library的初衷是:

  • 简化用例编写,脱离Eclipse环境(不使用TestNG)
  • 提高用例的可维护性
  • 提高用例的可读性
  • 提供较高的可扩展性

针对上述目的采用的实现方法是:

  • 使用类似表格填充的方式编写用例,带关键字自动提示功能(RobotFramework IDE)
  • 对自动化用例根据进行分层,每层提供对外统一关键字(采用POM思想分层)
  • 元素管理和测试业务逻辑分离
  • 除基础关键字外,其他所有层级的关键字采用中文统一规范命令,用例呈现形式接近自然语言
  • 提供分布式部署

那么,在上述的实现方法之下,用例的可读性、可维护性和可扩展性有哪些提高呢?

可读性

上层关键字规范的中文命名方式使用例的呈现方式接近于自然语言,可读性大大增强,一个具体的用例写出来的形式如下图所示:
用例

可维护性

  • 可读性增强的情况下,可维护性也会随之得到提升
  • 在用例运行报错的情况下,关键字驱动和中文命名的优势就体现出来了,可以通过定位出问题的关键字找到出错位置
  • 采用分层设计,用例组织逻辑清晰,管理起来更加方便,如下图所示
    遵循POM的分层设计

可扩展性

这里只提一下RobotFramework提供的关键字驱动的可扩展性还是十分优秀的,把需要的功能或者操作封装成关键字即可;除此之外,Selenium2自身的扩展性是完整保留的,Grid也是支持的

RFUI对Selenium2的二次封装

RobotFramework提供上层的关键字驱动支持,底层的关于 元素/页面/窗口 各种操作的基础关键字,例如,click/input_text/maximize_browser_window,还是由Selenium2提供支持,所以需要将Selenium2封装成RobotFramework支持的TestLibrary。

通过下图可以看出对Selenium2做了哪些封装,例如,支持文本定位点击(Web Click TextButton)、支持Windows下Flash上传控件(Web Upload File)、相同元素根据序号定位操作(Web Click Element)、支持Hover and Click(Web Hover And Click)、获取匹配指定Locator的元素个数(Web Get Elements Num)、文本框输入完成后按下Enter键(Web Input Text)。当然包括这些特有的操作,所有的操作中都添加了加载保护(Wait Until Element Is Enabled/Visible),等元素到了可操作状态才进行下一步操作,所以可以省去用例中的Sleep。图片太小可以右键->“新标签页打开”。
二次封装的WebLibrary

有了封装好的WebLibrary和RobotFramework,那么我们的框架结构是这样的:
这里写图片描述

具体到实现原理的框架结构其实是这个样子的(需要结合前两篇博客来看):
这里写图片描述

总体来讲,框架功能的完善性很多可以加强的地方,不过先前提出的几个问题基本上得到了解决。这种基于关键字驱动的自动化用例编写方式是否可行,通过在实际项目中的使用之后得出的结论是肯定的,不过还有许多有待完善的地方,比如RobotFramework IDE还不够成熟,WebLibrary提供的基础关键字不够全面不够智能等等,这些会在后续的对自动化测试的学习中逐渐完善。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第三代通信技术(3G)的应用已在全球范围内逐步展开,各大设备供应商正积极研发能提供更高性能的新一代网管系统来满足市场需求。网管系统是一个庞大复杂的通信管理系统,由于客户的功能需求以及网管系统自身技术的更新等原因使网管系统的本不断更新,网管系统最终系统测试的工作量会很大。因此需要引入自动化测试来提高测试效率保证测试质量。 本文首先分析了当前网管系统测试现状以及对自动化测试的需求。在这样的前提条件下,论文采用了关键字驱动脚本技术,同时吸取了当前流行的自动化测试框架中一些先进的思想,提出了一个适合网管系统测试的自动化测试框架。然后论文对该框架的测试流程进行详细的描述,在此框架的基础上进行系统的总体设计,并完成系统主要模块的设计与实现。本文最终实现了一个基于关键字驱动自动化测试平台APK(Automated test Platform based on Keywords)。 在APK的实现过程中采用基于C/S的网络框架,该网络框架可以实现多用户定制测试任务并完成分布式自动化测试。在APK系统框架中对关键字进行了重新的定义,关键字不再是目前流行的框架中所定义的原子动作,而是一个用于实现一项测试规程的原子动作序列,同时该框架将结果验证环节放到关键字内部去实现。接口设计方面APK提供了一个外部接口用来整合网管系统中现有的业务测试工具,同时为了满足日后功能扩展的需要APK还预留了一个扩展接口。 APK可以应用于Java应用程序的GUI(Graphical User Interface)自动化测试,同时结合外部接口调用外部工具还可以完成较复杂的业务自动化测试。目前APK已经应用于网管系统的回归测试、边界值测试和大话务量环境数据的配置中,并已经取得了显著的效果,达到了预期的目标。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值