rf教程

#Robot Framework
##1. 介绍
###简介
Robot Framework是用于验收测试和验收测试驱动开发(ATDD)的通用测试自动化框架。它具有易于使用的表格测试数据语法,并使用关键字驱动的测试方法。它的测试功能可以通过使用Python或Java实现的测试库进行扩展,用户可以使用与创建测试用例相同的语法,从现有的关键字创建新的更高级别的关键字。
Robot Framework是独立于操作系统和应用程序的。核心框架使用Python实现,也可以在Jython(JVM)和IronPython(.NET)上运行。
Robot Framework本身是在Apache License 2.0下发布的开源软件,生态系统中的大多数库和工具也是开源的。该框架最初是在诺基亚网络公司开发的,现在由Robot Framework Foundation赞助。
###特点

  • 使用简单
  • 非常丰富的库
  • 可以像编程一样写测试用例
  • 支持开发系统关键字
    ###模块化 & 架构
    这里写图片描述
    Robot framework本质上是基于Python语言开发的一个框架,它提供了一套独立的语法。它本身只提供基础的一些功能。比如,它自带的 Builtin库中提供的关键字告诉你如何定义变量、数组和字典,打印信息,分支语句和循环等。以及框架本身所提供的 “自动化” 功能,如何组织用例,生成测试报告。
    如果你想实现某一类型的自动化测试,如接口、UI或移动APP的自动化,需要通过第三方Library完成。
    ###支持的 Library
    Robot Framework所支持的库主要分标准库、扩展库和其它。标准库提供基本功能,扩展库提供特定领域的操作。
    因为Robot Framework所支持的测试库非常多,这里例一些常用的。
  • Web自动化测试:SeleniumLibrary,Selenium2Library,Selenium2Library for Java、watir-robot等。
  • Windows GUI测试:AutoItLibrary。
  • 移动测试:Android library、iOS library、AppiumLibrary等。
  • 数据库测试:Database Library (Java)、Database Library (Python)、MongoDB library 等。
  • 文件对比测试:Diff Library。
  • HTTP 测试:HTTP library (livetest)、HTTP library (Requests)等。
    ##2. 环境搭建
    ###所需软件
  • python
  • Robot framework, 自动化测试框架
  • wxPython, python非常有名的一个GUI库
  • Robot framework-ride, 一个图形界面的用于创建、组织、运行测试的软件
  • Robot framework-selenium2library, 可以认为是一套基于web的规范(API),所以,RF、appium等测试工具都可以基于这套API进行页面的定位与操作。
    ###如何启动RIDE
  • 通过文件启动
双击[dirPath]\python\Lib\site-packages\robotide下的__init__.py文件
  • 通过命令启动
cd C:\Python27\Scripts\
python ride.py
  • 将C:\Python27\Scripts\ride.py创建快捷方式,打开ride.py文件之后(以python方式打开),点击“运行(start)”按钮。
    ##3. 最基本流程
    ###3.1 创建项目New Project
    这里写图片描述
    这里写图片描述
    注:选择directory原因是,在directory的项目下可以创建测试套件,如果是tpye为file,则只能创建测试用例,这不利于用例的管理。
    ###3.2 创建测试套件New Suite
    这里写图片描述
    这里写图片描述
    注:选择file原因是,在file的测试套件下可以创建测试用例,如果是type为directory,还得重新再继续建file的测试套件,才能创建测试用例,因为测试用例只能在file类型下创建。
    ###3.3 创建测试用例New Test Case
    这里写图片描述
    这里写图片描述

最终页面显示

