zoukankan      html  css  js  c++  java
  • 【Python】 RobotFramework 安装配置与简要操作

    前言:

    最近项目中用到了Python 著名的RobotFramework 框架(以下简称RF),特做一些总结如下:

    RF简介

    RF框架是用python语言开发的一套基于关键字操作的自动化测试框架, 适用于python2.7 , python3.X等版本。

    RF适合编码基础较弱的同学进行自动化测试,完全可以在不写代码的情况下完成UI自动化测试,接口自动化测试。

    安装RF

    本文以python2.7 下使用RF为例 (因为python3对于ride的支持还不稳定...)

    1. 安装python2.7 /python3.7(不再赘述),安装好pip命令

    2. 打开CMD,命令行模式CD到python2.7/Script 目录下

            安装requests库:          pip install requests

            安装robotframework:    pip install robotframework

            安装wxPython:            pip install wxPython

            安装pywin32:                pip install pywin32

            安装pygments:            pip install pygments

      pip install robotframework-requests

           pip install robotframework-ride

    做UI自动化测试需要安装如下:

    1.pip install robotframework-selenium2library

    2.pip install robotframework-archivelibrary

    3.pip install robotframework-SSHLibrary

    4.pip install robotframework-ftplibrary

    安装完之后,可以生成桌面图标: 

     编写用例并执行就用ride就可以

    注意事项:

    1. 添加环境变量,路径为: C:Python37Scripts (python3里面你需要的库文件在site-packages 里面,所以需要添加: C:Python37Libsite-packages)

    2. 在ride里面,F5可以查询你所需要的库 (写的时候最疼苦是没有自动引入,哎,这也算是一个大缺陷)

    RF的简单使用

    1. RF常用的库总结:

    Robot Framework常用库简介
    标准库 
    Robot Framework可以直接导入使用的库,包括:
      • Builtin:包含经常需要的关键字。自动导入无需import,因此总是可用的
      • Dialogs:提供了暂停测试执行和从用户的输入方式。
      • Collections:提供一组关键词处理Python列表和字典。
      • OperatingSystem:允许执行各种操作系统相关的任务。允许执行各种操作系统相关的任务,使各种操作系统相关的任务在robotframework正在运行的系统中执行。
      • Remote:远程库接口的一部分。没有自己的任何关键字,作为robotframework和测试库之间的代理的特殊库。实际测试库可以在不同的机器上运行,可以使用任何编程语言支持XML-RPC协议的实现。
      • Screenshot:提供关键字来捕获和存储桌面的截图。
      • String:用于处理字符串并验证它们的内容的库,用于生成、修改和验证字符串
      • Telnet:支持连接到Telnet服务器上打开的连接执行命令。
      • XML:用于生成、修改和验证XML文件的库。
      • Process:系统中运行过程的库。
      • DateTime:日期和时间转换的库,支持创建和验证日期和时间值以及它们之间的计算
    
    扩展库 Robot Framework需要下载安装后才能使用的库,包括:   • Android library:所有android自动化需要的测试库,内部使用的是Calabash Android   • iOS library:所有iOS自动化需要的测试库,内部使用Calabash iOS服务   • appiumlibrary:Android和iOS测试库,内部使用的是appium   • HTTP library (livetest):内部使用LiveTest工具的HTTP测试的库。   • HTTP library (Requests):内部使用request工具的HTTP测试的库。   • MongoDB library:使用pymongo和MongoDB交互的库。(MongoDB是一个基于分布式文件存储的数据库)   • Database Library (Java):基于Java的数据库测试库。也可使用Jython和Maven central.   • Database Library (Python):基于Python数据库测试库。支持任何Python解释器,包括Jython。   • watir-robot:使用Watir的工具的Web测试库。   • seleniumlibrary:Web测试库,内部使用比较流行的selenium工具。利用早期的selenium1.0和本身已经过时。   • selenium2library:使用selenium2的Web测试库。替换了大部分老的seleniumlibrary。   • selenium2library java:selenium2library的java接口   • Django Library:为Django的库,一个Python Web框架。   • sudslibrary:一种基于泡沫基于SOAP的Web服务的功能测试库,动态的SOAP 1.1的客户端。   • Archive library:处理.zip和.tar压缩包的库。   • Diff Library:比较两个文件的库。   • FTP library:Robot Framework上测试和使用FTP服务的库。   • SSHLibrary:通过SSH连接的在远程机器上执行命令。还支持使用SFTP进行文件传输   • rammbock:通用的网络协议测试库;提供简单的方法来指定网络数据包,并检查发送和接收数据包的结果。   • imagehorizonlibrary:跨平台、基于图像识别的GUI自动化纯Python库。   • autoitlibrary:Windows的GUI测试库,使用AutoIt的免费工具作为驱动。   • Eclipse Library:使用SWT窗口小部件测试Eclipse RCP应用程序的库。   • robotframework-faker:一个服务faker的库,faker的测试数据生成器。   • swinglibrary:用Swing GUI测试java应用程序库   • remoteswinglibrary:使用swinglibrary库测试和连接一个java进程,尤其是java web    start的应用。(Java Web Start 是基于 Java 技术的应用程序的一种部署解决方案,它是连接计算机和 Internet    的便捷通道,允许用户在完全脱离 Web 的情况下运行和管理应用程序)

    2. 引用位置:

     这里注意下: 如果你引入的库不存在或者路径错误,会显示成红色

    2. RF 自有关键字的调用:

    一、实用函数

    关键字

    含义

    实例

    备注

    Click Button

    点击按钮

    Click Button 注销

    这里“注销”的class属性,必须是Button

    Click Element

    点击元素

    Click Element [locator]

    Locator可以是resource-id,也可以是xpath;但必须是当前页面唯一存在的;一般用该关键字可以完成所有元素点击

    Click Text

    点击文字

    Click Text 我的

    “我的”需要是当前页面唯一存在的

    Input Text

    在指定元素中输入文本

    InputText [locator] 111111

    Locator可以是resource-id,也可以是xpath

    Swipe

    滑动屏幕

    Swipe 1000 1800 100 1800

    Get Text

    获取某标签内容

    ${account}   Get Text  [locator]  

    获取内容后存储到指定变量中,从而在后续脚本中调用该内容

    Select Frame

    UnSelect Frame    

    选择一个frame进行跳转 

    Xpath=//* [@]

     
    ${a} Ser variable  123 设置一个参数
    :FOR ${a} in range 10
    log 111  
    RequestsLibrary.Post Request api /api/login data=${a}

    二、校验函数

    关键字

    含义

    实例

    备注

    Element Name Should Be

    检查元素的name属性

    Element Name Should Be  [locator]  登录

    locator可以是resource-id,也可以是xpath

    Element Should Be Enabled

    检查元素是否可用/可见

    Element Should Be Enabled  [locator]

    Page Should Contain Element

    检查界面包含某些元素

    Page Should Contain Element   [locator]

    Page Should Contain Text

    检查界面包含某些文字信息

    Page Should Contain Text  预约挂号

    Page Should Not Contain Element

    检查界面不包含某些元素

    Page Should Not Contain Element  [locator]

    Page Should Not Contain Text

    检查界面不包含某些文字信息

    Page Should Not Contain Text  预约挂号

    三、等待函数

    关键字

    含义

    实例

    备注

    Wait Until Page Contains

    等待直到界面中包含某些文字,才进行下一步

    Wait Until Page Contains  预约挂号

    默认等待时间为5s

    Wait Until Page Contains Element

    等待直到界面中包含某些元素,才进行下一步

    Wait Until Page Contains Element   [locator]

    locator可以是resource-id,也可以是xpath

    Wait Until Page Does Not Contain

    等待直到界面中不包含某些文字,才进行下一步

    Wait Until Page Does Not Contain  预约挂号

    Wait Until Page Does Not Contain Element

    等待直到界面中不包含某些元素,才进行下一步

    Wait Until Page Does Not Contain Element  [locator]

     
           
     
     
     
     

    3.RF结果简介

     如上图所示,RF执行的时候点Start就行,注意输出路径不支持中文,需要使用 -d  C:\log 进行修改,否则会报错

    执行的时间,输出的log以及结果,在输出路径里面都有,不再赘述。

     

    4. RF高级用法

    1. 自定义第三方库

    这个非常简单,自己用ide写一个py脚本, 在resource里面导入即可,调用的时候直接使用方法名即可调用。
    例如写了一个  def sum(a,b):
    调用的时候直接 sum  a  b  即可。
     
     

    2. 读取Excel,text 测试数据文件

    首先安装下库:  pip install robotframework-ExcelLibrary

    然后导入resource, ExcelLibrary库常用关键字

    Open Excel                       打开Excel文件
    Get Row Count                 获取行数
    Get Column Count            获取列数
    Get Row Values                获取某一行的值
    Get Column Values           获取某一列的值
    Read Cell Data By Coordinates      通过列行编号获取值
    Read Cell Data By Name                 按名称读取单元格数据

    ExcelLibrary库使用注意事项:

    1.只支持xls格式的Excel文档
    2.Excel表格中的数值,代码读取后会显示为浮点型
      如123,读取后显示为123.00,造成传参不一致
      解决方案:设置单元格格式---->文本
    3.读取每行或每列数据,存储到list变量中,是一个二维数组
      如(A1,123)(B1,张三)
    4.数组的位置编号都是从0开始的

    参考资料:

    https://www.cnblogs.com/yufeihlf/p/5949984.html

     
     
     
  • 相关阅读:
    Linux:DHCP服务配置
    调整 全局jvm 大小 tomcat 调整jvm大小
    Arts打卡第8周
    mysql 对返回的值是null进行判断和重新赋值
    从xml中返回的对象,和new 返回的对象时不同的。
    检查时异常和运行是异常 + 事务回滚 +隔离级别
    怎么在for循环中新建出不同的list
    mysql中查询某个字段重复的数据
    Arts打卡第7周
    将Excel文件导入到Navicat Premium中日期变为0000-00-00
  • 原文地址:https://www.cnblogs.com/Ronaldo-HD/p/12167613.html
Copyright © 2011-2022 走看看