RobotFramework自动化测试框架使用大全(一篇解决)快速入门

RobotFramework框架

前言

Robot Framework是一款python编写的功能自动化测试框架。⽀持关键字驱动且可扩展性好,可以同时测试多种类型的客户端,可以进行分布式测试执行。主要用于轮次很多的验收测试和验收测试驱动开发(ATDD)。

Robot Framework 框架除了自身提供了非常多的基础库功能,也支持第三方扩展库,同时提供了非常多的内建工具、扩展接口,方便框架与其他系统进行对接。这些一起构建了一套全面且易扩展的Robot Framework框架生态系统。

一、基础篇——RobotFramework的使用

1、RobotFramework环境部署

1.1 工具准备
  • python(3.9.7)
  • RIDE必要库
    robotframework
    wxpython
    robotframework-ride
  • 根据需求安装
    robotframework-appiumlibrary
    robotframework-Selenium2Library
1.2 安装

(1)pip install robotframework
在这里插入图片描述

(2)、pip install wxpython

Wxpython是python非常有名的一个GUI库,支持python图形化界面,因为RIDE 是基于这个库开发的,所以这个必须安装。
在这里插入图片描述

(3)、pip install robotframework-ride(报错)

RIDE是Robot Framework带图形界面测试编辑器

由于老版RIDE不支持python3,需要安装psutil和最新版的robotframework-ride

解决方法:

pip install psutil

pip install -U --pre robotframework-ride

注:-U升级安装,–pre查找预发行和正在开发的版本

安装完成后桌面会有个RIDE快捷方式: 在这里插入图片描述
如果桌面没有图标可从Python/Scripts中运行ride.py即可
在这里插入图片描述

(4)、pip install robotframework-appiumlibrary

AppiumLibrary是RobotFramework的appium测试库
在这里插入图片描述

(5)、pip install robotframework-selenium2Library

Selenium2Library是Robot Framework的Web测试库
在这里插入图片描述

2、RIDE使用方法

RIDE是一款专门用来编辑Robot Framework用例的软件。
在这里插入图片描述

2.1 最基本流程
2.1.1 创建项目

File->New Project
在这里插入图片描述
注:Type选择Directory原因是,在Directory的项目下可以创建测试套件,如果选Tpye为File,则只能创建测试用例,这不利于用例的管理。

2.1.2 创建测试套件

右键项目FirstTest,点击New Suite。
在这里插入图片描述
在这里插入图片描述
注:Type选择File原因是,测试用例只能在File类型下创建,如果Type为Directory,还得重新再继续建File的测试套件后才能创建测试用例。

2.1.3 创建测试用例

右键TestSuite,点击New Test Case
在这里插入图片描述
在这里插入图片描述
创建完成后项目布局如下:
在这里插入图片描述
在这里插入图片描述
优点:图形化界面,易操作

2.2 Ride各面板说明
2.2.1 项目Edit区

Edit->Settings部分:
在这里插入图片描述
Documentation:文档,每一项都有。可以给当前的对象写一些文档说明。

Suite Setup:指的是测试套件启动的时候就执行某个关键字。(例:我在Suite Setup设置了Sleep | 5sec,表示等待5秒,要注意关键字的参数要使用|分隔)

Suite Teardown:指的是测试套件结束的时候就执行某个关键字。

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

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

Force Tags:强制标记,简单讲就是给当前项目及项目下的测试套件及套件下的每个测试案例都加上Tag,只能在设置的地方删除。

Edit其他部分:
在这里插入图片描述

(1)加载外部文件

Library:加载库,主要是[PYTHON目录]\Lib\site-packages里的测试库。

在这里插入图片描述
在这里插入图片描述

特别强调:在导包时一定要和文件夹的名字一致,包括大小写
在这里插入图片描述

Resource:加载资源,主要是你工程相关的资源文件。

Variables:加载变量文件,不怎么用,可暂时忽略。

(2)定义内部变量

Add Scalar:定义变量。

Add List:定义列表型变量。

Add Dict:定义词典。

