认识 RIDE

RIDE 作为 Robot Framework 的“脸面”,虽然我们已经可以拿它来创建和运行测试了,但我们对它的认识并不全面,这一小节我们将了解这个工具的使用。

1、Edit 标签

下面我们来看一看测试项目和测试套件所提供的 Edit 标签。
从而“测试项目”和“测试套件”所提供的 Edit 标签的功能也可看出两者是一样的。

在 Edit 标签页中主要分:加载外部文件、定义内部变量、定义元数据等三个部分。

(1):加载外部文件
  • Add Library:加载测试库,主要是[PYTHON 目录]\Lib\site-packages 里的测试库
  • Add Resource:加载资源,主要是你工程相关的资源文件
  • Add Variables:加载变量文件。
(2):定义内部变量
  • Add Scalar:定义变量
  • Add List:定义列表型变量
(3):定义元数据
  Add Metadata:定义元数据。我是直接翻译的,这个是新增加的部分,大概看了一下作用是在 report
和 log 里显示定义好的内容,格式和 document 一样。

2、导入库

点击 Edit 标签页右侧的“Library”按钮,来添加库。在添加库之前,首先库已经在 Python 下进行了安装。如,添加“Selenium2Library”库。

  • 如果添加的库不存在或库名错误,将会红色显示,黑库正常表示正常。
  • 如果你是在“测试套件”中添加的库,那么这个库中所提供的关键字可以被当前测试套件下的用例使用。
  • 如果你是在“测试项目”中添加的库,当前项目下的测试用例不能使用库中的关键字,需要在用例相应的“测试套件”中再次添加库。
  
  现在按 F5 就可以查看库中所提供的关键字。

3、导入资源

  点击 Edit 标签页右侧的“Resource”按钮来添加资源。这个资源一般为项目关的文件。比如,项目的自定义关键字文件。
  下面我们就来添加一个“业务关键字.txt”文件。

  关于添加资源的作用域与库一样。我这里是添加到的测试套件中,那么它的作用域就是当前测试套件下的所有用例。
  查看 RIDE 左侧项目列表,会发现“External Resource”下多了一下“业务关键字.txt”的资源。展开关键字会看到文件中定义的登录、退出和查询三个关键字。现在就可以在用例中使用这些业关键字了。

4、定义变量

  点击 Edit 标签页右侧的“Add Scalar”按钮来创建变量。这里创建的变量可以被整个测试套件中的用例所使用。也可以认为是一个“公共变量”。

  Name 用于定义变量名:${hi}
  Value 用于给变量赋值。这里赋值是一段话,“欢迎你第一次使用 Robot Framework。它的强大性和易用性相信会让你的测试工作变得更加简单可靠。”
  下面就可以在测试用例中来使用这个变量。

用例中是两个打印信息,分别使用了${hi}变量。

执行结果:

Starting test: 测试项目.测试套件.test case2
20150304 13:39:25.874 : INFO : 小明 欢迎你第一次使用 Robot Framework。它的强大性和
易用性相信会让你的测试工作变得更加简单可靠。
20150304 13:39:25.875 : INFO : 小红 欢迎你第一次使用 Robot Framework。它的强大性和
易用性相信会让你的测试工作变得更加简单可靠。
Ending test: 测试项目.测试套件.test case2
相信从用例的执行结果中我们已经体会到了“公共变量”的作用。

5、定义列表变量

列表变量可以用来定义一维或二维数组。下面我们就来创建一个列表变量。点击 Edit 标签页右侧的“Add List”按钮来创建变量

Name 定义变量名为:${student}

Value 填写列表变量的值:张三、李四、王五、赵六
 
在测试用例中可以对这个一维数组进行遍历:

执行结果:

6、Text Edit 标签

  我们在 Edit 标签页完成的工作,都可以在 Text Edit 标签页上完成。它们之间是对应关系,Edit 可视化的提供的按钮输入框,对于用户来说更容易知道我要怎么做;而在 Text Edit 中只是一个空当当的文本,我们跟本不知道如何下手。
  好在我们已经在 Edit 中做了很多事情。切换到 Text Edit 将会看到这些信息的展示。

7、Run

  我一直在想 Robot Framework 不要 RIDE 可不可以。对于编写测试用例来说,只要掌握 RobotFramework 的语法规则,随便在一个你顺手的编辑器下编写也没问题,甚至效率更高。为什么要填写那个该死的“表格”。
  直到运行案例的时候我才意识到 RIDE 的好处。在 RIDE 中运行测试用例,就是勾选想要运行的用例,然后点击按钮即可。想想我们在做单元测试的时候可不会这么方便,调用 addTest()方法将一个个想要运行的测试方法添加到测试套件中,或者一行行的注释掉不添加到测试套件的测试用例的
