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

项目实战RobotFramework创建目录和实现界面操作

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

在前几天的文章讲过RobotFramework的搭建,继上篇文章,本篇文章主要是接上篇文章对RobotFramework的基础知识进行分享。正所谓"万丈高楼平地起",学习RobotFramework,需要对目录的创建进行以及界面的相关进行适当的学习。

  1. 目录创建

  1.1 关系梳理

  在Robotframework中完成之后,在使用之前需要进行对整个目录进行规划,在一定程度上可以做到"事半功倍",尽量在后续脚本的编写过程中减少目录的调整。在Robotframework中主要分为project、directory、TestSuite、TestCase四个中类型。robtfreamework是以project作为单位进行管理的。在一般的编写过程中个人更喜欢将整个平台或者项目project开始进行编写。其中Test Suite 分为Dir Test Suite和File Test Suite两种类型,而在Dir Test Suite下面可以再建File Test Suite,但是在File Test Suite下面只能Testcase,主要关系如下图所示:

  

  1.2 例子说明

  以教学管理管理平台为例:

  1.在创建目录的时候可以以"教学管理平台"创建一个"project"类型的根目录;

  2.在整个教学管理平台会涉及到教师管理、学生管理、课程管理、成绩管理等功能模块,而这些功能模块创建的时候可以以"Dir Test Suite"或者"Directory"的形式创建;

  3.在功能模块下往往存在新增、编辑、查询、删除等子模块,而这些模块则可以以"File Test Suite"的形式进行目录创建;

  4.在功能模块创建成功之后,在功能模块下创建用例,用例的格式则以"Test Case"的形式进行创建;

  根据上述目录的形式进行创建,在视觉上很直观的可以看出模块的组成结构,保证在用例设计时,不会导致主要功能模块的缺失,最重要的是可以保证各个模块之间用例的独立性,确保在运行的时候不会相互影响,确保在运行时做到"谁写谁维护",保证在运行的时候可以第一时间对运行失败的脚本进行问题定位以及排查,在功能模块上做到"最低"准则,即以最小功能的名称来创建"Test Suite"。

  2. 界面操作

  整个Robotframework脚本编写,主要以Ride来这支撑,主要包括编辑、运行以及预览等模块,在日常操作中最主要用到的是编辑以及运行两个模块,本次文章中主要分享编辑以及运行两个模块。

  2.1 编辑

  2.1.1 Settings

  编辑区域主要包含Settings、import、Variable、MetaData三个子模块。

  一般settings是隐藏的,点击settings按钮,则会显示。

  ·Documentation:文档,每一项都有。可以给当前的对象加入文档说明(一般情况下写脚本变更记录、包括变更的操作(add、update、delete)、修改时间、修改内容、修改人信息,确保后续可以正常查询变更记录);

  -Suite Setup: 指的是测试套件启动的时候就执行某个关键字。(例如在执行的时候可以将测试套件中公用的内容放到这个地方,比如平台登录、连接数据库)

  -Suite Teardown: 指的是测试套件结束的时候就执行某个关键字(例如在测试套件执行结束之后,平台退出以及断开数据连接)

  -Test Setup: 指的就是案例启动的时候执行某个关键字。

  -Test Teardown: 指的就是案例结束的时候执行某个关键字。

  -Test Template:测试模版,这是可以指定某个关键字为这个测试套件下所有TestCase的模版,这样所有的TestCase就只需要设置这个关键字的传入参数即可。

  ·Test Timeout:设置每一个测试案例的超时时间,只要超过这个时间就会失败,并停止案例运行。这是防止某些情况导致案例一直卡住不动,也不停止也不失败。

  ·Force Tags:在文件型Suite这里还可以继续给子元素增加Force Tags,但是不能删除父元素设置的tags。

  ·Default Tags:默认标记,其实和Force Tags没什么区别的。

  2.1.2 Import

  2.1.2.1 Library

  说完Settings部分,接下来就说下Import、Variable、Metadata的部分。在import部分最常用的是Library以及Recourse两个部分;

  其中Library指的是Python中的第三方库或者由个人封装的库;

  在导入Library的时候需要写对库的名称,否则会导入失败,如下图展示的"红色"字体,导入成功情况的情况下,会以"黑色"字体展示:

  在导入失败的情况下,可以在ride界面查看对应导入失败日志,具体的路径为"Tool->View RIDE log ",如下图所示

  

  2.1.2.2 Resource

  导入Resource在日常测试过程中最常用的是导入用户自定义关键字,具体的操作步骤是在某个目录下右击"New Resource"创建Resource,选择的类型为TXT类型:

  创建完Resource目录之后,需要进行自定义用户关键字的创建,选择已创建Resource的目录右击"New User Keyword"创建自定义用户关键字,如下图,创建的是一个登陆的自定义关键字,在创建完成之后,则可以进行引用,避免重复脚本的编写。

  创建成功之后的自定义关键字如下图所示:

  

  在创建成功之后,则可以在某个测试套件进行引用:

  2.1.2.3 Variables

  Variables主要包含Scalar、List、Dict三种数据类型,在这里添加的是变量主要为公共变量,主要为平台地址、平台端口、数据信息等公用的数据;这样做目的是可以确保脚本复用、确保在修改脚本时成本最小化。

  例如教学管理平台从A服务器迁移至B服务器,则可以使用脚本进行冒烟测试,在调用脚本的时候,只需修改该部分公用的变量即可,尽量减少脚本的改动,提高脚本的复用率。

  2.2 运行

  相比编辑模块的功能,运行模块的功能相对比较简单,点击上方Run菜单,切换至运行界面,

  ·运行用例:若是需要进行用例执行,只需勾选需要执行的用例,点击"Start"按钮即可,需要注意的是,如果未勾选任何用例,点击"Start"按钮,执行的是整个Project;

  ·查看报告:在用例执行完成之后,可以点击Report或者log查看用例执行情况,在查看报告的时候,可以很清晰看见用例执行的情况,包含执行总数、失败数、成功数;

  ·定位原因:若是用例存在执行失败的情况,在报告中可以很清晰定位到具体的某一行脚本的失败原因。

  ·选择执行用例:在用例执行的情况下只需要进行筛选部分用例即可,如全量测试、冒烟测试等;RobotFramework中支持用例的筛选,支持只执行该标签或者跳过该标签的,如下图在用例设计的时候,打的标签是"冒烟测试":

  如下图的测试用例,在编写的时候,打的标签是"冒烟测试",若只需要执行冒烟测试用例的话,只需要在测试套件勾选"Only run test with these tags ":

  若不需要执行冒烟的话,只需在测试套件勾选"Skip tests with these tags "即可。

  2.3 常用快捷键

  注意:

  1.若上述的快捷键不能使用,建议先排查否有其他软件已占用相应的快捷键;

  2.在自己有能力的情况下,可以将默认快捷键进行修改。

  总结

  本文主要分享的是RobotFramework目录创建以及界面的相关操作使用,对于目录的创建,个人建议是可以按照"最小"准则进行划分,这样用例在后续的维护成本上会进行一定量的减少,且能保证每个模块之间的相互独立性,避免数据的干扰。在后续的用例设计分享上,也会对会涉及到目录的设计,确保维护成本最低以及使用度最最高。对于界面上的操作,个人而言"欲知此事须躬行",建议可以在平时的日常工作进行多使用和练习。

请关注+私信回复:“测试”就可以免费拿到Python自动化测试学习路线及软件测试学习资料包,快速让自己变强!

相关推荐

为何越来越多的编程语言使用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)是在日常开发中比较常用的两种数据格式,它们主要的作用就是用来进行数据的传...

取消回复欢迎 发表评论:

请填写验证码