(3)元数据定义

Add Metadata:定义元数据。

2.2.2 测试套件Edit区

Edit->Settings部分:
在这里插入图片描述
有时候Settings是隐藏的,点击settings按钮显示。

Documentation:文档,每一项都有。可以给当前的对象写一些文档说明。

Suite Setup:指的是测试套件启动的时候就执行某个关键字。(例:我在Suite Setup设置了Sleep | 5sec,表示等待5秒,要注意关键字的参数要使用|分隔)

Suite Teardown:指的是测试套件结束的时候就执行某个关键字。

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

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

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

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

Force Tags:强制标记,简单讲就是给当前测试套件及套件下的每个测试案例都加上Tag,在测试案例上不能删除,只能在设置的地方删除。

Default Tags:默认标记,给自身打上Tag,而不会给子集打上Tag(区分Force Tags)。

Edit其他部分:
在这里插入图片描述

同项目Edit。

2.2.3 测试用例Edit区

在这里插入图片描述

(1)Settings部分

Documentation:文档,每一项都有。可以给当前的对象写一些文档说明。

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

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

Timeout:设置每一个测试案例的超时时间,超时则失败,并停止案例运行。

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

Tags:标记某个测试用例。在Run区中Only Run Tests with these Tags和Skip Tests with these Tags,会通过这个标志来识别是否运行或跳过用例。

(2)表格部分(最重要的部分,编写测试用例)

第一列一般写的是关键字,关键字的来源包括BuiltIn库,第三方导入库,自己编写的导入库。

使用技巧
  1. 如果忘了关键字,按F5调出Search Keywords查找

也可以输入关键字的一部分再同时按住ctrl+shift+space或者ctrl+alt+space键,则可以自动带出相关关键字,以及选中关键字的用法。
在这里插入图片描述
在这里插入图片描述

注:如果使用Ctrl+Shift+space快捷键无反应,有可能是因为和电脑键盘快捷键有冲突,找到键盘的设置,取消Ctrl+空格热键再去尝试。

b.Ctrl+鼠标悬浮(即鼠标在某个关键字上),可以直接显示该关键字的相关用法。

也可以按住ctrl+alt+space键,查看该关键字的用法。
在这里插入图片描述

c.第二三四五列,一般是输入参数,红色的表示必填,浅灰表示选填,深灰则无需填写。
在这里插入图片描述

d.带*说明该项没保存,记得实时保存文件。
在这里插入图片描述

e.其它快捷键

代码注释: ctrl + #

取消注释: ctrl + $

删除整行代码: ctrl + d

撤销操作:ctrl + z

2.2.4 Text Edit区

该部分记录的是Settings和测试用例文本信息,RIDE自动生成,不用编写。

例如:
在这里插入图片描述

2.2.5 Run区

在这里插入图片描述
Execution Profile:选择运行方式,选项有pybot、jybot等,默认robot即可。

Report和Log:告和日志,要运行之后才能点击。他们的区别是报告更多是结果上的展示,日志更多是过程的记录。

Autosave:自动保存,如果不勾选,在修改了案例之后如果没有保存的话,运行案例时会提示是否保存。勾选则在运行时自动保存了。

Pause on failure:关键字执行失败后暂停。

Show message log:展示log信息。

Start:运行案例。若该测试套件下的测试用例前无勾选,则默认执行该测试套件下所有的用例。若测试用例勾选,则执行该测试陶见下勾选的用例。

Stop:停止案例。

Only Run Tests with these Tags:只运行这些标记的测试案例。在Test Case的settings里可以添加tag。

Skip Tests with these Tags:跳过这些标记的测试案例。
在这里插入图片描述

2.3 案例层和流程层分离

举一个例子:使用Selenium2Library库,调用Edge浏览器打开百度搜索页面搜索“RobotFramework使用方法”,等待5s后再搜索“RobotFramework-ride使用方法”后关闭页面。步骤如下:
在这里插入图片描述

