RobotFramework框架基本功能语法
关键字
Log
Log关键字相当于Python的print函数;
*** Test Cases ***test_oneLog hello world
发现在pycharm控制台中没有打印hello world,调试的时候不方便;
解决方法一:
设置Log级别为Warn
*** Test Cases ***test_oneLog hello world level=Warn
解决方法二:
使用Log To Console关键字
*** Test Cases ***test_oneLog To Console hello world定义变量
普通变量
Set Variable
*** Test Cases ***test_one${name} Set Variable 张三Log To Console ${name}相当于python代码
name = "张三"
print(name)查看关键字的使用说明
鼠标悬停到这个关键字(方式1)

点击进去查看源码的注释说明(方式2)

列表变量
定义列表变量
*** Test Cases ***test_one${name_list} Create List 张三 李四 王五Log To Console ${name_list}
相当于python代码
name_list = ['张三', '李四', '王五']
print(name_list)遍历列表1
*** Test Cases ***test_one${name_list} Create List 张三 李四 王五FOR ${name} IN @{name_list}Log To Console ${name}END或者使用@
*** Test Cases ***test_one@{name_list} Create List 张三 李四 王五FOR ${name} IN @{name_list}Log To Console ${name}END
相当于python代码
name_list = ['张三', '李四', '王五']
for name in name_list:print(name)
@{name_list} 中 @ 符号的作用
1. 变量类型标识
@ 符号用于标识列表变量(List Variable)
区分不同类型的变量:$ 用于标量,@ 用于列表,& 用于字典2. 列表展开语法
@{name_list} 会将 name_list 列表中的元素逐个展开
在循环中使用时,FOR ${name} IN @{name_list} 会依次取出列表中的每个元素3. 使用场景对比
# 不使用 @ 符号 - 获取整个列表对象
${list_var} Create List 张三 李四 王五
Log ${list_var} # 输出: ['张三', '李四', '王五']# 使用 @ 符号 - 展开列表元素
FOR ${name} IN @{name_list}Log ${name} # 分别输出: 张三, 李四, 王五
END
4. 关键区别
${name_list} - 引用整个列表对象
@{name_list} - 展开列表中的各个元素,用于迭代操作遍历列表2
*** Test Cases ***test_one${name_list} Create List 张三 李四 王五FOR ${index} ${name} IN ENUMERATE @{name_list}Log To Console 索引:${index} 姓名:${name}END相当于python代码
name_list = ['张三', '李四', '王五']
for index, name in enumerate(name_list):print(index,name)字典变量
定义字典变量
*** Test Cases ***test_one${person_dic} Create Dictionary name=张三 age=18Log To Console ${person_dic}
或者使用&符合,打印用Log Many
*** Test Cases ***test_one&{person_dic} Create Dictionary name=张三 age=18Log Many &{person_dic}相当于python代码
person_dic = {"name": "张三", "age": 18}
print(person_dic)
获取字典所有的key
*** Settings ***
Library Collections
*** Test Cases ***test_one${person_dic} Create Dictionary name=张三 age=18#获取字典所有的key${keys} Get Dictionary Keys ${person_dic}Log To Console ${keys}打印:['age', 'name']
相当于python代码
person_dic = {"name": "张三", "age": 18}
keys_list = list(person_dic.keys())
print(keys_list) # ['name', 'age']
获取字典所有的value
*** Settings ***
Library Collections
*** Test Cases ***test_one${person_dic} Create Dictionary name=张三 age=18#获取字典所有的key${values} Get Dictionary Values ${person_dic}Log To Console ${values}打印:['18', '张三']
相当于python代码
person_dic = {"name": "张三", "age": 18}
values_list = list(person_dic.values())
print(values_list) # ['张三', 18]
获取字典的items(键值对)
*** Settings ***
Library Collections
*** Test Cases ***test_one${person_dic} Create Dictionary name=张三 age=18# 获取字典的items(键值对)${items} Get Dictionary Items ${person_dic}Log To Console ${items}根据key获取value
*** Settings ***
Library Collections
*** Test Cases ***test_one${person_dic} Create Dictionary name=张三 age=18Log To Console ${person_dic}[name]相当于python代码
person_dic = {"name": "张三", "age": 18}
name = person_dic.get("name")
print(name)遍历字典的键值对
注意遍历使使用的是&符号
*** Settings ***
Library Collections
*** Test Cases ***test_one${person_dic} Create Dictionary name=张三 age=18# 遍历字典的键值对FOR ${key} ${value} IN &{person_dic}Log To Console ${key} = ${value}END
相当于python代码
person_dic = {"name": "张三", "age": 18}
for key, value in person_dic.items():print(f"{key}: {value}")
# 输出:
# name: 张三
# age: 18流程控制
IF条件控制
*** Test Cases ***test_one${score} Set Variable 70Run Keyword If ${score} >= 80 Log To Console 优秀... ELSE IF ${score} >= 60 Log To Console 及格... ELSE Log To Console 不及格
使用 IF 语句块(推荐,适用于较新版本的 Robot Framework)
*** Test Cases ***test_one${score} Set Variable 70IF ${score} >= 80Log To Console 优秀ELSE IF ${score} >= 60Log To Console 及格ELSELog To Console 不及格END
for循环
FOR开始EDN结束
*** Settings ***
Library Collections
*** Test Cases ***test_one${person_dic} Create Dictionary name=张三 age=18# 遍历字典的键值对FOR ${key} ${value} IN &{person_dic}Log To Console ${key} = ${value}END
*** Settings ***
Library Collections
*** Test Cases ***test_one${person_dic} Create Dictionary name=张三 age=18# 遍历字典的键值对FOR ${key} ${value} IN &{person_dic}Run Keyword If '${key}' == 'name' Log To Console ${value}... ELSE Log To Console 岁数为:${value}END
*** Settings ***
Library Collections
*** Test Cases ***test_one${person_dic} Create Dictionary name=张三 age=18# 遍历字典的键值对FOR ${key} ${value} IN &{person_dic}IF '${key}' == 'name'Log To Console ${value}ELSELog To Console 岁数为:${value}ENDEND调用python方法
普通函数方法
add.py
def get_sum(a, b):return int(a) + int(b)
demo.robot
第一步导入add.py文件,第二步get_sum函数,变成关键字Get Sum(规则首字母大写,下划线_变成空格)
*** Settings ***
Library add.py
*** Test Cases ***test_one${result} Get Sum 1 2Log To Console ${result}class类方法
py 文件要按照Robot Framework的要求定义可识别的关键字函数
UIauto.py
class UIauto:def get_info(self, name, age):return name + age
注意:类名和py名要保持一致
demo.robot
*** Settings ***
Library UIauto.py
*** Test Cases ***test_one${result} Get Info 张三 18Log To Console ${result}