这里写图片描述
##4. Ride各个面板说明
###4.1 测试套件工作区说明
####4.1.1 测试套件Edit区
这里写图片描述
(1)加载外部文件
Library:加载测试库,主要是[PYTHON目录]\Lib\site-packages里的测试库。具体操作可查看博文下方的“4.2第三方库”。
Resource:加载资源,主要是你工程相关的资源文件。具体操作可查看博文下方的“5.2.5导入Resource”。
Variables:加载变量文件,不怎么用,可暂时忽略。
(2)定义内部变量
Add Scalar:定义变量。
Add List:定义列表型变量。
Add Dict:
(3)元数据定义
Add Metadata:定义元数据。
(4)settings
一般settings是隐藏的,点击settings按钮,则会显示。
Documentation:文档,每一项都有。可以给当前的对象加入文档说明。
Suite Setup指的是测试套件启动的时候就执行某个关键字。(例:我在Suite Setup设置了Sleep | 5sec,表示等待5秒,要注意关键字的参数要使用 | 分隔)
Suite Teardown指的是测试套件结束的时候就执行某个关键字。
Test Setup指的就是案例启动的时候执行某个关键字。
Test Teardown指的就是案例结束的时候执行某个关键字。
Test Template:测试模版,这是可以指定某个关键字为这个测试套件下所有TestCase的模版,这样所有的TestCase就只需要设置这个关键字的传入参数即可。
Test Timeout:设置每一个测试案例的超时时间,只要超过这个时间就会失败,并停止案例运行。这是防止某些情况导致案例一直卡住不动,也不停止也不失败。
Force Tags:在文件型Suite这里还可以继续给子元素增加Force Tags,但是他不能删除父元素设置的tags。
Default Tags:默认标记,其实和Force Tags没啥区别的。
Arguments:传入参数。
Return Value:返回值。
这里写图片描述
####4.1.2 测试套件Text Edit区
测试套件测试用例文本信息。
这里写图片描述
####4.1.3 测试套件Run区
Execution Profile:选择运行方式,里面有pybot、jybot和custom script。默认pybot即可。
Start:运行案例。若该测试套件下的测试用例前无勾选,则默认执行该测试套件下所有的用例。若测试用例勾选,则执行该测试陶见下勾选的用例。
Stop:停止案例。
Report和Log: 报告和日志,要运行之后才能点击。他们的区别,报告更多是结果上的展示,日志更多是过程的记录,更多使用的还是日志。
Autosave: 自动保存,如果不勾选,在修改了案例之后如果没有保存的话,运行案例时会提示是否保存。勾选则在运行时自动保存了。
Arguments: pybot的参数(或者jybot等)。完整版的参数可以在doc命令行输入pybot.bat --help
Only Run Tests with these Tags: 只运行这些标记的测试案例。在case的setting里可以添加tag。
Skip Tests with these Tags: 跳过这些标记的测试案例。在case的setting里可以添加tag。
这里写图片描述
###4.2 测试用例工作区说明
####4.2.1 测试用例Edit区
(1)settings
Documentation:文档,每一项都有。可以给当前的对象加入文档说明。
Setup指的就是案例启动的时候执行某个关键字。
Teardown指的就是案例结束的时候执行某个关键字。
Tags:标记某个测试用例。在Run区中Only Run Tests with these Tags和Skip Tests with these Tags,会通过这个标志位来识别是否运行或跳过用例。
Timeout:设置每一个测试案例的超时时间,只要超过这个时间就会失败,并停止案例运行。这是防止某些情况导致案例一直卡住不动,也不停止也不失败。
Template:测试模版,这是可以指定某个关键字为这个测试套件下所有TestCase的模版,这样所有的TestCase就只需要设置这个关键字的传入参数即可。
(2)表格区
最重要的部分,编写测试用例。
第一列一般写的是关键词,关键词的来源包括BuiltIn库,第三方导入库,自己编写的导入库。
使用技巧:
通过ctrl+alt+space可以自动带出相关关键字。以及相关用法,里边有对入参的说明。
Ctrl+鼠标悬浮(即鼠标在某个关键字上),可以直接显示关键字的相关用法。
第二三四五列,一般是入参,红色的表示必填的入参。浅灰色表示选填的入参。深灰色表示无需填写。
这里写图片描述
输入sho再同时按住ctrl+alt+space键,则可以自动带出相关关键字,以及选中关键字的用法。
这里写图片描述
####4.2.2 测试用例Text Edit区
同测试套件。
####4.2.3 测试用例Run区
同测试套件。
##5. Robotframework库的介绍
###5.1 BuiltIn内建库
首先先介绍下robotframework的库,通过点击F5快捷键。
这里写图片描述
注:其实关键字就是方法名函数名而已。
###5.2 第三方库
只有内建的库往往还不能满足需求,还可以导入第三方库,如操作页面的Selenium2Library。
第三方库,主要是[PYTHON目录]\Lib\site-packages里的库,一般安装的库会在此目录下。
在测试套件下的工作区的右方,点击Library,在弹出框的name栏输入“Selenium2Library”,点击OK即可。
当工作区的Library那一行黑色显示,说明导入成功(如果显示红色说明导入不成功,可自行百度解决)。
点击F5快捷键查看,可查看多了一个Selenium2Library的库。
这里写图片描述
这里写图片描述
这里写图片描述
###5.3 导入自己编写的库
比如说有些功能想自己编写,比如说如下代码,想要导入实现校验url的功能,文件名为Myimport.py(文件名随意取的,最好是英文的),该文件保存在D:\robotframework\MyLibrary,此时需要将该路径添加到[PYTHON目录]\Lib\site-packages下的后缀名为pth的文件(文件名随意取的,最好是英文的)中。

