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

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

01、设计目标

平台通用且支持不同类型的自动化测试

平台框架轻量、开放、灵活,有强大丰富的测试库,全面支撑PC桌面应用(如核心柜台和网上交易系统)、Web应用(如商城网厅)、APP应用(如手机证券)、接口(如柜台周边接口)、数据库(如Oracle)等自动化测试,便于后续持续测试开发和集中统一管理。

平台支持自动化测试全流程

平台展示界面统一、清晰、简洁,覆盖测试用例设计、测试脚本开发、测试执行、测试报告生成等流程。通过对测试流程实现统一管理,降低测试人员使用平台的门槛。

平台具有良好的扩展性、易维护性

平台支持协同工作、分布式测试执行,能与版本管理工具、软件缺陷管理系统、企业邮件系统等集成,同时在项目不断迭代的过程中,自动化测试脚本能弹性调整和代码复用。

02、架构设计

平台采用组件化的思想和分层架构,可分为4层,每一层都实现特定的功能,并提供接口给其它层调用:
在这里插入图片描述

最底层是被测系统,主要明确被测对象的形态。平台支持APP、Web和PC应用测试,以及接口、数据库等测试。

往上是测试库。平台除提供如进程、字符串、集合、截图处理等基础测试库外,还提供Web、APP、接口等专用测试的扩展测试库,以支持不同的被测系统选择相应的测试库。

中间是测试框架,其作用包括用例管理、测试数据管理、测试运行、测试报告等。

最上面则是持续构建层,负责任务、机器、排队等控制和调度,自动完成整个测试作业过程。

03、平台实现

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

在这里插入图片描述
(1)RF框架

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

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

在这里插入图片描述

(2)AppiumLibrary

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

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

在这里插入图片描述

(3)Selenium2Library

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

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

在这里插入图片描述

(4)RequestsLibrary

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

(5)AutoIt桌面应用测试

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

在这里插入图片描述

(6)Jenkins持续集成

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

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

在这里插入图片描述

04、平台的创新点

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

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

RF+AppiumLibrary可实现APP自动化测试,且可在iOS和Android之间重用代码,只需要编写出一个统一的测试脚本就可以运行在不同的平台上,这种方式将极大提高自动化测试脚本的使用率,节省编写和调试测试脚本的时间;

RF+Selenium2Library则可实现Chrome、IE、Firefox等多浏览器下的Web应用程序自动化测试;

RF+AutoItLibrary可实现一般Win32桌面应用程序自动化测试;

RF+RequestsLibrary可实现接口自动化测试,等等

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

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

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

在这里插入图片描述
在这里插入图片描述

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、桌面应用、接口等自动化测试开发方法展开详细论述,而是提供一种建立通用自动化测试持续集成管理平台的思路,希望对其他券商有一定的启发和借鉴意义。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/646578.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux操作系统——进程间通信简单介绍

1.进程间通信的介绍 我们之前所谈的进程很多都是通过一个进程来进行理解的,可是很多情况下有一些任务呢,他是有很多的进程通过协作完成,比如说我们之前谈到的命令行,一条命令也是用一个进程去执行的。 像这样,我们是通…

一套令我获益颇多的生活模式

你有没有过这样的感受: 有时候,会觉得自己不够好,于是下定决心,做好计划,打算作出一些改变。 但坚持了两天,却又故态复萌,回到旧的模式里。仿佛有一种力量把你往回拉扯,强迫你重复着…

用这个烟感监测技术!同事下巴都惊掉了!

在当今社会,火灾作为一种极具破坏性的灾害,对人们的生命和财产安全构成着严峻的威胁。 为了更好地预防和管理火灾风险,烟感监控系统成为一项不可或缺的技术创新。为各行各业提供了全方位、高效的火灾预警和防范手段。 客户案例 商业办公楼 …

提升效率,节省时间:如何利用享搭低代码平台快速开发应用

在当今快节奏的商业环境中,企业需要以高效的方式开发应用程序,以迅速满足市场需求并保持竞争优势。而传统的软件开发往往需要耗费大量的时间和资源,限制了企业的创新能力和快速响应能力。然而,现在有一种强大的工具可以帮助企业解…

SecureCRT的安装

SecureCRT的安装 加强版的串口调试助手 全部默认安装,默认安装在c盘 SecureCRT收费,可以下载Putty安装 后续完善

【学网攻】 第(4)节 -- 交换机划分Vlan

文章目录 【学网攻】 第(1)节 -- 认识网络 【学网攻】 第(2)节 -- 交换机认识及使用【学网攻】 第(3)节 -- 交换机配置聚合端口 前言 网络已经成为了我们生活中不可或缺的一部分,它连接了世界各地的人们,让信息和资源得以自由流动。随着互联网的发展&am…

C# 实现 Word 加盖骑缝章效果

目录 实现效果 范例运行环境 Office DCOM 配置 设计实现 创建stamp图章类 电子章图片的计算与定位 旋转图片方法 总结 实现效果 在OA的自动化处理系统中,通过审批的最终节点,可能会对WORD文件加盖电子章,比如定位带有指定文字的Ra…

