robotframework学习笔记

本文档详细介绍了Robotframework的安装、使用及关键概念,包括设置环境、安装库、使用IntelliBot插件、测试用例结构、变量、关键字、循环、条件判断等。通过实例演示了RF的基本操作,如导入库、定义变量、使用用户关键字、测试用例的初始化与清除,并讲解了如何通过标签选择执行测试用例。此外,还提到了RF的测试数据文件结构、用户关键字定义、资源文件和变量的使用,以及如何处理循环和条件判断。
摘要由CSDN通过智能技术生成

robotframework学习笔记

确保 Python 3.6.2 安装成功

安装 如下 RF使用中需要的工具和库

  1. RF
    在两个Python中安装 robotframework
    执行命令 pip install robotframework

  2. seleniumlibrary
    在两个Python中安装 seleniumlibrary
    执行命令 pip install --upgrade robotframework-seleniumlibrary

3.pycharm安装插件

在Pycharm中,点击菜单 file - settings - plugins
在弹出对话框中 点击下方 按键 Browse Repository
在新对话框中, 搜索栏里面输入 robot

安装 下面3个插件

IntelliBot
IntelliBot @SeleniumLibrary Patched
Run Robot framework file

下载 IntelliBot插件
https://github.com/jcyrss/songqin-testdev/raw/master/others/softwares/intellibot.jar
在Pycharm中,点击菜单 file - settings - plugins
在弹出对话框中 点击下方 按键install plugin from disk
选择下载的jar文件

  1. 如果pycharm高亮显示RF文件颜色不好看,可以这样
    pycharm 可以点击菜单 File -> Import Settings -> 导入下面的pycharm 配置文件
    https://github.com/jcyrss/songqin-testdev/raw/master/rf/files/settings.jar

根据视频,将如下 自动化用例 拷贝到 一个 名为 baidu.robot的文件中,然后用 robot命令行 运行一下

*** Settings ***
Library SeleniumLibrary

*** Test Cases ***
百度搜索松勤
Open Browser http://www.baidu.com chrome
Set Selenium Implicit Wait 5
Input Text id=kw 松勤\n
${firstRet}= Get Text id=1
Should Contain ${firstRet} 松勤网
pip install --upgrade robotframework-seleniumlibrary
1 套件和用例的结构
把功能相关的测试用例组合起来放在一起,成为某个测试套件,测试套件相当于一个目录,还可以其他测试套件,可以放测试套件文件,也叫测试数据文件(test data file),可以有多个用例,用例只会存在测试套件文件里,不会存在目录里

只要以号开头,就是一个表,robotframework可以识别,但是插件无法识别,所以还是需要前后三个

测试用例名称一定到顶在最前面,空格两个以上 意思就是不同列,第二列

RF支持四种表:分别为Settings, Variables, Test Cases, Keywords
表名必须出现在第一单元格中,表名大小写不敏感,一般 首写字母大写
Settings表,是这个测试套件的全局配置表,比如,说明这个测试套件要试用的测试库、资源文件,测试套件的环境初始化(setup)和清除(teardown),该套件内的标签等等,导入库是最常用的

在用例内导入的库只在用例里生效,放在settings表中,则不需要每个用例中声明

Variables表,就是存放这个测试套件的全局变量表
Keywords表,是用来定义这个测试套件的用户关键字的

Test Cases表,是用来定义这个测试套件的测试用例的,大概可以分为两个部分:
配置部分
主体部分

用例配置部分:
[Documentation] 指该用例的文字说明
[Tags] 指该用例的标签
[Setup] , [Teardown] 指该用例的初始化和清除操作
[Template] 声明该用例是模板关键字驱动的,本用例只包含测试数据
[Timeout] 设置用例超时时间

用例的主体部分主要是用关键字组成的
关键字的来源:测试库(有的是自己开发的,有的robotfroamework内置的,有的是第三方开发的)、测试文件(用户关键词,用robotframework自己定义的,非Python或者java开发的)、用例所在文件的关键字表