addTest()方法,这是个极其痛苦的过程。

7.1Run 标签

下面是 Run 标签的截图:

  第一眼看上去,Run 标签提供了丰富的操作和日志。按照截图我们依次来说明 Run 标签上的按钮和输入框的作用:
  • 1) Execution Profile:选择运行方式,里面有 pybot、jybot 和 custom script。其中我们默认是用 pybot来运行案例,pybot 的运行 Python 编译器完成。jybot 需要安装 Jython 的支持。custom script 是选择自定义的脚本来运行。
  • 2) Start 和 Stop:用例的运行和停止。
  • 3) Report 和 Log:报告和日志,要运行之后才能点击。他们之间的区别:报告更多是结果上的展示,日志更多是过程的记录,在测试用例调试的过程中更多使用日志来查看执行错误。当只想知道测试用例的最终执行情况时用报告。
  • 4) Autosave:自动保存,如果不勾选,在修改了用例之后如果没有保存的话,运行案例时会提示是否保存。勾选则在运行时自动保存了。
  • 5) Arguments:pybot 的参数(或者 jybot 等),可以在这里输入 pybot 的命令完成相应的操作。
  • 6) Only Run Tests with these Tags:只运行这些标记的测试案例。
  • 7) Skip Tests with these Tags: 跳过这些标记的测试案例。
执行过程:
command: pybot.bat --argumentfile
c:\users\fnngj\appdata\local\temp\RIDEg0ek6m.d\argfile.txt --listener
C:\Python27\lib\site-packages\robotide\contrib\testrunner\TestRunnerAgent.py:
63009:False D:\robot\测试项目
================================================================= 测试项目
================================================================= 测试项目.测试套件
=================================================================
test case | PASS |
-----------------------------------------------------------------
test case2 | PASS |
-----------------------------------------------------------------
test case3 | PASS |
----------------------------------------------------------------- 测试项目.测试套件 | PASS | 3 critical tests, 3 passed, 0 failed
3 tests total, 3 passed, 0 failed
================================================================= 测试项目 | PASS | 3 critical tests, 3 passed, 0 failed
3 tests total, 3 passed, 0 failed
=================================================================
Output: c:\users\fnngj\appdata\local\temp\RIDEg0ek6m.d\output.xml
Log: c:\users\fnngj\appdata\local\temp\RIDEg0ek6m.d\log.html
Report: c:\users\fnngj\appdata\local\temp\RIDEg0ek6m.d\report.html
test finished 20150304 16:33:22

执行结果:

Starting test: 测试项目.测试套件.test case
20150304 16:33:22.639 : INFO : test1
Ending test: 测试项目.测试套件.test case
Starting test: 测试项目.测试套件.test case2
20150304 16:33:22.643 : INFO : 小明 欢迎你第一次使用 Robot Framework。它的强大性和
易用性相信会让你的测试工作变得更加简单可靠。
20150304 16:33:22.645 : INFO : 小红 欢迎你第一次使用 Robot Framework。它的强大性和
易用性相信会让你的测试工作变得更加简单可靠。
Ending test: 测试项目.测试套件.test case2
Starting test: 测试项目.测试套件.test case3
20150304 16:33:22.649 : INFO : 小明
20150304 16:33:22.652 : INFO : 小红
20150304 16:33:22.654 : INFO : 小华
20150304 16:33:22.657 : INFO : 小刚
Ending test: 测试项目.测试套件.test case3

7.2 运行与停止

  在 Run 标签页提供了运行与停止的按钮,使用很简单。可是你知道到点击“运行”按钮的时候,RobotFramework 是怎么执行“测试套件.txt”文件的么?点击“停止”按钮的时候,Robot Framework 又做了什么操作来终止用例的执行的?带着这样的疑问,我们来简单的读一下 RIDE 的 run 代码。

  首先打开 C:\Python27\Lib\site-packages\robotide\run 目录下的 process.py 文件。

