Robot Framework自动化测试(四)--- 分层思想

news2024/12/30 1:48:04
  •   📢专注于分享软件测试干货内容,欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
  • 📢交流讨论:欢迎加入我们一起学习!
  • 📢资源分享:耗时200+小时精选的「软件测试」资料包
  • 📢 最困难的时候,也就是我们离成功不远的时候!

谈到Robot  Framework 分层的思想,就不得不提“关键字驱动”。

关键字驱动: 通过调用的关键字不同,从而引起测试结果的不同。

在上一节的selenium API 中所介绍的方法其实就是关键字,如“open browser” 就是一个关键字。从底层去看它就是一个通过编程去现实的一个方法。

def  open_browser(url,browser):
     #通过browser找到相应的浏览器驱动,调用浏览器,借助python的httplib、urllib模块将url传递给浏览器。从而实现open brwoser 的目的。

通过上面的伪代码表述的“关键字”的底层其实还是程序定义的方法。

  回到分层的思想上,在程序设计的讲究设计模式,设计模式其实就是根据需求使用抽象与封装,其实就是分层思想。把一个实现过程分成不同多层。提高的灵活性,从而达到可扩展性和可维护性。

  再回到自动化的话题上,我们可以把操作步骤封装一个一个的方法(关键字),通过调用关键字来实现测试用例。

参考本系列的第一节创建一条百度搜索的测试用例。

我现在要写5条百度搜索的用例:

 

   可以在Search测试套件下创建5条测试用例。其实对于每一条测试用例来说,只是搜索的内容不同,脚本步骤是完全一样的。这样做无疑增加的脚本的冗余,而且不便于维护。假如,百度输入框的定位方式变了,我不得不打开每一条用例进行修改。

我们可以过创建关键字的方式,从而实现分层的思想来解决这个问题。

Robot  Framework 关键字                      

1、创建资源

右键“测试项目”选择“new resource”创建资源。

输入资源名称:

2、创建关键字

右键“业务关键字”选择“new User Keyword” 来创建用户关键字。

 

 输入关键字的名称:

 

3、编辑关键字

分析:

对于一个测试用例来说,用户关心的是输入什么内容,得到什么结果。

所以,对于“百度搜索”关键字来说,需要创建两个接口变量${search}和${result} 两个变量,用于接收输入内容和预期结果。

点击Arguments输入框,定义变量,多个变量从用“|”隔开。

在百度用户中使用参数化变量。

 

4、添加创建的资源

切换到测试套件(Search)页面,添加资源(业务关键字.txt)

5、调用关键字

现在就可以在测试用例中使用创建的关键字了(百度搜索)。

对于每一条用例来说,调用“百度搜索”关键字,输入搜索内容,输入预期结果即可。不同关心用例是如何执行的。如果百度输入框的定位发生了变化,只用去修改“百度搜索”关键字即可,不用对每一条用例做任何修改。大大提高的用例的维护性和扩展性。

继续分层的设计:

 

到此,Robot  Framework +selenium 自动化测试粗犷的讲完了。当然还有更多API 的使用,和细枝末节的设置没有介绍。但我们已经可以拿它来开展自动化工作了。


行动吧,在路上总比一直观望的要好,未来的你肯定会感谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入群,里面有各种测试开发资料和技术可以一起交流哦。

最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取 【保证100%免费】

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。在这里插入图片描述
在这里插入图片描述

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

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

相关文章

【广州华锐互动】节约用水VR互动教育:身临其境体验水资源的珍贵!

随着技术的不断发展,虚拟现实(VR)技术在许多领域得到了广泛应用。在节水宣传教育方面,VR技术也展现出了其独特的优势。与传统宣传教育方式相比,节约用水VR互动教育具有更加沉浸式、互动性和实践性的特点,能…

Java计算二叉树从根节点到叶子结点的最大路径和

要求从根节点到叶子结点的最大路径和,可以通过递归遍历二叉树来实现。对于二叉树中的每个节点,我们都可以考虑包含该节点的最大路径和。在递归的过程中,我们需要不断更新全局最大路径和。 具体的思路如下: 递归函数设计&#xff1…

【Python】python包相对导入问题及解决方案

报错信息 ImportError: attempted relative import with no known parent package 问题描述 在package目录下有a1.py文件和subpackage1目录。在subpackage1目录下有b1.py文件。现在b1.py文件中有这样一行代码:from …a1 import A1。在subpackage1目录下运行pytho…

Windows公网远程连接MongoDB数据库【无公网IP】

目录 前言 1. 安装数据库 2. 内网穿透 2.1 安装cpolar内网穿透 2.2 创建隧道映射 2.3 测试随机公网地址远程连接 3. 配置固定TCP端口地址 3.1 保留一个固定的公网TCP端口地址 3.2 配置固定公网TCP端口地址 3.3 测试固定地址公网远程访问 总结 前言 MongoDB是一个基…

案例033:基于微信小程序的商品展示系统设计与实现

文末获取源码 开发语言:Java 框架:SSM JDK版本:JDK1.8 数据库:mysql 5.7 开发软件:eclipse/myeclipse/idea Maven包:Maven3.5.4 小程序框架:uniapp 小程序开发软件:HBuilder X 小程序…

paddleocr笔记

