RF之条件判断、初始化清除-4
条件判断:
rf中用run keyword if 关键字做条件判断,以此来达到类似在python中if ...else...条件判断的功能。
注意:ELSE IF一定都是大写的,不然运行后会报错。
RF中解决太长的问题:可以用下一行 前面加三个省略号,在测试用例中,下一行的省略号前面必须留一个以上的空单元格。
*** Test Cases ***
条件判断1
[Documentation] run keyword if 需要注意的是:语法严格 in 左右只能一个空格 多了会报错
${status}= set variable abcd
run keyword if 'bc' in ${status} log to console bc包含在abcd里面
条件判断2
[Documentation] if ...else... 分支
${status}= set variable abcde
run keyword if 'cd' in ${status} log to console cd包含在abcde里面
... ELSE log to console cd没有包含在abcde里面
条件判断3
[Documentation] if ...else if...else... 分支
${'status'}= set variable rrrr
run keyword if '${status}' == 'tttt' log to console 1
... ELSE IF '${status}' == 'rrrr' log to console 2
... ELSE log to console 3
else分支:在老版本的RF中,是没有else分支的,只能通过run keyword unless来达到目的。
run keyword unless和上面的run keyword if没有任何关系,可单独使用。
条件判断4
[Documentation] else分支 run keyword if unless
${html}= set variable 2019-12-02 UTC
run keyword if '2019' in '$html and 'UTC' in $html
... log to console 是2019年的时间 UTC
run keyword if unless '2017' in '$html and 'UTC' in $html
... log to console 不是2019年的时间 UTC
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
循环语句:
RF中循环只有for循环
Exit For Loop关键字实现break功能 ------- 完全结束循环
用Continue For Loop实现continue 功能 -------- 终止本次循环
也可以使用等价的关键字 Continue For Loop If Exit For Loop If
*** Test Cases ***
循环里的判断1
${weight}= get value from user 请输入你的体重 60
log to console 体重为${weight}
run keyword if int($weight)>60 log to console 太重了
... ELSE log to console 太轻了
循环里的判断2
:for ${one} in range 99999
\ ${weight}= get value from user 请输入你的体重 60
\ run keyword if $weight=='over' Exit For Loop
\ run keyword if $weight=='cont' continue for loop
\ run keyword if int($weight)>60 log to console 太重了
\ ... ELSE log to console 太轻了
为了简洁简化,还可以这样写:
exit for loop if $weight=='over'
continue for loop if $weight=='cont'
evaluate的使用:
evaluate关键字的参数为python的表达式,有的表达式需要引入模块,有的不需要模块默认不引入模块
*** Test Cases ***
${var1}= create list hello,world
${var2}= evaluate 'hello world'[:4]
${var3}= evaluate {'hello', 'world'}
${var4}= evaluate ['hello']*10
${var5}= evaluate math.fool(-2) modules=math
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
初始化和清除:
是测试一个用例之前要做的事情(setup)和测试后要做的事情(teardown)。
在RF中,每个测试套件目录、测试套件文件、测试用例都可以有自己的setup的teardown。
所有的setup和teardown操作都只能由一个关键字语句构成。
初始化和清除写在测试用例表的配置项中:
*** Test Cases ***
test1
[Documentation] 初始化和清除
[Setup] log to console *******前置********
log to console 测试用例1主体部分
[Teardown] log to console *******后置********
test2
[Documentation] 初始化和清除
log to console 测试用例2主体部分
测试套件文件的setup、teardown:
写在测试套件文件的settings表中
两种类型: - Suite setup/teardown 进入和退出这个suite执行用例前后必须执行且只分别执行一次
- Test setup/teardown 如果suite内的用例本身没有setup/teardown, 才执行
*** Settings ***
Suite Setup log to console -----测试套件的前置------
Suite Teardown log to console -------测试套件的后置--------
Test Setup log to console -------前置--------
Test Testdown log to console --------后置--------
测试套件目录的setup、teardown:
在其目录下的初始化文件__int__.txt 或者__init__.robot里的settings表中
两种类型: - Suite setup/teardown 进入和退出suite执行用例前后必须执行且分别执行一次
- Test setup/teardown 如果suite内的用例或者子套件 本身没有setup/teardown ,才执行
*** Settings ***
Suite Setup log to console -------测试套件的前置----------
Suite Teardown log to console ---------测试套件的后置----------
Test Setup log to console -----------前置----------
Test Teardown log to console ---------后置----------
目录下的文件执行方法:
可以在终端,如:robot suite1\st1.robot
robot --suite st1 suite1
如果只想执行文件中的某个具体的用例,怎么执行?
robot --test 测试1 suite1
RF之条件判断、初始化清除-4的更多相关文章
- rf中的条件判断与循环
条件判断 run keyword if condition name *args ... ELSE IF conditon name *args ...ELSE name *args conditio ...
- Linux centosVMware 自动化运维Ansible介绍、Ansible安装、远程执行命令、拷贝文件或者目录、远程执行脚本、管理任务计划、安装rpm包/管理服务、 playbook的使用、 playbook中的循环、 playbook中的条件判断、 playbook中的handlers、playbook实战-nginx安装、管理配置文件
一.Ansible介绍 不需要安装客户端,通过sshd去通信 基于模块工作,模块可以由任何语言开发 不仅支持命令行使用模块,也支持编写yaml格式的playbook,易于编写和阅读 安装十分简单,ce ...
- shell条件判断与流程控制
一 条件判断式语句 1.按文件类型进行判断 测试类型 作用 -b 文件 判断文件是否存在,并且是否为块设备文件(是块设备文件为真) -c 文件 判断文件是否存在,并且是否为字符设备文件(是字符设备设备 ...
- Bash条件判断
bash编程之:条件判断,判定后续操作的前提条件是否满足, bash编程之: 条件判断常用类型: 整数测试:比较两个整数谁大谁小,是否相等: 二元测试: num1 操作符 num2 -eq: 等于 - ...
- bash脚本编程之二 条件判断and 逻辑运算
1.条件测试结构 1) if/then结构: 判断命令列表的退出码是否为0,0为成功. 如果if和then在条件判断的同一行上的话, 必须使用分号来结束if表达式: if和then都是关键字. 关键字 ...
- [Shell]条件判断与流程控制:if, case, for, while, until
---------------------------------------------------------------------------------------------------- ...
- Linuxshell脚本之if条件判断
IF条件判断 .基本语法: if [ command ]; then 符合该条件执行的语句 fi .扩展语法: if [ command ];then 符合该条件执行的语句 elif [ comman ...
- 老李分享:Robotium编写测试用例如何模拟Junit4的BeforeClass和AfterClass方法1 - 条件判断法
老李分享:Robotium编写测试用例如何模拟Junit4的BeforeClass和AfterClass方法1 - 条件判断法 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜 ...
- [译] NSScanner:一个陌生的条件判断利器!
NSScanner官方文档 NSScanner类是一个类簇的抽象父类,该类簇为一个从NSString对象扫描值的对象提供了程序接口. NSScanner对象把NSString 对象的的字符解释和转化成 ...
随机推荐
- P1894 [USACO4.2]完美的牛栏The Perfect Stall
题目描述 农夫约翰上个星期刚刚建好了他的新牛棚,他使用了最新的挤奶技术.不幸的是,由于工程问题,每个牛栏都不一样.第一个星期,农夫约翰随便地让奶牛们进入牛栏,但是问题很快地显露出来:每头奶牛都只愿意在 ...
- Oracle自动备份(多个库),压缩打包,删除原文件
1.创建一个database_Backup.bat文件,用记事本打开 内容参考如下:(楼主这里自动备份了四个数据库) set "now=%date:~0,4%%date:~5,2%%date ...
- vgg16中的函数
1.inspect.getfile(文件名)文件名一般与类名相同,返回文件目录包含文件名 import inspect class os测试: def __init__(self): path = i ...
- 【JVM】虚拟机字节码执行引擎
概念模型上,典型的帧栈结构如下(栈是线程私有的,也就是每个线程都会有自己的栈). 典型的帧栈结构 局部变量表 存放方法参数和方法内部定义的局部变量.在编译阶段, ...
- 小福bbs-冲刺总结
[小福bbs-冲刺总结] 这个作业属于哪个课程 班级链接 这个作业要求在哪里 作业要求的链接 团队名称 小福bbs 这个作业的目标 冲刺总结 作业的正文 小福bbs-冲刺总结 其他参考文献 面向百度和 ...
- QTextToSpeech Win7奔溃
在linux下,它是调用speech-dispatcher.在其它不同的平台上,调用各自平台的TTS引擎.所以在使用的时候,要确保本地的TTS引擎是可用的. 本地TTS引擎不可用可能会在声明QText ...
- * resolve_conffiles: Existing conffile /etc/config/dhcp is different from the conffile in the new package. The new conffile will be placed at /etc/config/dhcp-opkg.
* resolve_conffiles: Existing conffile /etc/config/dhcp is different from the conffile in the new pa ...
- BAT 电脑名 用户名
@echo offecho 当前盘符:%~d0echo 当前登陆用户:%username%echo 当前盘符和路径:%~dp0echo 当前盘符和路径的短文件名格式:%~sdp0echo 当前批处理全 ...
- 优化Unity游戏项目的脚本(上)
本文将由捷克独立游戏工作室Lonely Vertex的开发工程师Ondřej Kofroň,分享C#脚本的一系列优化方法,并提供改进Unity游戏性能的最佳实践. 在开发游戏时,我们遇到了游戏过程中偶 ...
- JVM 类加载器的双亲委托机制
1.类加载器的层次结构 在双亲委托机制中,各个加载器按照父子关系形成了树形结构(逻辑意义),除了根加载器之外,其余的类加载器都有且只有一个父加载器. public class MyTest13 { p ...