• Robot Framework笔记


    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 测试报告的路径 测试用例的路径
  • 相关阅读:
    js数组方法重写——pop、push、shift、unshift、every、some、filter、map、forEach
    DevOps(十一)Jenkins实战之Web发布脚本优化与Supervisor
    面试算法32:有效的变位词
    (8个方法)解决windows11/10/8/7卡在准备就绪一直转圈
    springcloudgateway Actuator API
    [附源码]计算机毕业设计JAVAjsp体检中心健康管理系统
    K8S集群调度
    C#8.0本质论第十一章--异常处理
    MySQL函数与控制结构
    七天入门node.js(02)
  • 原文地址:https://blog.csdn.net/m0_46650312/article/details/126595946