我是靠谱客的博主 内向酒窝,最近开发中收集的这篇文章主要介绍RF框架----基础,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1.RF框架

   全称robot framework,一个基于python开发的,自动化测试框架,这个框架可以做:web自动化,接口自动化,APP自动化。

github官网

1).安装python   检查python环境 python -V或 pip -V   

2).安装rf(dos命令里面输入)  pip install robotframework  安装图形界面库  pip install robotframework-ride 

3).启动RF,安装完成后有图标直接双击运行,找到ride.py运行。

4).RF项目

        项目文件夹(project )->测试集(test suite)->测试用例(test case)

5).  RF功能详解

   (1).设置区

        

Doucument添加用例说明        
Suite Setup执行测试套件的前置操作,如初始化数据等
Suite TearDown执行测试套件结束后的操作,如恢复数据等
Setup 执行测试用例得前置操作
Test TearDown执行用例结束后的操作
Force Tags用例标签,suite中的标签会给该测试套件下的所有Test case增加Force Tags
Timeout设置每一个测试案例的超时时间,只要超过这个时间就会失败,并停止案例运行。防止某些情况导致案例一直卡住不动,也不停止也不失败。
Template测试模板,可以指定某个关键字为这个测试套件下所有testcase的模板,这样所有的testcase就只需要设置这个关键字的传入参数即可。(TestCase中使用)
Arguments传入参数(New User Keyword使用)
Return Value返回值(New User Keyword使用)

引用区:

Add Library加载测试库,主要是【python目录】site-packages里的测试库
Add Resource加载资源,主要是你工程相关的资源文件。
Add Variables加载变量文件

参数区:

Add Scalar定义变量
Add List定义列表型变量
Add Dict定义字典

数据区:

Add Metadata定义元数据。(作用是在report和log里面显示定义好的内容,格式和document一样)

2、RF关键字驱动

        1).什么是关键字? 有特殊含义的单词

        2).什么是关键字驱动?关键字驱动脚本是比较复杂的数据驱动技术的逻辑扩展,封装了各种基本操作,每个操作由相应的函数实现,开发脚本时不需要关心这些基础函数,而是用一系列关键字指定执行的任务。

用一个关键字完成某一个功能,以期望解决我们的问题。    

        3)、RF基础数据类型

(1)、变量     是计算机语言中能存储计算结果或能表示抽象概念。变量可以通过变量名访问。

      赋值   ${x1}=set variable 123 等价于 设x1=123。  运算: ${x1}=evaluate ${x1}+${x2}

        应用:获取网页的文本,然后断言。

(2)、数组     是有序的元素序列。用于区分数组的各个元素的数字编号称为下标。下标是从0开始。

        @{list}= create list 1 2        应用:调用接口传参数的时候,可以用数组。

(3)、字典   数据字典:可以根据键,得到值;也可以更新键的值。

         &{map}=create dictionary aa=AA bb=BB              $(map['aa"])           

          应用:Json格式解析之后就是字典。

4)、分支和循环

        (1)、条件运算  数值比较:大于:${x}>${y}  等于:${x}==${y}  小于:${x}<${y} 

                                      字符串比较 等于:"aa"=="bb"    包含: should contain

        (2)、选择结构    IF语句  Run keyword if    如果条件为True,则执行关键字。

                                        IF...ElSE    Run keyword if 

                                                           ElSE IF

                                                           ElSE IF

5)、RF两种数据结构(需要使用到的库:Collections)

          线性结构  数组 @{list}:1 2 3 4 5   添加元素: Append To List 

          键值对结构   字典 &{map}:a=A b=B c=C  添加键值对到字典:Set To Dictionary

6)、数据结构应用

            for 循环  循环就是一直重复操作

                            :FOR ${i} IN 1 2 3 4 5

                             :FOR ${i} IN RANGE 1 5

                              Exit for loop 

               数据结构遍历

                   数组遍历 :FOR ${i} in @{list}     字典遍历: @{keys} =   Get Dictionary Keys  ${map} 然后遍历key  

7)、字符串处理和异常

(1)、字符串的拼接

                                变量      #临时拼接: aaa ${x} bbb  #变量拼接:${str3}=  Catenate   SEPARATOR=    ${str1}    ${str2}

  (2)、字符串包含 

        判断s1里面包含s2    '${s1}'._contains_('${s2}')

RF常用类库
1.标准库:不需要安装,直接用,RF自带。
BUitini(测试库) Collections(集和库) Datatime(时间库) ScreenShot(截屏库)
标准库的位置:C://python373libsit-pakagerobotlibrarys
2、扩展库:需要安装后才能使用
Web自动化测试:SeleniumLibrary、Selenium2Library、Selenium2Library for java等
API接口自动化:RequestsLibrary
APP自动化测试:AppiumLibrary
扩展库的位置:C://python373libsit-pakages

准备UI自动化测试环境

1:通过pip安装扩展库:pip install robotframework-seleniumlibrary

2:下载谷歌浏览器

3:下载谷歌浏览器驱动(注意:谷歌浏览器的驱动必须和谷歌浏览器兼容)把chromdedriver.exe放到python目录下。

4:在RF的测试套件里面导入SeleniumLibrary

元素定位

id 、name、link_test、partial_link_text、xpanth、css、class_name、tag_name

前提:元素必须唯一

xpath:

        1.通过绝对路径定位:这种方式几乎不用

        2.通过相对路径定位://form/span/input

        3.通过元素属性定位://input[@autocomplete="off"]                 //input[@autocomplete="off" and @class="s_ipt"]

        4.通过部分属性定位://input[starts-with(@autocomplete,"of")]                       //input[contains(@autocomplete,"of")]     

        5.通过文本定位://a[text()="新闻"]

css:

        1.通过绝对路径定位:这种方式几乎不用

        2.通过ID或者class定位:#ID  .class

        3.通过元素属性定位:input[autocomplete="off"]       input[autocomplete="off" a][ class="s_ipt"]

        4.通过部分属性定位:input[autocomplete^="of"]以...开始     input[autocomplete$="of"] 以....结束    input[autocomplete*="of"] 包含....

        5.通过子元素定位:div#s-top-left a:nth-child(3)

项目的三层架构

1.三层架构指的是什么?

(1)页面元素层 (2)业务逻辑层(3)测试用例层    业务逻辑层调用页面元素层,测试用例层调用业务逻辑层

2、为什么需要分层,分层的意义在哪里?

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

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

pybot -d  测试报告的路径  测试用例的路径

Jenkins  : Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成。

最后

以上就是内向酒窝为你收集整理的RF框架----基础的全部内容,希望文章能够帮你解决RF框架----基础所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(85)

评论列表共有 0 条评论

立即
投稿
返回
顶部