【操作系统】实验八 proc文件系统

🕺作者: 主页 我的专栏C语言从0到1探秘C数据结构从0到1探秘Linux 😘欢迎关注:👍点赞🙌收藏✍️留言 🏇码字不易,你的👍点赞🙌收藏❤️关注对我真的很重要&…

ASUS华硕无畏Pro15笔记本电脑(M6500QB,M6500QH)工厂模式原厂OEM预装Windows11.22H2系统 含Recovery恢复

原装出厂Windows11系统适用于华硕无畏15笔记本电脑型号:M6500QB和M6500QH 链接:https://pan.baidu.com/s/1AVGLN6-ILIRogOMj48Mk1w?pwdmi7d 提取码:mi7d 带有ASUS RECOVERY恢复功能、自带所有驱动、出厂主题专用壁纸、系统属性联机支持…

Linkedin领英账号被封是为什么?如何反封控?2024外贸拓客必看攻略

大家都知道,领英作为全球最大的职场社交平台,拥有非常精准的领域人脉,有着大量的高质客户资源,对于外贸等跨境业务来说,他是一个精准开发客户的最好渠道。 但是许多外贸小伙伴也经常遇到一个难题,那就是领…

司铭宇老师:汽车销售培训:汽车销售员培训:汽车销售技巧培训:汽车销售技巧和话术

汽车销售培训:汽车销售员培训:汽车销售技巧培训:汽车销售技巧和话术 汽车销售是一项充满挑战性的工作,它需要销售人员具备良好的沟通技巧、谈判技巧以及产品讲解能力。在这篇文章中,我们将详细探讨汽车销售中的技巧和话…

关于爬虫爬取网页时遇到的乱码问题的解决方案。

目录 前言解决措施 前言 最近,我像爬取一下三国演义这本书籍的全部内容。 网站的网址为:https://www.shicimingju.com/book/sanguoyanyi.html 但是我爬取出来的结果是这样的 会遇到乱码。 经过我多方面的调试发现,就是网页的编码和我pycha…

C++ STL之deque的理解及使用

文章目录 1. 介绍2. 实现原理(简单理解)3. deque的优缺点4. deque类的使用4.1 deque类对象的构造函数4.2 deque类对象的容量操作4.3 deque类对象的修改操作4.4 deque类对象的访问及遍历操作 1. 介绍 deque(双端队列):是一种双开口的连续空间的…

MATLAB curve fitting toolbox没有怎么办?

版本:MATLAB R2023b 如果在安装MATLAB时仅仅选择了安装MATLAB,而并未选择其他选项,则在进入MATLAB后会发现顶部的APP栏中无法找到曲线拟合工具箱。 本人跟随MATLAB中的教程进行下载时,出现了如下报错: 最终解决方案&a…

【SVD生成视频+可本地部署】ComfyUI使用(二)——使用Stable Video Diffusion生成视频 (2023.11开源)

SVD官方主页 : Huggingface | | Stability.ai || 论文地址 huggingface在线运行demo : https://huggingface.co/spaces/multimodalart/stable-video-diffusion SVD开源代码:Github(含其他项目) || Huggingface 在Comfyui使用&…

MIT_线性代数笔记:线性代数常用概念及术语总结

目录 1.系数矩阵2.高斯消元法3.置换矩阵 Permutation4.逆矩阵 Inverse 1.系数矩阵 线性代数的基本问题就是解 n 元一次方程组。例如:二元一次方程组 2 x − y 0 − x 2 y 3 \begin{align*} & 2x - y 0\\ & -x2y 3 \end{align*} ​2x−y0−x2y3​ 写成…

谷歌公布一个可以让 AI 进行自我判断输出内容正确性的模型训练框架 ASPIRE

谷歌开发了一款名为 ASPIRE 的训练框架,旨在增强人工智能(AI)模型的选择性预测能力。这款框架为模型引入了 “可信度” 机制,即模型会输出一系列答案,并为每个答案赋予一个正确概率评分。通过这种方式,ASPI…

经典面试题-死锁

目录 1.什么是死锁? 2.形成死锁的四个必要条件 3.死锁的三种情况 第一种情况: 举例: 举例: 第二种情况:两个线程 两把锁 举例: 第三种情况:N个线程 M把锁 哲学家进餐问题 1.什么是死锁&…

Linux破解密码

破解root密码(Linux 7) 1、先重启——e 2、Linux 16这一行 末尾加rd.break(不要回车)中断加载内核 3、再ctrlx启动,进入救援模式 4、mount -o remount,rw /sysroot/——(mount挂载 o——opti…

选择海外云手机需要考虑什么?

随着跨境电商行业的蓬勃发展,企业们纷纷寻找提升平台流量和广告投放效果的方法,这已成为业界的当务之急。传统的宣传模式在国内受到直播和链接带货等新兴方式的冲击,而在国外,类似的趋势也在悄然兴起,呈现出广阔的发展…