百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程字典 > 正文

从搭建到实战,看看这篇robotframework框架深度学习笔记

toyiye 2024-06-21 12:28 10 浏览 0 评论

每天进步一点点,关注我们哦,每天分享测试技术文章

本文章出自【码同学软件测试】

码同学公众号:自动化软件测试

码同学抖音号:小码哥聊软件测试


Robot Framework 由Robot Framework Foundation支持。许多行业领先的公司在其软件开发中使用 该工具。


Robot Framework 是开放可扩展的。Robot Framework 几乎可以与任何其他工具集成,以创建强大而灵活的自动化解决方案。Robot Framework 可以免费使用,无需许可费用。


Robot Framework 具有简单的语法,使用人类可读的关键字。它的功能可以通过使用 Python、Java 或 许多其他编程语言实现的库进行扩展。Robot Framework 有一个丰富的生态系统,包括作为独立项目开发的库和工具


01 robotframework环境搭建


  • 安装python3.6以上,并且确保环境变量配置正确
  • 安装robotframework库
  • pip install robotframework
  • 安装robotframework ride脚本图形界面编辑器
    pip install robotframwork-ride

  • 点击是,会在桌面上创建一个快捷图标



02 内置关键字库


robotframwork安装之后会出现在python安装目录的Lib/site-packages目录下


其中的libraries目录下就是我们将来编写脚本时用到的关键字源码

这些关键字库是按照一定的分类进行的

  • Builtln
  • 变量定义、循环控制、数据计算、进制转换、断言判断、日志等等
  • Collections
  • 处理python列表和字典的相关操作
  • DateTime
  • 处理日期和时间转换的相关操作
  • Dialogs
  • 提供暂停执行和获取用户输入的方法
  • OperatingSystem
  • 提供和操作系统相关的关键字
  • Process
  • 操作进程相关的关键字
  • Remote
  • 特殊库充当 Robot Framework 和其他地方的库之间的代理。实际的库可以在不同的机器上运行, 并且可以使用任何支持 XML-RPC 协议的编程语言来实现
  • Screenshot
  • 提供用于截取桌面屏幕截图的关键字
  • String
  • 用于生成、修改和验证字符串的库
  • Telnet
  • 可以连接到 Telnet 服务器并在打开的连接上执行命令
  • XML
  • 用于生成、修改和验证 XML 文件的库


03 ride基本说明


双击桌面ride图标即可打开ride界面


01 项目创建


点击File->New Project, 选择directory原因是,在directory的项目下可以创建测试套件,如果是tpye 为fifile,则只能创建测试用例,这不利于用例的管理


02 创建测试套件


测试套件是用来管理多个测试用例的集合


右键选择项目名称,New Suite, 选择fifile原因是,在fifile的测试套件下可以创建测试用例,

如果是tpye 为directory,还得重新再继续建fifile的测试套件,才能创建测试用例,因为测试用例只能在fifile类型下创建


03 创建测试用例


右键选择测试套件,点击New Test Case


04 测试套件工作区说明


1、测试套件Edit区 分为4部分

设置区

设置区默认是隐藏的,点一下才会出现

  • Documentation
  • 文档,每一项都有。可以给当前的对象加入文档说明
  • Suite Setup
  • 指的是测试套件启动的时候就执行某个关键字。
  • (例:我在Suite Setup设置了 Sleep | 5sec,表示等待5秒,要注意关键字的参数要使用 | 分隔)
  • Suite Teardown
  • 指的是测试套件结束的时候就执行某个关键字
  • Test Setup
  • 指的就是案例启动的时候执行某个关键字
  • Test Teardown
  • 指的就是案例结束的时候执行某个关键字
  • Test Template
  • 测试模版,这是可以指定某个关键字为这个测试套件下所有TestCase的模 版,这样所有的TestCase就只需要设置这个关键字的传入参数即可
  • Test Timeout
  • 设置每一个测试案例的超时时间,只要超过这个时间就会失败,并停止案例 运行。这是防止某些情况导致案例一直卡住不动,也不停止也不失败
  • Force Tags
  • 在文件型Suite这里还可以继续给子元素增加Force Tags,但是他不能删除父元 素设置的tags
  • Default Tags
  • 默认标记,其实和Force Tags没啥区别的


免费领取 码同学软件测试 课程笔记+超多学习资料+完整视频+最新面试题,可以转发文章 + 私信「码同学666」获取资料哦


引用区

主要是用来加载外部文件

  • Library:加载测试库,主要是[PYTHON目录]\Lib\site-packages里的测试库
  • Resource:加载资源,主要是你工程相关的资源文件
  • Variables:加载变量文件


参数区