7.3 报告与日志

  当用例运行结束,Robot Framework 生成三个文件:output.xml、log.html 和 report.html。
  output.xml 记录的测试结果是 xml 文件,这个文件不够直观。根据特定的需要可以编写脚本读取 xml文件并生成特定的测试报告。
  相比较而言 log.html 和 report.html 报告要直观得多,因为是 html 格式的嘛。
  查看 log.html 文件,点击 Run 标签而上的“Log”按钮,通过默认浏览器打开。

  在 log.html 文件中可以查看用例执行的每一步,适合跟踪定义问题。

  查看 report.html,点击 Run 标签而上的“Report”按钮,通过默认浏览器打开。

  report.html 用于最终结果的展示,适合了解测试用例的执行情况:测试了哪些模块,用例数、失败率

等。

7.4 筛选执行用例

这一节来探讨一下,几中方式可以筛选要运行的运用例。
第一种:勾选用例
在要执行的用例前面打勾。

  这种方法最简单和直观,要运行哪条用例就勾选哪一条。如果全部不勾选,点击“运行”按钮会运行所有用例。

  也可以在“测试套件”上右键选择:

  • Select All Test:选择当前套件的所有用例。
  • Select Only Failed Test:选择当前套件下运行失败的用例。
  • Select Only Passed Test:选择当前套件下运行成功的用例。
对于一个测试套件下有几十上百个用例来说,这几选项将非常有用。
 
第二种:用命令
这就用到 Run 标签中的 Arguments 功能。
  在 Arguments 的输入框内输入“-t testcase4”。点击“Start”按钮,只执行了 test case4 这一条用例。Arguments 能做的事情可不止于此。想了解更多多命令。可以在 cmd.exe 下执行“pybot.bat --help”。

第三种:筛选标记
  这种方式就非常有意思的,对于不同的人来说会有一些标记,比如某富二代的标记就是“任性”。对于用例来说也可以打上标记。比如“重要”、“一般”、“基础”等。
  点击某个用例,你会看到“Setting>>”的按钮,点击按钮展开:

  •  在最下面将会看到“Tags”的选项,在“<Add New>”的输入框内输入“重要”。这条用例就打上了重要”的标记。
  •  现在切换到 Run 标签,我要运行带“重要”标记的用例了,如何去做了?这就要用到:
  •  Only Run Tests with these Tags:只运行这些标记的测试案例。
  •  Skip Tests with these Tags: 跳过这些标记的测试案例。

  因为“test case3”被打上了“重要”的标记,所以它被执行了。
  对于一个用例来说,我们可以为它添加多个标记。勾选“Skip Tests with these Tags”选项可以跳过某些标记的用例。

8、Settings

  不管是测试套件还是测试用例都会有一个“Settings>>”的按钮,因为它默认是被折叠起来的,所以,一般不太容易发现它,更不知道点击它之后是可以展开的。

8.1测试用例的 Settings

  点击测试用例上的“Settings>>”按钮,会看到下面的选项。

Documentation:用于描述用例的一个小文本,它可以把 URL 地址转换为可点击的链接。

  • Setup 和 Teardown:如果你了解 unittest 单元测试框架的话,一定对这两个单词不陌生。
  • setUp 用于设置初始化工作,在每一个测试用例前先被执行
  • tearDown 方法在每个测试方法执行后调用,这个方法用于完成测试用例执行后的清理工作,如执行“close browser”关闭浏览器等。
  • TimeOut:用于设置用例的超时时间。如“1 min 10s”、“ 2 hours”等。
  • Template:指定模板使用的关键字。

8.2 测试套件的 Settings

  同样点击测试套的“Setting>>”按钮打开套件设置:

  这里的 Setup 和 Teardown 分测试套件的和测试用例的。“Suite Setup”和“Suite Teardown”用于当前套件的开始和结束所要做的事情。“Test Setup”和“Test Teardown”会作用于套件下每一个测试用例开始和结束所要做的事情。

  Force Tags:表示当前测试套件下测试用例强制的标记。
  Default Tags:表示当前测试套件下测试用例默认的标记。