为了减少冗余,可以把整个流程剥离出来成一个关键字,然后在不同的Test case中调用这个关键字,传递不同的参数,以进行不同数据在同一流程下测试。

优点:表格化⽤例,降低编写接⼝和⽤例的难度。关键字驱动,重⽤性好,利⽤现有关键字组装新关键字,简化⾃动化测试过程。

2.3.1 创建资源

如果存在可以不需要创建。右键项目FirstTest,点击New Resource
在这里插入图片描述

我这里新建的资源叫Resource.txt
在这里插入图片描述

2.3.2 创建User Keyword

先选中Testcase1中所有的脚本,右键选择Extract Keyword,取名为“百度搜索”。

在这里插入图片描述
在这里插入图片描述
此时左边区域会出现“百度搜索”的User Keyword,该User Keyword在测试套件下,一般测试套件不放置User Keyword,建议User Keyword放置在Resource下。

将“百度搜索”User Keyword移至Resource.txt下

在这里插入图片描述在这里插入图片描述

Resource.txt导入Library“Selenium2Library”

在这里插入图片描述

2.3.3 User Keyword参数设置

由于搜索数据可变,将其作为参数输入,变量用${}表示,在Settings的Arguments设置,若是有多个参数,那么用”|”分隔,如${参数1}|${参数2}
在这里插入图片描述

2.3.4 导入Resource

在测试套件中导入Resource,才能使用该Resource下的User Keyword。
在这里插入图片描述
在这里插入图片描述

此时TestCase1需要你输入“百度搜索”的两个参数

在这里插入图片描述
在这里插入图片描述
优点:有⾼度可扩展性,由通⽤的测试库和⼯具组成,也可以⾃定义资源库,根据项目的需要自定义一些关键字。可以“汉化”,对非脚本开发者更友好,也方便没有代码基础的功能测试人员进行测试。

2.4 循环测试用例

关键字:Repeat Keyword

在只有自动化的时候,往往不是只执行一次就可以重现问题,可能我们需要重复执行一个用例好几遍。Repeat关键字可以重复执行一个关键字,通过设置执行的次数。如果我们需要重复执行某一个用例的时候就可以把这个用例的内容都封装成一个关键字再通过repeat执行就很好的解决了问题。
在这里插入图片描述

优点:适用于轮次很多的验收测试。

3、命令行运行RF脚本

本测试项目结构如下:

建议所有可执行的suite以.robot作为后缀结尾,所有配置、关键字资源等以.txt作为后缀结尾,便于区分和后续操作。
在这里插入图片描述
在这里插入图片描述

3.1 运行项目

语令:robot <项目路径>

会遍历项目下的所有suite

例:robot FirstTest
在这里插入图片描述

3.2 运行套件

语令:robot [<suite相对路径或绝对路径>]…

执行该suite中的所有test case

例1:robot FirstTest\TestSuite.robot
在这里插入图片描述

例2:robot FirstTest\TestSuite.robot FirstTest\TestSuite2.robot
在这里插入图片描述

如果觉得测试标题名称太啰嗦、不美观,可以通过-N或–name参数指定名称

例3:robot -N 测试 FirstTest\TestSuite.robot FirstTest\TestSuite2.robot
在这里插入图片描述

3.3 运行用例
3.3.1 指定某个suite下某个用例执行

语令:robot -t/–test 用例名 <suite相对路径或绝对路径>

执行suite中的某个用例

例:robot -t TestCase1 FirstTest\TestSuite.robot

在这里插入图片描述

3.3.2 指定某个suite下多个用例执行

语令:robot [-t/–test 用例名]… <suite相对路径或绝对路径>

执行suite中的多个用例

例1:robot -t TestCase1 -t TestCase2 FirstTest\TestSuite.robot
在这里插入图片描述

例2:robot -t TestCase* FirstTest\TestSuite.robot

命令还可以与通配符结合使用,此例运行了TestSuite中的TestCase1和TestCase2
在这里插入图片描述

语令:robot [-s/–suite <suite名>] [-t/–test 用例名]… 项目名