PP-OCRv1 PP-OCR中,对于一张图像,需要完成以下3个步骤提取其中的文字信息: 使用文本检测方法,获取文本区域多边形信息(PP-OCR中文本检测使用的是DBNet,因此获取的是四点信息)。对上述文本多边形…

SpringBoot参数校验@Validated和@Valid的使用

1、Validated和Valid区别 Validated:可以用在类、方法和方法参数上。但是不能用在成员属性(字段)上Valid:可以用在方法、构造函数、方法参数和成员属性(字段)上 2、引入依赖 Spring Boot 2.3 1 之前&…

【Linux系统编程】操作系统详解(什么是操作系统?为什么会存在操作系统?设计操作系统的目的是什么?)

目录 一、前言 二、 什么是操作系统 💦操作系统的引入 💦操作系统的概念理解 💦操作系统设计的目的与定位 💦总结 二、操作系统之上之下分别有什么 三、深度理解操作系统的“管理” 💦场景理解 💦操…

使用thymeleaf模板生成静态文件demo

一&#xff1a;pom.xml添加依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency> <dependency><groupId>ognl</groupId><artifactId…

NJU操作系统公开课笔记(2)

上期目录&#xff1a; NJU操作系统公开课笔记&#xff08;1&#xff09;https://blog.csdn.net/jsl123x/article/details/134431343?spm1001.2014.3001.5501 目录 一.处理器与寄存器 二.中断 三.中断系统 四.进程 五.线程与多线程技术概述 六.处理器调度算法 一.处理器…

贪吃蛇小游戏基本简单布局

代码&#xff1a; <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>Layui贪吃蛇小游戏</title> <link rel"stylesheet" href"https://cdn.bootcdn.net/ajax/libs/layui/2.5.7/css/layui.…

【数据库】执行计划中的两趟算法机制原理,基于排序算法来分析,算法的限制,执行代价以及优化

基于排序的两趟算法 ​专栏内容&#xff1a; 手写数据库toadb 本专栏主要介绍如何从零开发&#xff0c;开发的步骤&#xff0c;以及开发过程中的涉及的原理&#xff0c;遇到的问题等&#xff0c;让大家能跟上并且可以一起开发&#xff0c;让每个需要的人成为参与者。 本专栏会定…

跨越速运在货运高峰的同时,受邀参加国际医疗器械博览会

作为国内领先的物流企业&#xff0c;跨越速运在一年一度的年终大促&#xff0c;货运高峰的同时&#xff0c;受第88届中国国际医疗器械博览会&#xff08;以下简称CMEF&#xff09;活动主办方邀请&#xff0c;&#xff09;于2023年10月31日&#xff0c;在深圳国际会展中心重磅亮…

Linux驱动开发——网络设备驱动(理论篇)

目录 一、前言 二、网络层次结构 三、网络设备驱动核心数据结构和函数 一、前言 网络设备驱动是 Linux 的第三大类驱动&#xff0c;也是我们学习的最后一类 Linux 驱动。这里我们首先简单学习一下网络协议层次结构&#xff0c;然后简单讨论 Linux 内核中网络实现的层次结构。…

我发现了这个神器‼在线制作电子画册so easy~

你是不是也厌倦了传统纸质画册的繁琐&#xff1f;想要一个更便捷、更时尚的方式来展示你的作品&#xff1f;那么&#xff0c;今天向你介绍的这款神器&#xff0c;绝对能让你眼前一亮&#xff01; 没错&#xff0c;它就是在线制作电子画册的利器&#xff01;FLBOOK在线制作电子杂…

测绘资质海洋测绘乙级申请条件

海洋测绘专业新申请要求是什么&#xff1f;准备哪些材料呢&#xff1f;要符合什么条件&#xff1f;参考本文 一、所需申请材料 &#xff08;一&#xff09;申请书&#xff1b; &#xff08;二&#xff09;企业营业执照或事业单位法人证书&#xff1b; &#xff08;三&#…

使用westssl工具实现自动更新SSL证书的流程

SSL证书默认有效期默认为1年&#xff0c;部分免费证书的默认有效期为3个月。您必须在证书到期前的30个自然日内续费并更新证书&#xff0c;才能延长证书的服务时长。证书续费时&#xff0c; 会颁发一个新的证书&#xff0c;您收到新证书后需要手工更新到服务器上。部分证书支持…

Make sure bypassing Vue built-in sanitization is safe here.

一、问题描述 二、问题分析 XSS(跨站脚本攻击) XSS攻击通常指的是通过利用网页开发时留下的漏洞&#xff0c;通过巧妙的方法注入恶意指令代码到网页&#xff0c;使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript&#xff0c;但实际上也可以包括J…

运行新vue3项目

一&#xff0c;下载node并安装 官网&#xff1a;https://nodejs.org/en/ 查看版本&#xff1a; node -v二&#xff0c;cd进入到vue3项目目录 cd D:\Program-space\HBuilderXProject\Vue3project三&#xff0c;npm install npm install四&#xff0c;查看安装 npm list五&a…

数字图像处理(实践篇)八 Harris角点检测

目录 1 涉及的OpenCV函数 2 实践 在图像中每个方向变化都很大的区域就是角点&#xff0c;一个早期的尝试是由 Chris Harris & Mike Stephens 在1998年的论文 A Combined Corner and Edge Detector 完成的。所以现在称之为 Harris角点检测。 1 涉及的OpenCV函数 cornerHa…