关键字的使用
RF的常用关键字在RF标准库中() RF官方文档:http://robotfroamework.org

standard #标准库 装好robotwork就自带的
builtin #内置库,最常用的,不需要import
external #处理对话框的
collections #处理列表或者字典类的

关键字set variable:定义变量,通常是字符串,用法:
${var} set variable hello 或者
${var}= set variable hello
还可以赋值给多个(三个、四个、五个等等)变量:
${var1} ${var2} set variable hello world

v a r s e t v a r i a b l e 5 这 时 候 {var} set variable 5 这时候 varsetvariable5{var}是一个字符串

关键字和参数should be equal(first,second,msg=None,values=True,ignore_case=False)
first,second 为必填参数,是作为两个python对象即字符串来进行比较的
msg=None 默认可以不填,如果没有该参数,出错的时候会给提示:first!=second

*** Test Cases ***
搜索松勤
${var} set variable hello
should be equal ${var} helle

打印结果:
测试1 | FAIL |
hello != helle

Rf2 | FAIL |
1 critical test, 0 passed, 1 failed
1 test total, 0 passed, 1 failed

如果添加了该参数,除了会给出提示first!=second,前面还会给出自己写的参数内容,例如:
*** Test Cases ***
测试1
${var} set variable hello
should be equal ${var} helle 变量不是hello

打印结果:
测试1 | FAIL |
变量不是hello: hello != helle

Rf2 | FAIL |
1 critical test, 0 passed, 1 failed
1 test total, 0 passed, 1 failed

如果想让first,second 作为数字进行比较,可以用关键字should be equal as integers,例如:
*** Test Cases ***
测试1
should be equal as integers 10 010
运行结果:pass

log to console #只打印在终端窗口
log:打印在日志里
convert to integer # 将字符串转换为浮点数,例如:
*** Test Cases ***
测试1
${num} convert to integer 32
log to console ${num}
#定义一个变量时默认是字符串,通过convert to integer 将其转变为浮点数了

convert to number #将字符串转换为整数,例如:
*** Test Cases ***
测试1
${num} convert to number 32
log to console ${num}
#定义一个变量时默认是字符串,通过convert to number 将其转变为整数了

如果不需要定义变量,而是在某一个关键字里使用一个数字作为其参数,可以这样使用,因为出现的不是变量就会被当做字符串:

log to console ${32} #这时候传给log to console的就是数字32

定义一个空字符串的方法:
*** Test Cases ***
测试1
${num} set variable ${empty}}
log to console ${num}
定义一个数字变量
测试1
${var} set variable ${89}
log to console ${var}

should be equal 10 010 #字符串对象比较,结果是false
should be equal as integers 10 010 #转换成数字对象比较,结果是True

注意:should be true 参数是一个python表达式,然后rf会把这个表达式传递给python解释器是解释执行,解释这个表达式是够正确,例如:
*** Test Cases ***
测试1
s t r s e t v a r i a b l e h e l l o s h o u l d b e t r u e ′ {str} set variable hello should be true ' strsetvariablehelloshouldbetrue{str}’ ‘hello’

s t r ′ 如 果 不 加 引 号 , 就 会 被 当 做 是 一 个 变 量 , 如 果 {str}' 如果不加引号,就会被当做是一个变量,如果 str{str}’ 不引号,后面的hello也不加引号的话该hello就会被当做变量,运行的时候会显示fail,提示该hello没有定义

还可以这么写:
*** Test Cases ***
测试1
${str} set variable hello
should be true $str hello

s t r 就 是 上 面 str 就是上面 str{str}定义的变量本身,而不是经由Python转换后的变量hello

如果用should be equal,就是这样:
*** Test Cases ***
测试1
${str} set variable hello
should be equal ${str} hello

通常,关键字是由测试库提供的,测试库就是python模块文件&

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值