注:<suite名>不加.robot后缀名,最后要带上项目名,否则会报错

例3:robot -s TestSuite -t TestCase1 -t TestCase2 FirstTest
在这里插入图片描述

3.3.3 指定多个不同suite下多个用例执行

语令:robot [-s/–suite <suite名> [-t/–test 用例名]…]… 项目名

例1:robot -s TestSuite -t TestCase1 -t TestCase2 -s TestSuite2 -t TestCase21 FirstTest
在这里插入图片描述

例2:robot -t *1 FirstTest\*.robot

命令还可以与通配符结合使用,此例运行了TestSuite中的TestCase1和TestSuite2中的TestCase21
在这里插入图片描述

3.3.4 运行指定/除指定Tag的用例

用RIDE给测试用例指定Tag:

TestCase1:测试1 TestCase2:测试2 TestCase21:测试3 TestCase22:测试4
在这里插入图片描述

(1)运行指定Tag的用例:

语令:robot [-i/–include Tag名] <suite相对路径或绝对路径>/<项目名>

例:robot -i 测试1 FirstTest\TestSuite.robot
在这里插入图片描述

(2)运行除指定Tag的用例:

语令:robot [-e/–exclude Tag名] <suite相对路径或绝对路径>/<项目名>

例1:robot -e 测试1 FirstTest
在这里插入图片描述

指定多个不同suite下排除某些Tag用例

例2:robot -s TestSuite -e 测试1 -e 测试2 -s TestSuite2 -e 测试3 FirstTest
在这里插入图片描述

3.4 通过执行文件执行命令

如果命令太长,可以将命令放到一个txt文件中,通过命令robot -A 文件名执行。

注意:参数之间要换行!!!不可放在同一行

command.txt内容 :
–name 命令文件测试
-s TestSuite
-t TestCase1
-t TestCase2
-s TestSuite2
-t TestCase22
FirstTest

在这里插入图片描述

3.5 结果报告

结果报告包含output.xml、log.html、report.html,默认生成到当前目录。

output.xml记录的测试结果是XML文件,根据特定的需要可以编写脚本读取XML文件并生成特定的测试报告。如下图:
在这里插入图片描述

log.html会记录RobotFramework运行的每一步操作,主要用于编写测试脚本的过程中查看。如下图:
在这里插入图片描述

report.html为测试报告,整理性的展示测试用例的运行情况。如下图:

在这里插入图片描述

3.5.1 更改结果报告输出目录

语令:robot -d/–outputdir <指定目录>

例:robot -d FirstTest\Report -i 测试1 FirstTest\TestSuite.robot
在这里插入图片描述

3.5.2 指定文件输出名

(1)可以对其分别修改,参数如下:

-o/–output <指定名称>

-l/–log <指定名称>

-r/–report <指定名称>

例:robot -d FirstTest\Report -r rep.html -i 测试1 FirstTest\TestSuite.robot
在这里插入图片描述

(2)不想要某个报告可以设置None

例:robot -l NONE -i 测试1 FirstTest\TestSuite.robot
在这里插入图片描述

优点:自动生成html格式的测试报告和日志。

4、pabot并行测试

Pabot:Robot Framework 测试用例并行执行器

4.1 安装

语令:pip install -U robotframework-pabot
在这里插入图片描述

4.2 Robot VS Pabot

Robot:“串行”测试

过程:项目->suite1-> suite1.用例1-> suite1.用例2…->suite2-> suite2.用例1->…

在这里插入图片描述

在这里插入图片描述
Pabot:“并行”测试,默认suite级别

(1)参数:–processes [进程数]

要使用多少个并行执行程序(默认最大值为2和cpu数),suite级别并行

例1:pabot --processes 2 FirstTest
在这里插入图片描述

在这里插入图片描述

(2)参数:–testlevelsplit

测试用例级别并行

例2:pabot --testlevelsplit FirstTest
在这里插入图片描述
在这里插入图片描述

优点:支持并行测试,节省时间成本。

二、进阶篇——RobotFramework应用

1、主要应用场景