主要是用来定义该套件的内部变量

  • Add Scalar:定义普通变量
  • Add List:定义列表型变量
  • Add Dict:定义字典


数据区

主要是在report和log里显示定义好的内容,格式和document一样


2、测试套件Text Edit区

测试套件测试用例文本信息


3、测试套件Run区

  • Execution Profifile
  • 选择运行方式,里面有pybotjybotcustom script。默认pybot即可。
  • Start
  • 运行案例。若该测试套件下的测试用例前无勾选,则默认执行该测试套件下所有的用例。若测试用例勾选,则执行该测试陶见下勾选的用例。
  • Stop
  • 停止案例。
  • ReportLog:
  • 报告和日志,要运行之后才能点击。他们的区别,报告更多是结果上的展示日志 更多是过程的记录,更多使用的还是日志。
  • Autosave:
  • 自动保存,如果不勾选,在修改了案例之后如果没有保存的话,运行案例时会提示是否 保存。勾选则在运行时自动保存了。
  • Arguments:
  • pybot的参数(或者jybot等)。完整版的参数可以在doc命令行输入pybot.bat --help
  • Only Run Tests with these Tags:
  • 只运行这些标记的测试案例。在case的setting里可以添加tag
  • Skip Tests with these Tags:
  • 跳过这些标记的测试案例。在case的setting里可以添加tag


05 测试用例工作区说明


1、测试用例Edit区 主要分为2部分

设置区

  • Documentation
  • 文档,每一项都有。可以给当前的对象加入文档说明。
  • Setup
  • 指的就是案例启动的时候执行某个关键字。
  • Teardown
  • 指的就是案例结束的时候执行某个关键字。
  • Tags
  • 标记某个测试用例。在Run区中Only Run Tests with these TagsSkip Tests with these Tags,会通过这个标志位来识别是否运行或跳过用例。
  • Timeout
  • 设置每一个测试案例的超时时间,只要超过这个时间就会失败,并停止案例运行。这是防止某些情况导致案例一直卡住不动,也不停止也不失败。
  • Template
  • 测试模版,这是可以指定某个关键字为这个测试套件下所有TestCase的模版,这样所有的TestCase就只需要设置这个关键字的传入参数即可


表格区

  • 这是编写测试用例的地方


2、Text Edit和Run区和测试套件没有区别


04 robotframwork基础语法


01 日志中文乱码处理


找到自己python安装目录下的Lib\site-packages\robotide\contrib\testrunner\testrunnerplugin.py 打开上述文件,找到565行先复制,再注释,另起一行粘贴和修改

修改完成后重启ride


02 用例内部变量


1、普通变量

普通变量定义需要使用Set Variable关键字,第一个单元格指的是变量名称,最后一个单元格10, 指的是把10赋值给a这个变量

Log是日志关键字,输出a的值

运行一下


2、列表变量

列表变量定义需要使用Create List关键字

列表定义可以使用两种方式:

  • ${xxx}
  • @{xxx}


3、字典变量

字典变量定义需要使用Create Dictionary

字典定义可以使用两种方式:

  • ${xxx}
  • &{xxx}


03 集合公共变量


有一些是在同一个测试集合中都会用到的公共变量,那么就可以在集合中进行定义


  • 添加一个普通变量

  • 添加一个列表变量

  • 添加一个字典变量

  • 公共变量使用集合的公共变量在他下面的每个测试用例中都可以使用

  • 运行后结果:


04 判断


案例:给定一个成绩值,大于90分输出优秀、大于80是良好、大于70是一般、大于60是及格,其他是不及格

Run Keyword If的使用


免费领取 码同学软件测试 课程笔记+超多学习资料+完整视频+最新面试题,可以转发文章 + 私信「码同学666」获取资料哦


05 循环


案例1:计算100以内的数字和

FOR...IN RANGE xxx ... END结构

${i}相当于循环变量

Evaluate 表示将${sum}+${i}的计算结果赋值给${sum}


案例2:输出列表中的偶数

FOR ... IN xxx ... END 结构

${i}相当于循环变量

Run Keyword If 是判断当前循环变量是2的倍数,那么就输出


案例3:跳过当次循环,遍历列表,如果是5的倍数就跳过

Continue For Loop If表示满足条件就跳过本次循环


案例4:遍历列表,如果碰到5就终止循环

Exit For Loop If表示满足条件则终止循环


06 关键字库导入


需要使用一些扩展关键字时,需要先导入相对应的库,比如针对列表和字典操作的库是Collections

  • 导入Collections选择测试集合,注意导入后如果显式红色,说明导入不正确


  • 使用Collections中的关键字


07 用户关键字


用户关键字是自定义的一种关键字,相当于写代码时自己封装一个函数


