RF 框架实现企业级 UI 自动化测试

RobotFramework 框架可以作为公司要做自动化 但是又不会代码的一种临时和紧急情况的替代方案,上手简单。

 

现在大家去找工作,反馈回来的基本上自动化测试都是刚需!没有自动化测试技能,纯手工测试基本没有什么市场。

但是很多人怕代码,觉得自动化测试就需要代码!代码学习起来很难!当然代码学习不难,只要有好的学习方法!不过对于目前很多不会代码的同学,我今天要给大家讲一个自动化测试框架,就是不会代码也能做的自动化测试:RobotFramework框架。

可以作为公司要做自动化 不会代码的 临时和紧急情况的替代方案。解一时之需。

什么是RF框架?

你自己不会,你就站在巨人的肩膀上前进,这个RF就是一个巨人。

这是一个别人用Python代码封装的一个的工具和框架。底层是Python代码,提供了非常丰富的关键字,直接可以实现自动化代码想要实现的功能。这些关键字只需要做表格填空就可以了。

所以Robotframework有它得天独厚的优势:

  • 不用写代码,填表格就可以,可读性很高

  • 学习和使用门槛很低,上手不需要任何代码基础

  • 而且也有很多内置库和插件和第三方库可以按照和导入使用,快速实现常见的基本测试需求。

这也就是导致很多没有自动化团队的公司会选择这个工具做自动化测试。

如何使用RF框架做自动化测试?

其实做自动化侧测试就是把手工测试的行为和动作 转化为代码和工具。所以,他的测试步骤和基本思路是一致的。只是手段切换成工具和代码而已。

我们以电商项目为例:现在要做两条用例:

  • 用例1:输入用户名和密码,验证码,点击登录,检查是否登录成功

  • 用例2:输入搜索商品名字,点击搜索,检查结果是否正确

如果用手工测试做步骤:

第一步:准备好测试数据和用例

第二步:执行测试,页面点击操作

第三步:检查测试结果,也叫做断言,验证是否通过

如果通过页面点击效率太低了,而且现在纯页面点工没有市场了。所以,为了提高测试的效率,也为了提高自己的价值,我们需要把以上的手工点击操作进行自动化测试实现。

把以上的操作RF来操作:

RF要做UI自动化 需要借助一个功能库:SeleniumLibrary :

建好一个项目,再建一个测试套件,在套件里点击library导入;

图片

然后就可以看到所有的包含的关键字,F5可以查找所有的关键字以及关键字的解释和使用样例。这些关键字就是封装好的功能。用来写自动化用例的。

图片

  • 安装 pip install SeleniumLibrary

  • 导入到RF的testsuite里。

RF编写测试用例:

先创建一个testcase,命名为【登录】,然后用关键字编写:

1)打开网址,浏览器最大化:

直接使用两个关键字就可以实现:Open Browser, Maximize Browser Window。

图片

2)输入用户名和密码的位置,就需要进行元素定位了:RF也支持八大元素定位的方法,比如xpath元素定位。

图片

3)断言:判断是否登录成功。使用断言相关的关键字就可以实现。

图片

点击运行,看效果以及结果展示:

图片

然后RF之所以成为一个测试框架,是因为提供了非常非常详细的框架必备的东西:测试报告 和日志。

图片

图片

这样,我们就完成了一个最基本你的用例的编写。

继续写第二条用例:

新建一个新的testcase,写第二条测试用例:搜索商品,检查搜索结果。

图片

以上是等待类的关键字,如果页面加载需要时间,就可以用等待的关键字加一个等待元素可见再操作。

实现了基本的功能之后,我们再去优化脚本 :

优化1:每次跑用例有两个动作都要必须要做的:一个是打开浏览器,一个关闭浏览器。这种就相当于是前提准备和后期必然要的清场。这种操作,我们就可以写成前置和后置。

  • 在testsuite里添加前置和后置:

图片

优化2: resource封装用户自定义的关键字

除了打开浏览器,前置里其实还想最大化浏览器,这样多个功能,都要在一次性执行完,可以进行封装。

  • 在testsuite里 new keyword ,自己封装关键字,类似于封装函数。

  • 取个名字,open and maxwin

图片

  • 在前置里可以直接写这个封装的关键字的名字。

图片

