其他分享
首页 > 其他分享> > 使用Robot Framework实现多平台自动化测试

使用Robot Framework实现多平台自动化测试

作者:互联网

尊重原创版权: https://www.gewuweb.com/hot/11238.html

使用Robot Framework实现多平台自动化测试

XwtT4tzQG9ERWpdh9/?source=tuwen_detail)

基于Robot
Framework、Jenkins、Appium、Selenium、Requests、AutoIt等开源框架和技术,成功打造了通用自动化测试持续集成管理平台(以下简称“平台”),
** 显著提高了测试质量和测试用例的执行效率。 **

_01 _ ** 设计目标 **

_02 _ ** 架构设计 **

平台采用组件化的思想和分层架构, ** 可分为4层, ** 每一层都实现特定的功能,并提供接口给其它层调用:

使用Robot Framework实现多平台自动化测试

** 图1 ** 平台架构设计

_03 _ ** 平台实现 **

在自动化框架选型上,我们选择Robot Framework(以下简称“RF”) ** 作为自动化测试平台的核心底层框架 ** ,
Jenkins作为持续集成与任务调度平台,同时选择AppiumLibrary、Selenium2Library、RequestsLibrary、AutoItLibrary等作为扩展测试库,以应对不同的测试需求。

使用Robot Framework实现多平台自动化测试

** (1)RF框架 **

RF是一款 ** 功能丰富并且扩展性强的开源自动化测试框架 ** ,主要 ** 用于轮次较多的回归测试。 **
框架通过关键字的组合形成测试逻辑,最终通过各个底层测试库与被测系统交互,完成测试工作。

RF框架为APP、Web、接口、数据库测试等 ** 提供了标准的底层关键字API, **
测试人员只需在这些关键字的基础上开发自定义脚本,即可满足自身测试的要求。

使用Robot Framework实现多平台自动化测试

** 图2 ** RF架构图

** (2)AppiumLibrary **

Appium是一个 ** 开源、跨多平台多语言 **
的测试框架,相比其它框架,它支持iOS和Android平台上的原生、Web和混合应用自动化测试,可在平台间重用代码,编写测试脚本和运行测试时不需要对源码重新编译,在脚本的编写和实现上对编程语言没有太多要求,测试更轻量灵活。

AppiumLibrary是RF框架基于Appium的第三方扩展应用程序测试库,可 ** 支持券商手机证券APP自动化测试开发。 **

使用Robot Framework实现多平台自动化测试

** 图3 ** Appium架构图

** (3)Selenium2Library **

Selenium是 ** 为了实现多平台Web应用程序测试而专门设计 ** 的自动化测试工具套件,具有 可扩展、跨平台、多浏览器支持
等特性。Selenium
2集成了WebDriver,WebDriver通过原生浏览器支持或者浏览器扩展直接控制浏览器,测试人员可根据不同的平台、不同浏览器选择不同的WebDriver去执行测试。

Selenium2Library是RF框架基于Selenium2的Web测试库,可 ** 支持券商商城、网厅等Web应用自动化测试开发。 **

使用Robot Framework实现多平台自动化测试

** 图4 ** WebDriver架构图

** (4)RequestsLibrary **

接口测试一般 ** 用于多系统间交互开发,或拥有多个子系统的应用系统开发的测试。 **
Requests是用Python语言编写,基于urllib,采用Apache2
Licensed开源协议的HTTP库,可满足HTTP接口测试需求。RequestsLibrary是RF框架下的API测试库,可
支持券商IFS或其它自定义开发接口自动化测试开发。

** (5)AutoIt桌面应用测试 **

AutoIt是一款 ** 用于对Windows GUI进行自动化操作的软件, **
它可以模拟键盘按键,、鼠标移动以及窗口或控件的操作来实现自动化任务。AutoItLibrary是RF框架基于AutoIt的Win32桌面应用测试库,可
支持券商核心柜台、网上交易 等桌面应用系统自动化测试开发。