robot_framewok自动化测试--(7)认识RIDE的更多相关文章

  1. robot_framewok自动化测试

    robot_framewok自动化测试 http://wenku.baidu.com/view/691abcaa4b73f242336c5fec.html 接口自动化测试框架设计 http://wen ...

  2. robot_framewok自动化测试--(2)创建第一个项目

    创建第一个robot_framewok项目 通过 RIDE 去学习和使用 Robot Framework 框架,对于初学者来说大大的降低了学习难度.所以后面对 Robot Framework 框架都将 ...

  3. robot_framewok自动化测试--(1)Robot Framework 环境搭建及常见日志问题解决办法

    一.Robot Framework 介绍 Robot Framework 的架构是一个通用的验收测试和验收测试驱动开发的自动化测试框架(ATDD).它具有易于使用的表格来组织测试过程和测试数据. 它使 ...

  4. Appium+Robotframework实现Android应用的自动化测试-5:RIDE中AppiumLibrary的配置

    可能很多朋友已经迫不及待的想要用RobotFramework+AppiumLibrary来写Android App的测试脚本了,那我们也废话少说,直接开始. 首先打开RIDE,这是编写RobotFra ...

  5. robot_framewok自动化测试--(9)连接并操作 MySql 数据库

    连接并操作 MySql 数据库 1.mysql数据库 1.1安装mysql数据库 请参考我的另一篇文章:MYSQL5.7下载安装图文教程 1.2.准备测试数据 请参考我的另一篇文章:Mysql基础教程 ...

  6. robot_framewok自动化测试--(8)SeleniumLibrary 库(selenium、元素定位、关键字和分层设计)

    SeleniumLibrary 库 一.selenium 1.1.Selenium 介绍 Selenium 自动化测试工具,它主要是用于 Web 应用程序的自动化测试,但并不只局限于此,同时支持所有基 ...

  7. robot_framewok自动化测试--(4)常用关键字介绍

    常用关键字介绍 在学习一门编程语言的时候,大多教材都是从打印"hello world"开始.我们可以像编程语言一样来学习 Robot Framework.虽然通过 RIDE 提供& ...

  8. robot_framewok自动化测试--(6)Collections 库

    Collections 库 Collections 库同样为 Robot Framework 标准类库,它所提供的关键字主要用于列表.索引.字典的处理. 在使用之前需要在测试套件(项目)中添加: 1. ...

  9. robot_framewok自动化测试--(5)Screenshot 库

    Screenshot 库 Scrennshot 同样为 Robot Framework 标准类库,我们只将它提供的其它中一个关键字"TakeScreenshot",它用于截取到当前 ...

随机推荐

  1. FormData上传文件 带进度条

    * jQuery ajax  FormData 上传文件 template $.ajax({ url: url, type: 'POST', data: new FormData(form), dat ...

  2. centos7.X 系统初始化>>优化

    1 修改网卡为eth0 cd /etc/sysconfig/network-scripts/ vim ifcfg-eno16777729TYPE=EthernetBOOTPROTO=staticIPA ...

  3. Kafka 性能篇:为何 Kafka 这么快?

    『码哥』的 Redis 系列文章有一篇讲透了 Redis 的性能优化 --<Redis 核心篇:唯快不破的秘密>.深入地从 IO.线程.数据结构.编码等方面剖析了 Redis " ...

  4. Selenium+Tesseract-OCR智能识别验证码爬取网页数据

    1.项目需求描述 通过订单号获取某系统内订单的详细数据,不需要账号密码的登录验证,但有图片验证码的动态识别,将获取到的数据存到数据库. 2.整体思路 1.通过Selenium技术,无窗口模式打开浏览器 ...

  5. P5048-[Ynoi2019 模拟赛]Yuno loves sqrt technology III【分块】

    正题 题目链接:https://www.luogu.com.cn/problem/P5048 题目大意 就是这个 [QA]区间众数,但空间很小 长度为\(n\)的序列,要求支持查找区间众数出现次数. ...

  6. Redis基础数据结构-基于2.8

    SDS SDS是Redis中String的底层数据结构,数据结构如下,SDS保留了传统的C字符串表达方式即数组的最后一个元素是'/0'结尾.此外还添加了两个字段len和free,其中len表示字符串长 ...

  7. Java实现两数之和等于二十

    找出数组中两个数字之和为20的两个数 代码实现 public static void main(String[] args) { // TODO Auto-generated method stub ...

  8. 产生UUID随机字符串工具类

    产生UUID随机字符串工具类 UUID是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的.通常平台会提供生成的API.按照开放软件基金会(OSF)制定的标准计算,用到了以太网卡地址. ...

  9. js Promise用法

    Promise 英文意思是 承诺的意思,是对将来的事情做了承诺, Promise 有三种状态, Pending 进行中或者等待中 Fulfilled 已成功 Rejected 已失败 Promise ...

  10. NOIP2012提高组初赛NB题

    本题中,我们约定布尔表达式只能包含 p, q, r 三个布尔变量,以及"与"(∧)."或"(∨)."非"(¬)三种布尔运算.如果无论 p, ...