Robot Framework笔记

师野
2023-12-01

Robot Framework

RF简介和特点

  • 简介:RF是一个基于Python语言开发的,可扩展的,是以关键字驱动模式的自动化测试框架,
    2019年7月份之前,只支持python2.7。7月份之后支持到3.7,。。。。。

  • 关键字驱动和数据驱动的区别?

    • 关键字驱动:关键字驱动表示把项目中的一些逻辑封装成关键字(一个函数名),比如:login,register.
      调用不同的关键字组合实现不同的业务逻辑,从而驱动测试用例执行
    • 数据驱动:数据驱动是把测试用例里面的数据提取到excel或者yaml文件里面,然后通过改变excel或者
      yaml中的数据驱动测试用例执行
  • RF特点

    • 编写用例简单,可以以robot,txt,tsv或html的格式编写用例
    • 自动生成html格式的测试报告和日志
    • 除了自带的类库外,还有很多的实用的扩展类库
    • 可以根据项目需要自定义一些关键字
    • 可以使用GUI的方式运行,可以和SVN、GIT以及Jenkins持续集成

RF环境安装

  • 1.安装python3.7,设置python环境变量
  • 2.使用管理员的身份打开dos窗口,输入下面的命令:pip install robotframework==3.1
  • 3.在dos窗口中安装RIDE工具,输入下面的命令:pip install robotframework-ride
  • 双击ride图标,或者在dos窗口输入ride.py ,我是采用这个方式进入的 python3.6.5 robotFrameWork 环境安装

RF的使用

  • 创建项目:new project
    • 注意:输入项目名称,选择项目路径,选择Dictionary目录
  • 创建测试套件(它是测试用例的载体): new testsuit
    • 注意:选择File文件
    • 关注:关注Edit页签,主要有四大块
      • 1.Setting设置

        • Document:描述
        • Suite Setup:测试套件之前的准备工作
        • Suite Teardown:测试套件之后的扫尾工作
        • Test Setup:测试用例之前的准备工作
        • Test Teardown:测试用例之后的扫尾工作
        • Test Template:测试用例模板
        • Test Timeout:测试用例超时的时间
        • Force Tags:强制标记,比如说:smoke冒烟用例
        • Default Tags:默认标记,比如product
      • 2.Import:导入外部文件

        • Library:导入外部类库,如果是黑色表示成功,红色表示失败
        • Resource
      • 3.定义内部变量

      • 4.元数据

  • 创建测试用例: new testcase
  • 创建业务关键字(资源文件,它是自定义关键字的载体): new resource
    • 注意:只能在文件夹下面创建,并且是txt格式,它是自定义关键字的载体
  • 创建用户自定义关键字: new user keyword

RF常用类库

  • 1.标准库:不需要安装,直接用,RF再带

    • Buitini(测试库)

    • Collections(集合库)

    • DateTime(时间库)

    • ScreenShot(截屏库)

    • 标准库的位置:虚拟环境位置\Lib\site-packages\robot\libraries

  • 2.扩展库:需要通过pip安装库

    • web自动化测试:SeleniumLibrary,Selenium2Library, Selenium2Library for java等

    • API接口自动化:RequestsLibrary,

    • APP自动化测试:AppiumLibrary

    • 扩展库的位置:虚拟环境位置\Lib\site-packages\

      • 特别强调:在导包时一定要和文件夹的名字一致,包括大小写

RF常用关键字的使用

  • 快捷键
    • 搜索关键字:F5
    • 自动补齐关键字:ctrl+shift+空格

准备UI自动化测试的环境

  • 通过pip安装扩展库: pip install robotframework-seleniumLibrary

  • 下载谷歌浏览器

  • 下载谷歌浏览器的驱动(注意:谷歌浏览器的驱动必须和谷歌浏览器兼容)

    • 把chromedriver.exe放到所建立的虚拟环境路径下
  • 在RF的测试套件里面导入seleniumLibrary

元素定位

  • id,name,link_text,partial_link,xpath,css,class_name,tag_name

  • 前提:元素必须唯一

  • xpath:

    • 通过绝对路径定位:这种方式几乎不用
    • 通过相对路径定位:eg://form/span/input
    • 通过元素属性定位:eg://input[@autocomplete=“off”]
    • 通过部分属性定位:eg: //input[starts-with(@autocomplete,“of”)], //input[contains(@autocomplete,“of”)]
    • 通过文本定位: //input[text()=“新闻”]
  • css

    • 通过绝对路径定位,这种方式几乎不用

    • 通过ID或者CSS定位

      • #ID
      • .class
    • 通过元素属性定位

      • input[autocomplete=“off”][class=“s_ipt”]
    • 通过部分属性定位

      • input[autocomplete^=“of”)]
    • 通过子元素定位

项目的三层架构

  • 三层架构指的是什么

    • 页面元素层

    • 业务逻辑层

    • 测试用例层

    • 业务逻辑层调用页面元素层,测试用例层调用业务逻辑层

  • 为什么需要分层,意义在那里

    • 实现页面元素,公共方法,公共数据,测试用例集中式管理
    • 增加脚本的重复利用率
    • 增加脚本的可维护性

RF非GUI方式(命令行)运行

  • 执行命令
    • 打开cmd,然后输入pybot -d 测试报告的路径 测试用例的路径
 类似资料: