• RF自动化测试


    1.自动化分层:UI层实现界面自动化,Service层实现接口自动化,Unit层实现单元测试.
    2.UI自动化测试常见的工具有:QTP,AutoIt,Selenium.Selenium是做Web测试最全面的工具支持浏览器全面,又模拟在浏览器中的操作.
    3.单元测试全覆盖,接口测试覆盖大部分流程,界面自动化保证主流程即可
    4.RF是通用的测试框架:采用表格语法易使用;可使用关键字驱动,数据驱动和行为驱动;可利用现有关键字组合新关键字;可用Python或Java扩展;
    5.安装Python27,Setuptools,RF,wxPython,RF-RIDE
    6.New Project-->New Test Suite-->New Test Case
    7.Report主要是概括性的报告,总体案例的执行情况.Log则是更为详细的案例步骤报告.
    8.Save保存当前焦点所在文件,Save All保存全部
    9.F5:Search Keywords
    10.Library加载测试库,默认PythonLibsite-packages目录下的文件;Resource加载资源,主要是工程相关的资源文件;Variables加载变量文件;Add Scalar定义变量;Add List定义列表型变量.
    11.Suite Setup测试套件的初始化文件,Suite Teardown测试套件的收尾文件;Test Setup测试用例初始化,Test Teardown测试用例收尾
    12.Project和Suite:二者都可建User Keyword, Scalar, List Variable.Project可建Suite, Directory, Resource;Suite可建Test Case
    13.Suite前面多*表示有修改尚未保存
    14.Project和最顶层的Test Suite是相通的,可是File也可是Directory.目录型的Test Suite可包含File型的Test Suite或嵌套Directory型的Test Suite.但Test Case只能在File Test Suite下
    15.通常Test Suite里添加Resource, Resource中添加Library
    16.Import中的Library是红色的说明导入失败,黑色表示导入成功
    17.RF内置库在PythonLibsite-packages obotlibraries目录中
    18.Resource主要用来存放用户关键字,Resource下添加User Keyword
    19.External Resource主要指还在Project管辖范围的Resource文件
    20.变量:${Var}单个变量,@{listVar}List型变量,&{dictVar}是RF2.9的Dictionary变量
    21.Set Global Variable:设定全局变量,该变量在所有的Test Suite和Test Case中都有效;Set Suite Variable:设定File Suite级变量,该变量只在当前的File Suite内有效;Set Test Variable:设定Case级变量,只在当前Case有效
    22.环境变量的标识符为%, eg: log %{PATH},RF中只能使用环境变量,不能修改
    23.特殊字符串常量:${/},${:},${EMPTY},,${False},${None},${null},${SPACE},${True}
    24.RF中的变量都是字符串型的,字符串拼接不需要用+连接,abcd${var}efghabcdABCDefgh
    25.创建Scalar变量:${var} Set Variable 'ABCD';创建List变量:@{listVar} Create List 1 2 3
    26.Run Keyword If '${var}'
    'ABCD' log 'HAHAHAHA'
    27.变量支持索引和截取:${var[2]}或${var[0:2]}
    28.Evaluate将后面的表达式放在python中运行
    29.List型变量的获取:@{listVar}[index]或${listVar[index]}
    30.对象变量:假设${return}是Request库中测试接口返回的对象,对象状态就是${return.STATUS},对象内容就是${return.CONTENT}
    31分支:
    Run Keyword If con1 do action1
    ... ELSE IF con2 do action2(...是必须的)
    ... ELSE do actionN
    32.RF标准库:
    Builtin,Collections(处理Python字典和列表), OperatingSystem(操作系统相关), String(字符串处理), XML, DateTime(日期时间转换), Telnet, Process, Screenshot, Remote(远程库)
    常用第三方库:
    Selenium2Library, HTTPLibrary, SSHLibrary, FTPLibrary, requestLibrary, DatabaseLibrary, cx_Oracle, PyMysql, JSONLibrary
    33.打印日志
    log ${var}
    log many @{listVar}

    python3安装RF:
    1.下载并安装python3.7,勾选添加安装路径到环境变量(输入python --version,显示Python 3.7.3)
    2.安装RF,cmd窗口输入:pip install robotframework(显示Successfully installed robotframework-3.1.2)
    3.安装wxpython,cmd窗口输入:pip install wxpython(显示Successfully installed numpy-1.16.4 pillow-6.0.0 wxpython-4.0.6)
    4.安装pygments(代码高亮库),cmd窗口输入:pip install pygments(显示Successfully installed pygments-2.4.2)
    5.安装pywin32(RIDE依赖的库),cmd窗口输入:pip install pywin32(显示Successfully installed pywin32-224)
    6.安装Pypubsub(RIDE依赖的库),cmd窗口输入:pip install Pypubsub(显示Successfully installed Pypubsub-4.0.3)
    7.安装RIDE,cmd窗口输入:pip install https://github.com/HelioGuilherme66/RIDE/archive/master.zip(显示Successfully installed robotframework-ride-1.7.4b1.dev1)

    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 的情况下运行和管理应用程序)

  • 相关阅读:
    支付宝接口相关整理
    诡异的 "password取回" 邮件问题
    剑指 offer代码解析——面试题39推断平衡二叉树
    女程序猿做了个梦,各路大神惊现神级评论!
    Mac: Android studio+VirtualBox+Genymotion
    lua 中pairs 和 ipairs差别
    機器學習基石 (Machine Learning Foundations) 作业1 Q15-17的C++实现
    怎样获取HTML5视频的持续时间
    Android之本地相冊图片选取和拍照以及图片剪辑
    19_Android中图片处理原理篇,关于人脸识别站点,图片载入到内存,图片缩放,图片翻转倒置,网上撕衣服游戏案例编写
  • 原文地址:https://www.cnblogs.com/AiYS/p/10780788.html
Copyright © 2020-2023  润新知