1、普通变量作为入参

案例:封装一个计算指定数字之内的所有数字和,比如100以内,1000以内等等

创建关键字


调用关键字

在某个测试集合中想要调用自定义的关键字,需要先导入

  • 导入自定义关键字


导入之后显式绿色说明正确,显式红色说明导入的resource路径不对

  • 调用关键字在测试用例中调用自己写的关键字


2、列表变量作为入参

案例:封装一个返回给定列表中的偶数


创建关键字


调用关键字


3、字典变量作为入参

案例:将学员各个语言科目成绩定义成字典{'python':95,'java':58,'c':70},封装一个关键字将不及 格的分数都改成60

创建关键字


调用关键字

4、多变量入参

案例:封装一个计算三个数之和的关键字,第三个数默认值是10

创建关键字


调用关键字

对于有默认值的参数,在调用时可以传也可以不传


END

免费领取码同学软件测试课程笔记+超多学习资料+学习完整视频,可以关注我们公众号哦:自动化软件测试

本文著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

相关推荐

为何越来越多的编程语言使用JSON(为什么编程)

JSON是JavascriptObjectNotation的缩写,意思是Javascript对象表示法,是一种易于人类阅读和对编程友好的文本数据传递方法,是JavaScript语言规范定义的一个子...

何时在数据库中使用 JSON(数据库用json格式存储)

在本文中,您将了解何时应考虑将JSON数据类型添加到表中以及何时应避免使用它们。每天?分享?最新?软件?开发?,Devops,敏捷?,测试?以及?项目?管理?最新?,最热门?的?文章?,每天?花?...

MySQL 从零开始:05 数据类型(mysql数据类型有哪些,并举例)

前面的讲解中已经接触到了表的创建,表的创建是对字段的声明,比如:上述语句声明了字段的名称、类型、所占空间、默认值和是否可以为空等信息。其中的int、varchar、char和decimal都...

JSON对象花样进阶(json格式对象)

一、引言在现代Web开发中,JSON(JavaScriptObjectNotation)已经成为数据交换的标准格式。无论是从前端向后端发送数据,还是从后端接收数据,JSON都是不可或缺的一部分。...

深入理解 JSON 和 Form-data(json和formdata提交区别)

在讨论现代网络开发与API设计的语境下,理解客户端和服务器间如何有效且可靠地交换数据变得尤为关键。这里,特别值得关注的是两种主流数据格式:...

JSON 语法(json 语法 priority)

JSON语法是JavaScript语法的子集。JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔花括号保存对象方括号保存数组JS...

JSON语法详解(json的语法规则)

JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔大括号保存对象中括号保存数组注意:json的key是字符串,且必须是双引号,不能是单引号...

MySQL JSON数据类型操作(mysql的json)

概述mysql自5.7.8版本开始,就支持了json结构的数据存储和查询,这表明了mysql也在不断的学习和增加nosql数据库的有点。但mysql毕竟是关系型数据库,在处理json这种非结构化的数据...

JSON的数据模式(json数据格式示例)

像XML模式一样,JSON数据格式也有Schema,这是一个基于JSON格式的规范。JSON模式也以JSON格式编写。它用于验证JSON数据。JSON模式示例以下代码显示了基本的JSON模式。{"...

前端学习——JSON格式详解(后端json格式)

JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScriptProgrammingLa...

什么是 JSON:详解 JSON 及其优势(什么叫json)

现在程序员还有谁不知道JSON吗?无论对于前端还是后端,JSON都是一种常见的数据格式。那么JSON到底是什么呢?JSON的定义...

PostgreSQL JSON 类型:处理结构化数据

PostgreSQL提供JSON类型,以存储结构化数据。JSON是一种开放的数据格式,可用于存储各种类型的值。什么是JSON类型?JSON类型表示JSON(JavaScriptO...

JavaScript:JSON、三种包装类(javascript 包)

JOSN:我们希望可以将一个对象在不同的语言中进行传递,以达到通信的目的,最佳方式就是将一个对象转换为字符串的形式JSON(JavaScriptObjectNotation)-JS的对象表示法...

Python数据分析 只要1分钟 教你玩转JSON 全程干货

Json简介:Json,全名JavaScriptObjectNotation,JSON(JavaScriptObjectNotation(记号、标记))是一种轻量级的数据交换格式。它基于J...

比较一下JSON与XML两种数据格式?(json和xml哪个好)

JSON(JavaScriptObjectNotation)和XML(eXtensibleMarkupLanguage)是在日常开发中比较常用的两种数据格式,它们主要的作用就是用来进行数据的传...

取消回复欢迎 发表评论:

请填写验证码