今天和大家从robotframework一些基础语法入手,打好基础才能成为大神
一:变量和常量
1.变量
变量标识符:robotframework中每个变量都采用“变量标识符($,@,&,%)+大括号{}+变量名”来表示,其中变量名可以用任何字符来表示,如英文字符,特殊字符,中文字符。
变量的声明:在robotframework变量前不用单独声明,只要初始化复制就行,和python一样
变量分类:常见的有三种类型,分别为:Scalar标量类型、List列表类型和Dictionary字典类型
变量作用域:在默认情况下,变量只有在当前作用域内有效,但是通过关键字Set Global Variable、Set Suit Variable和Set Test Variable来改变变量的作用域
建议:全局变量全用大写字母,局部变量全用小写字符
2.常量
robotframework中常量一般分为:环境常量、数值常量、特殊字符常量、系统保留常量,其中环境常量用%来表示,其他的用$来表示
环境常量:语法=%{ENV_VAR_NAME},指向的值必须是字符串类型的
数值常量:数值常量常用来创建整型和浮点型数据,当一个关键字需要真实的数字而非对应的数字字符串作为参数时,就可以定义为数值常量。
例如:${20}、${3.14},这两个就是数值常量
特殊字符常量:主要有${/}、${:}、${EMPTY}、${SPACE}、${False}、${True}、${None}、${null},特殊字符常量不区分大小写,如:${True}和${true}是一样的,其中${EMPTY}代表=创建空字符串,${SPACE}代表=创建空格变量,另外@{EMPTY}代表空列表变量,&{EMPTY}代表空字典变量。
3.变量作用域
一般情况下,在robotframework中变量定义的位置决定了该变量的初始作用域,通常变量的作用域分为以下几种情况:
一个Test Case中的变量,作用域在Test Case内部
一个User Keyword中的变量,作用域在这个User Keyword内部
一个文件Test Suite中的变量,作用域在Test Suite内部
一个目录型Test Suite里的变量,作用域在这个目录内,一般在目录下新增变量是没有多大意义的。
除此之外,上面也提到过常用的作用域有三种:
Set Global Variable:设置全局变量
Set Suit Variable:设定Test Suite级变量
Set Test Variable:设定Test Case级变量
3.robotframework内置变量
robotframework中提供了一些可以直接使用的内置变量,包括:操作系统相关的变量和一些自动变量
操作系统相关变量:
变量 | 用途 |
${CURDIR} | 当前测试文件所在目录的绝对路径,该变量是大小写敏感的 |
${TEMPDIR} | 获取当前操作系统临时目录的绝对路径,该变量不区分大小写 |
${EXECDIR} | 获取测试执行开始的绝对路径,该变量不区分大小写 |
${/} | 操作系统文件路径的分隔符,在类UNLX系统中为/,在window中则为\ |
${:} | 操作系统路径元素分隔符,在类UNLX系统中为:,在window中则为; |
${\n} | 操作系统行分隔符,在类UNLX系统中为\n,在window中则为\r\n |
自动变量:
变量 | 说明 | 适用范围 |
${TEST NAME} | 当前测试用例的名称 | 测试用例 |
${TEST STATUS} | 当前测试用例的执行状态,PASS或FAIL | 测试用例 Teardown |
${TEST MESSAGE} | 当前测试用例可能的错误信息 | 测试用例 Teardown |
${OUTPUT FILE} | 当前输出文件的绝对路径 | 所有地方 |
${LOG FILE} | 当前日志文件的绝对路径,如果未NONE,则不创建log.html文件 | 所有地方 |
${DEBUG FILE} | 调试文件的绝对路径,如果未None,则不创建debug.html | 所有地方 |
4.标量变量的定义和使用
标量(Scalar)变量指用${}标识的变量,类似shell中的变量引用,也类似jmeter中变量
在name中输入变量名称,在value输入变量值,变量定义好后,直接在测试用例中使用${变量名}进行引用,另外,在Edit工作区,单击Add Scalar来添加变量
关于定义变量,定义列表以及字典可以见:robotframework从入门到放弃一