51Testing软件测试论坛
标题:
实例演练RobotFramework如何创建目录和实现界面操作
[打印本页]
作者:
lsekfe
时间:
2020-11-30 11:31
标题:
实例演练RobotFramework如何创建目录和实现界面操作
在
上篇
文章
《
Robotframework
之搭建篇》中主要讲的是RobotFramework的搭建,继上篇文章,本篇文章主要是接上篇文章对RobotFramework的基础知识进行分享。正所谓“万丈高楼平地起”,学习RobotFramework,需要对目录的创建进行以及界面的相关进行适当的学习。
1. 目录创建
1.1 关系梳理
在Robotframework中完成之后,在使用之前需要进行对整个目录进行规划,在一定程度上可以做到“事半功倍”,尽量在后续脚本的编写过程中减少目录的调整。在Robotframework中主要分为project、directory、TestSuite、TestCase四个中类型。robtfreamework的[url=]
测试
[/url]
用例
是以project作为单位进行管理的。在一般的编写过程中个人更喜欢将整个平台或者项目project开始进行编写。其中Test Suite 分为Dir Test Suite和File Test Suite两种类型,而在Dir Test Suite下面可以再建File Test Suite,但是在File Test Suite下面只能Testcase,主要关系如下图所示:
[attach]131023[/attach]
1.2 例子说明
以教学管理管理平台为例:
1.在创建目录的时候可以以“教学管理平台”创建一个“project”类型的根目录;
2.在整个教学管理平台会涉及到教师管理、学生管理、课程管理、成绩管理等功能模块,而这些功能模块创建的时候可以以“Dir Test Suite”或者“Directory”的形式创建;
3.在功能模块下往往存在新增、编辑、查询、删除等子模块,而这些模块则可以以“File Test Suite”的形式进行目录创建;
4.在功能模块创建成功之后,在功能模块下创建用例,用例的格式则以“Test Case”的形式进行创建;
[attach]131024[/attach]
根据上述目录的形式进行创建,在视觉上很直观的可以看出模块的组成结构,保证在
用例设计
时,不会导致主要功能模块的缺失,最重要的是可以保证各个模块之间用例的独立性,确保在运行的时候不会相互影响,确保在运行时做到“谁写谁维护”,保证在运行的时候可以第一时间对运行失败的脚本进行问题定位以及排查,在功能模块上做到“最低”准则,即以最小功能的名称来创建“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没什么区别的。
[attach]131025[/attach]
2.1.2 Import
2.1.2.1 Library
说完Settings部分,接下来就说下Import、Variable、Metadata的部分。在import部分最常用的是Library以及Recourse两个部分;
其中Library指的是
Python
中的第三方库或者由个人封装的库;
在导入Library的时候需要写对库的名称,否则会导入失败,如下图展示的“红色”字体,导入成功情况的情况下,会以“黑色”字体展示:
[attach]131026[/attach]
在导入失败的情况下,可以在ride界面查看对应导入失败日志,具体的路径为“Tool->View RIDE log ”,如下图所示
[attach]131027[/attach]
2.1.2.2 Resource
导入Resource在日常测试过程中最常用的是导入用户自定义关键字,具体的操作步骤是在某个目录下右击“New Resource”创建Resource,选择的类型为TXT类型:
[attach]131028[/attach]
在创建成功之后,则可以在某个测试套件进行引用:
[attach]131030[/attach]
2.1.2.3 Variables
Variables主要包含Scalar、List、Dict三种数据类型,在这里添加的是变量主要为公共变量,主要为平台地址、平台端口、数据信息等公用的数据;这样做目的是可以确保脚本复用、确保在修改脚本时成本最小化。
例如教学管理平台从A服务器迁移至B服务器,则可以使用脚本进行冒烟测试,在调用脚本的时候,只需修改该部分公用的变量即可,尽量减少脚本的改动,提高脚本的复用率。
[attach]131031[/attach]
2.2 运行
相比编辑模块的功能,运行模块的功能相对比较简单,点击上方Run菜单,切换至运行界面,
·
运行用例:若是需要进行用例执行,只需勾选需要执行的用例,点击“Start”按钮即可,需要注意的是,如果未勾选任何用例,点击“Start”按钮,执行的是整个Project;
[attach]131032[/attach]
·
查看报告:在用例执行完成之后,可以点击Report或者log查看用例执行情况,在查看报告的时候,可以很清晰看见用例执行的情况,包含执行总数、失败数、成功数;
·
定位原因:若是用例存在执行失败的情况,在报告中可以很清晰定位到具体的某一行脚本的失败原因。
[attach]131033[/attach]
·
选择执行用例:在用例执行的情况下只需要进行筛选部分用例即可,如全量测试、冒烟测试等;RobotFramework中支持用例的筛选,支持只执行该标签或者跳过该标签的,如下图在用例设计的时候,打的标签是“冒烟测试”:
[attach]131035[/attach]
如下图的测试用例,在编写的时候,打的标签是“冒烟测试”,若只需要执行冒烟测试用例的话,只需要在测试套件勾选“Only run test with these tags ”:
[attach]131036[/attach]
[attach]131037[/attach]
2.3 常用快捷键
[attach]131038[/attach]
注意:
1.若上述的快捷键不能使用,建议先排查否有其他软件已占用相应的快捷键;
2.在自己有能力的情况下,可以将默认快捷键进行修改。
总结
本文主要分享的是RobotFramework目录创建以及界面的相关操作使用,对于目录的创建,个人建议是可以按照“最小”准则进行划分,这样用例在后续的维护成本上会进行一定量的减少,且能保证每个模块之间的相互独立性,避免数据的干扰。在后续的用例设计分享上,也会对会涉及到目录的设计,确保维护成本最低以及使用度最最高。对于界面上的操作,个人而言“欲知此事须躬行”,建议可以在平时的日常工作进行多使用和练习。
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2