优化3:数据分离和参数化

用户名 密码 验证码 还有搜索的关键字等这些信息,是会变化的,这种变化的数据不能写死在脚本里,需要进行参数化。

  • 在testsuite里add scalar:

图片

在用例里就可以进行参数的调用了:

图片

这样我们就可以用RF实现一个基本的框架搭建跑UI自动化测试了。

总结

当然,这个RF框架自动化简单 好上手,能够帮助我们的不会代码 但是又要做自动化测试的同学 解决燃眉之需。

但是工具自动化可以算是初级自动化,一方面不值钱,另外一方面也有很多局限性:

1、RF框架是别人代码封装的,很多关键字和依赖的库也是依赖别人的更新和维护,一旦维护不及时,就会出现很多问题;RF就是典型的不怎么维护,所以有很多兼容性的问题;

2、工具使用门槛比较低,但是也受限制于框架本身的语法和要求;

3、难以灵活扩展,如果要针对项目做一些定制化的操作,需要扩展框架之外的功能,还是需要自己写代码。

所以,综上所述,要在企业独立做自动化测试并落地到项目,最好还是使用代码自己搭建框架,这也是企业对于自动化测试工程师的基本要求。

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

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

相关文章

探究全链路压力测试的含义与重要性

全链路压力测试是指对整个应用系统的各个环节或组件进行压力测试,以模拟实际生产环境中的用户负载和流量,评估系统在高负载条件下的性能表现。 1. 全链路压力测试的含义 全链路压力测试涉及系统的所有组件和环节,包括前端用户界面、应用服务器…

初始Nginx(基本概念)

目录 一、Nginx的概念 二、Nginx常用功能 1、HTTP(正向)代理,反向代理 1.1正向代理 1.2 反向代理 2、负载均衡 2.1 轮询法(默认方法) 2.2 weight权重模式(加权轮询) 2.3 ip_hash 3、web缓存 三、基础特性 四…

(3)llvm ir转换过程

(1)DAG Lowering 输入的IR转换成SelectionDAG的过程被称作lowering 就是把llvm ir转成这种 (2)DAG legalization "DAG legalization"(有向无环图合法化)是编译器后端,特别是在LLVM中…

WebStorm 2023:让您更接近理想的开发环境 mac/win版

JetBrains WebStorm 2023激活版下载是一款强大而智能的Web开发工具,专为提高开发人员的生产力而设计。这款编辑器提供了许多先进的代码编辑功能,以及一系列实用的工具和插件,可帮助您更快地编写、调试和测试代码。 WebStorm 2023软件获取 We…

不可不知的Redis秘籍:事务命令全攻略!

在数据处理的世界里,事务(Transaction)是一个不可或缺的概念。它们确保了在一系列操作中,要么所有的操作都成功执行,要么都不执行。这就像是一个“全有或全无”的规则,保证了数据的一致性和完整性。 今天&…

【算法与数据结构】127、LeetCode单词接龙

文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引,可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析:示例1为例,hit到达cog的路线不止一条,如何找到最短是关键。广度优先搜索是一圈…

vscode突然连不上服务器了,以前都可以的,并且ssh等其它方式是可以连接到服务器的

过完年回来准备开工干活,突然发现vscode连不上服务器了,奇了怪了,年前都可以的,看了一下报错,如下, 以为是服务器挂了,结果执行ssh xxxxxx 发现是可以远程连接的,看来服务器没有问题…

【算法与数据结构】841、LeetCode钥匙和房间

文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引,可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析:之前的岛屿问题可以看做是无向图,因为所有连接陆地都是互通的。而本题是一个有向图&#x…

搜维尔科技:【周刊】适用于虚拟现实VR中的OptiTrack

适用于 VR 的 OptiTrack 我们通过优化对虚拟现实跟踪最重要的性能指标,打造世界上最准确、最易于使用的广域 VR 跟踪器。其结果是为任何头戴式显示器 (HMD) 或洞穴自动沉浸式环境提供超低延迟、极其流畅的跟踪。 OptiTrack 主动式 OptiTrack 世界领先的跟踪精度和…

crmeb多门店商城系统二次开发 增加车辆车牌搜索功能、车辆公里数

1、增加的数据库 ALTER TABLE eb_store_order ADD cart_number VARCHAR(255) NOT NULL DEFAULT COMMENT 车牌 AFTER erp_order_id, ADD curmileage VARCHAR(255) NOT NULL DEFAULT COMMENT 当前里程 AFTER cart_number; ALTER TABLE eb_store_cart ADD cart_number VARCHAR(…

SOLIDWORKS Visualize 界面介绍

现在有越来越多的朋友在工作中选择使用SOLIDWORKS Visualize正版软件,这真是太棒了!这次的主题是小索带大家了解SOLIDWORKS Visualize界面,让更多的朋友快速的熟悉SOLIDWORKS Visualize界面。 【菜单栏】位于界面的顶端,菜单栏包含多个下拉菜…

MATLAB环境下基于短时傅里叶变换和Rényi熵的脑电信号和语音信号分析

傅里叶变换是不能很好的反映信号在时域的某一个局部范围的频谱特点的,这一点很可惜。因为在许多实际工程中,人们对信号在局部区域的特征是比较关心的,这些特征包含着十分有用的信息。这类信号因为在时域(或者是空间域)上具有突变的非稳定性和…

线程池的基础使用和执行策略

什么是线程池 线程池,字面意思就是一个创建线程的池子,它的特点就是,在使用线程之前,就一次性把多个线程创建好,放到"池”当中。后面需要执行任务的时候,直接从"线程池"当中通过线程执行。…

灌水:powershell 练习正则表达式

亲爱的读者们&#xff0c;请展示你们的能力&#xff1a;解析&#xff08;使用代码&#xff09;解析以下字符串 <鱼龙混杂的奇葩文件#> UI1|System.Windows.Forms.linklabel #创建用户对象 1.location.250.250 1.text.磁盘清理 1.autosize #自适应大小 #存在混淆风险…

如何用GPT高效地处理文本、文献查阅、PPT编辑、编程、绘图和论文写作?

原文链接&#xff1a;如何用GPT高效地处理文本、文献查阅、PPT编辑、编程、绘图和论文写作?https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247594986&idx4&sn970f9ba75998f2dd9fa5707d1611a6cc&chksmfa82320dcdf5bb1bdf58c20686d4eb209770e68253ed90d…

外汇天眼:Spuerkeess选择Euroclear FundsPlace作为其基金业务的首选合作伙伴

卢森堡国家储蓄银行&#xff08;Spuerkeess&#xff09;宣布将把其大部分基金组合移至Euroclear FundsPlace&#xff0c;作为其简化基金业务的努力的一部分。这家卢森堡银行决定摆脱转移代理&#xff0c;并将其基金的分销和执行服务集中化。从现在开始&#xff0c;Euroclear的基…

React18源码: reconciler执行流程

reconciler执行流程 1 &#xff09;概述 此处先归纳一下react-reconciler包的主要作用&#xff0c;将主要功能分为4个方面&#xff1a; 输入&#xff1a;暴露api函数&#xff08;如&#xff1a;scheduleUpdateOnFiber&#xff09;, 供给其他包&#xff08;如react包&#xff0…

sentinel中监听器的运用--规则管理

sentinel中监听器的运用–规则管理 规则结构 类图关系 类关系图如下 Rule 将规则抽象成一个类, 规则与资源是紧密关联的, 也就是说规则作用于资源。因此, 我们需要将规则表示为一个类, 并包含一个获取资源的方法 这里采用接口的原因就是规则是一个抽象概念而非具体实现。…

Web3 基金会推出去中心化之声计划:投入高额 DOT 和 KSM ,助力去中心化治理

作者&#xff1a;Web3 Foundation Team 编译&#xff1a;OneBlock 原文&#xff1a;https://medium.com/web3foundation/decentralized-voices-program-93623c27ae43 Web3 基金会为 Polkadot 和 Kusama 创建了去中心化之声计划&#xff08;Decentralized Voices Program&…

云图极速版限时免费活动

产品介绍 云图极速版是针对拥有攻击面管理需求的用户打造的 SaaS 应用&#xff0c;致力于协助用户发现并管理互联网资产攻击面。 实战数据 (2023.11.6 - 2024.2.23) 云图极速版上线 3 个月以来&#xff0c;接入用户 3,563 家&#xff0c;扫描主体 19,961 个&#xff0c;累计发…