# -*- coding:utf-8 -*-
"""
自己编写,验证获得一个URL地址的扩展名。
"""
import re

def Matchurl(str0):
    u'''
    验证url的有效性
    '''
    str1=re.split("[.]",str0)
    listt = ['php','html','asp','jsp']
    if str1[-1] in listt:
        return "TRUE"
    else:
        return "FAIL"

if __name__=='__main__':
    str_input='hehe.php'
    print match_url(str_input)

这里写图片描述
然后重启ride,在测试套件的工作区的右方,点击Library,在弹出框的name栏输入“Myimport”,点击OK即可。
点击F5,即可看到导入自己编写的库。
注意,在Myimport.py文件中编写函数描述时,前面要加u,否则F5查看时,会乱码。
注意,在Myimport.py文件中函数命名为MatchUrl和Match_Url,在ride中都会解析为Match Url。
这里写图片描述
##6. 用例编写及执行
###6.1 编写百度搜索的测试案例
这里写图片描述
关于定位元素,可以通过id,name,xpath,link,css,tag等定位。
Id定位:id=kw
Name定位:name=wd
Xpath定位:xpath=//input[@id=‘kw’]
Link定位:link=link_text
Css定位:css=#kw
Tag定位:tag=input
###6.2 分层方法-案例层和流程层分离
如果想改变输入框的输入词,则需要不停的复制case,为了减少冗余,可以做一个简单的分层,把搜索流程剥离成一个关键字,然后再不同的case中调用这个关键字,然后传递不同的参数,以进行不同数据在同一流程下测试。那如何分层呢?
####6.2.1 创建User Keyword
先选中case中所有的脚本,右键选择Extract Keyword。
这里写图片描述
此时左边区域会出现“搜索测试”User Keyword,该User Keyword在测试套件下,一般测试套件不放置User Keyword,建议User Keyword放置在Resource下。
这里写图片描述
####6.2.2 创建Resource
如果存在可以不需要创建。
右键项目Test,点击New Resource。
我这里新建的Resource叫做MyResource.txt。
这里写图片描述
这里写图片描述
####6.2.3 将User Keyword移至MyResource下
这里写图片描述
####6.2.4 User Keyword入参设置
由于搜索数据可变,将其作为入参,变量用${}表示,在settings的Arguments设置,若是有多个入参,那么用|分隔
这里写图片描述
####6.2.5 导入Resource
需要在测试套件中导入Resource,才能使用该Resource下的User Keyword。
点击F5快捷键查看,可查看多了一个MyResource.txt的库。
这里写图片描述
这里写图片描述
####6.2.6 查看测试用例
会发现原来的一串表格代码变成“搜索测试”User Keyword,且还有个必须输入的入参。
这里写图片描述
###6.3 分层方法-流程层和元素层分离
将搜索测试中的内容继续分层,将底层的关键字继续拆分。
这里写图片描述
###6.4 运行测试用例
选中需要运行的用例,点击运行按钮。
这里写图片描述
可以在Run区查看到用例执行情况。
这里写图片描述
点击Report(或者直接复制下方的url),可以查看到测试报告,绿底表示测试通过。
这里写图片描述
点击Log(或者直接复制下方的url)。
这里写图片描述
##7. Iswitch系统邮箱管理模块测试
这里写图片描述
这里写图片描述
##8. 资源

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值