Robot Framework | 02 从抛弃RIDE开始创建你的RFS测试

概述

大多数情况下,我们用RobotFramework时,一般基于其图形界面的RIDE来编辑、管理、执行用例。

今天我们分享下基于非编辑器模式的RobotFramework 关键字自动化测试。

目标

我们实现以下功能:

  1. 启动浏览器
  2. 访问百度
  3. 输入"开源优测",单击"百度一下"按钮
  4. 关闭浏览器
  5. 输出报告

准备

我们一起看下需要哪些准备工作:

需要安装的一些库:

  1. 安装RobotFramework,命令为:

pip install robotframework -U

  1. 安装最新的selenium3, 命令为:

pip install selenium -U

  1. 安装SeleniumLibrary,命令为:

pip install --pre --upgrade robotframework-seleniumlibrary

  1. 安装Selenium2Library, 命令为:

pip install --upgrade --pre robotframework-selenium2library

注意: 在最新的Robotframework里,Selenium2Library从版本3.0开始已经被重命名为SeleniumLibrary。

YAML语法示例

这里我默认大家对RobotFramework有一定的基础,即:对关键字有一定的了解。我们先看一下基于yaml语法来实现目标功能,如下:

*** Settings ***
# 使用SeleniumLibrary库实现百度搜索测试
Library    SeleniumLibrary

*** Variables ***
# 变量定义
${baidu}    http://www.baidu.com    # 百度首页
${browser}    Chrome    # 浏览器
${searchWord}    开源优测    # 搜索词
${search_input}    id=kw    # 搜索框ID
${search_btn}    id=su    # 百度一下按钮

*** Test Cases ***
# 测试用例
启动浏览器
    Open Browsers

百度搜索测试
    Input Search Word
    Click Search Button

断言验证搜索结果标题
    Assert Search Result    

关闭浏览器
    Quit Search

*** Keywords ***
# 自定义关键字
Open Browsers
    Open Browser    ${baidu}    ${browser}
    Title Should Be    百度一下,你就知道

Input Search Word
    Input Text    ${search_input}    ${searchWord}

Click Search Button
    Click Button    ${search_btn}
    Sleep    5s

Assert Search Result
    Title Should Be    开源优测_百度搜索

Quit Search
    Close All Browsers

将上述内容保存至search_baidu_demo.robot文件中,执行以下命令:

pybot search_baidu_demo.robot

运行日志如下图:

其中:

  • output.xml 为原始的测试结果记录
  • log.html 为测试过程日志
  • report.html 为html格式的测试报告

也截图看看报告:

小结

本文基于文本编辑器,利用Robotframework关键字语法格式实现了自动化测试实践,那也可以尝试基于表格式语法来实现一个试试。

原文发布于微信公众号 - 开源优测(DeepTest)

原文发表时间:2017-09-11

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏猿人谷

有趣的Linux命令行效果

有趣的Linux命令行功效 1. Linux"sl"命令行 尽管"sl"代表了"蒸汽机机头",但它是用来提醒那些命令行控们别把"ls"打成了"sl"。让我们看看...

2308
来自专栏有趣的Python

IDEA 神器使用技巧

标记上bookmarks之后可以ctrl 1 ctrl 2 ctrl 3 按标签序号进行跳转

1013
来自专栏编程

14个你可能不知道的JavaScript调试技巧

问题:我怎么才能收到你们公众号平台的推送文章呢? ? 熟悉工具可以让工具在工作中发挥出更大的作用。尽管江湖传言 JavaScript 很难调试,但如果你掌握了几...

1999
来自专栏做全栈攻城狮

全栈工程师必备:安卓移动端手机开发,第六课

本系列课程 致力于老手程序员可以快速入门学习安卓开发。系统全面的从一个.Net程序员的角度一步步学习总结安卓开发。

1253
来自专栏Spring相关

nodejs的事件处理机制以及事件环机制

ES6标准发布后,module成为标准,标准的使用是以export指令导出接口,以import引入模块,但是在我们一贯的node模块中,我们采用的是Common...

701
来自专栏cnblogs

requirejs、vue、vuex、vue-route的结合使用,您认为可行吗?

     在五一节之前和一网友讨论前端技术时,对方提到vue、vue-route如果配合requirejs应用。当时的我没有想得很明白,也没能这位网友一个准确的...

28910
来自专栏lestat's blog

同一页面巧妙使用多个element-ui的upload组件

4254
来自专栏前端正义联盟

关于ajax学习笔记

只要这个属性值发生了变化,就会触发一个事件onreadystatechange事件,就可以使用xhr.onreadystatechange = function...

1372
来自专栏Crossin的编程教室

【编程课堂】selenium 祖传爬虫利器

一些网页,比如微博,只有在登录状态才能进行页面的访问,或者对数据有比较复杂的验证和保护,直接通过网络请求进行登录并获取数据就会比较麻烦。这种时候,就该本篇的主角...

2594
来自专栏精讲JAVA

14个你可能不知道的JavaScript调试技巧

以更快的速度和更高的效率来调试JavaScript 熟悉工具可以让工具在工作中发挥出更大的作用。尽管江湖传言 JavaScript 很难调试,但如果你掌握了几个...

2026

扫码关注云+社区