应用场景更适合:

(1) web自动化测试:SeleniumLibrary,Selenium2Library,Selenium2Library for java…

(2)接口自动化测试:RequestsLibrary…

(3)APP自动化测试:AppiumLibrary…

2、总结优劣势(与pytest框架相比)

在这里插入图片描述




写在最后:

   码文不易,求个关注~

  • 35
    点赞
  • 140
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
Robotframework⼊门教程(⼀) 最近⼯作中⽤Robot Framework框架来做⾃动化,所以,花时间学习了⼀下,⽹上好的⽂档不多,⼤多都是复制粘贴如何安装环境。要么就是介绍了⼀堆RIDE 的界⾯,活活把这么强⼤的⼀个⼯具讲成了个photoshop,我⽬前⽤了1个多⽉,这个⼯具很强⼤,简单写两句。 ==安装== ⾸先其实RIDE是个好⼯具,但是安装起来真⼼费劲,当时我的MAC上安装的时候google了两天,⼀个问题接⼀个问题。 我这边呢就不⽤RIDE了,想⽤呢⾃⼰想辙安去。 安装命令: pip install robotframework ==第⼀个testcase== RF的特点什么的就不多说了,⽹上有的是,撸起袖⼦就是⼲。 新建demo.robot⽂件,内容如下。 *** Test Cases *** First Case Log Hello World! warn Second Case ${res} Evaluate 1+2+3 Should Be Equal ${res} 6 Third Case ${res} Evaluate 'i'*3 Length Should Be ${res} 运⾏ robot demo.robot。将得到如下 上⾯的例⼦有三条case,第⼀条调⽤内置关键字Log, 第⼀个参数是"Hello World! " ,第⼆个参数是"warn"。就是简单打印⼀条log,后⾯的是log的等级,默 认输出info以上的log到console,截图中可以看到first case中打印了 Hello World!等级为WARN。 第⼆条case,调⽤内置关键字Evaluate,参数是"1+2+3",结果赋值给变量res(RF的语法是⽤$和⼤括号代表标量变量,还有其他类型的变量以后再说)然后调 ⽤Should Be Equal校验结果是否等于6,因为默认是字符串格式,所以second case 执⾏结果是FAIL。 第三条case,和第⼆条类似,同样调⽤Evalutate 赋值给变量res为"iii",校验变量长度为3,执⾏结果为PASS。 最后三⾏显⽰这次执⾏结果⽣成的⽂件,output.xml,log.html,report.html。打开log⽂件如下,结果报告有什么优点就不说了,⾃⼰去看。output.xml先放放以后 再说。 前⾯说过RF中默认的都是格式是String,那么怎么给关键字传其他的类型,答案是⽤变量。修改second case如下: Second Case ${res} Evaluate 1+2+3 Should Be Equal ${res} ${6} 再次执⾏robot demo.robot 这次的结果
Robot Framework是一个基于Python的可扩展关键字驱动的自动化框架,用于验收测试,验收测试驱动开发(ATDD),行为驱动开发(BDD)和机器人流程自动化(RPA)。它可以在分布式异构环境中使用,其中自动化需要使用不同的技术和接口。由Robot Framework基金会支持,许多行业领先的公司在其软件开发中使用该工具。Robot Framework是开放和可扩展的,可以与几乎任何其他工具集成,以创建强大而灵活的自动化解决方案,并且可以免费使用,无需许可费用。Robot Framework具有高度模块化的体系结构,测试数据采用简单、易于编辑的表格格式。当Robot Framework启动时,它会处理数据,执行测试用例并生成日志和报告。核心框架对被测目标一无所知,与它的交互由库处理。库可以直接使用应用程序接口,也可以使用较低级别的测试工具作为驱动程序。所以,Robot Framework是一种强大的自动化测试工具,适用于各种测试场景,并且具有灵活的扩展性和集成能力。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Robot Framework自动化测试框架超强教程(一)](https://blog.csdn.net/weixin_57794111/article/details/126320063)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ElaineTiger

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值