使用Robot Framework实现多平台自动化测试

** 图5 ** Au3Info识别GUI对象示例

** (6)Jenkins持续集成 **

Jenkins是一种 ** 开源的持续集成工具, **
它支持svn、Git等多种SCM配置管理工具,可根据项目要求设置定时构建(如每小时、每次间隔时间或每天晚上几点钟等)或触发构建(如源代码提交触发),支持Shell脚本、Windows批处理、Ant构造等多种构建方法,从而满足在不同操作系统上运行。

Jenkins支持分布式构建(类似于Selenium Grid), 可实现多主机多任务并行执行 。Jenkins还 提供丰富的插件支持,
安装Robot Framework plugin插件后可执行RF自动化测试用例。

使用Robot Framework实现多平台自动化测试

** 图6 ** Jenkins+RF+AppiumLibrary自动化测试示例

_04 _ ** 平台的创新点 **

** 1、平台架构灵活、适应场景广,满足多种不同类型自动化测试 **

平台基于轻量的RF开源框架, ** 具有良好的扩展性, ** 通过集成不同的开源扩展测试库可满足 ** 不同类型、不同平台和应用 ** 的测试:

所以该平台 ** 具有相当强的灵活性、兼容性和易用性, **
尤其适用于核心柜台、网上交易、手机证券等界面变化不大、软件生命周期长,经常推出新版本的产品自动化测试。

** 2、平台实现端到端自动化测试管理,一站式图形展示信息 **

平台支持用例管理、脚本开发调试、任务分布式调度执行、测试报告呈现全流程

使用Robot Framework实现多平台自动化测试

** 图7 ** 平台测试管理

使用Robot Framework实现多平台自动化测试

** 图8 ** 测试日志及报告

** 3、基于数据和关键字驱动的自动化测试,灵活应对被测试系统变更 **

平台克服了传统自动化框架录制回放模式脚本高耦合性的缺点, ** 具有高健壮性、高复用性和良好的维护性: **

_05 _ ** 平台的实施效果 **

** 1、提高测试用例设计质量和业务场景的覆盖度 **

东莞证券自动化测试项目自实施以来, ** 用例粒度和覆盖度得到了较大改善, **
手机APP交易、接口、Web(网厅/商城/有财贷)、核心柜台、网上交易的测试用例分别达到1645、153、76、569和1168个,用例规模平均增长近8倍,基本覆盖所有交易类业务。平均自动化率达65%以上,极大提升了产品研发团队的质量信心。

** 2、提升测试用例执行效率,加快产品投产速度 **

自动化测试 ** 提高了测试用例执行的效率和准确性,降低了生产应用系统的故障率。 **
另外持续集成尽早地介入,减少了版本延迟发布的可能性。以东莞证券手机APP交易自动化测试为例,之前版本迭代周期是2-3个月,开展自动化测试后缩短至1个月;以往一轮15人天的手动测试改为自动化执行后不到2人天。按平均每月迭代一次计算,全年可省近150人天的测试资源。如对接独立的测试柜台(支持7*24执行)并增加多台设备并行执行,自动化测试效率还可大幅提升;该项目已投入近20轮版本迭代测试,发现缺陷17个。

_06 _ ** 总结 **

东莞证券基于开源的RF框架从0到1建立起通用自动化测试体系,并在手机APP、核心柜台、网上交易、接口、商城、网厅等项目中落地,同时结合Jenkins实现自动化测试持续集成和分布式构建,
** 有效支撑了敏捷和快速迭代过程 ** 。

限于篇幅,本文并未就APP、Web、桌面应用、接口等自动化测试开发方法展开详细论述,而是 ** 提供一种建立通用自动化测试持续集成管理平台的思路, **
希望对其他券商有一定的启发和借鉴意义。

鉴意义。

更多内容参考: https://www.gewuweb.com/sitemap.html

标签:脚本,框架,平台,Robot,Framework,RF,测试,自动化
来源: https://www.cnblogs.com/lihanlin/p/16256225.html