大数跨境
0
0

Robotframework常用关键字的使用

Robotframework常用关键字的使用 橙子好甜
2025-08-17
0

上篇:Robot Framework的安装


Robot Framework 的常用关键字集中在 BuiltIn、Collections、String、DateTime、SeleniumLibrary、RequestsLibrary 等库中,日常 80% 的场景只需掌握以下 6 类高频关键字:

1、日志与流程
Log / Log To Console / Comment / Fail / Sleep
用于调试输出、强制报错、等待。

2、变量与判断
Set Variable / ${x}=  1  2  3  创建列表/字典
Should Be Equal / Should Contain / Run Keyword If
完成断言、分支、循环控制。
3、集合操作
Append To List / Remove From Dictionary / Get Dictionary Keys
快速增删改查列表和字典。
4、字符串处理
Get Substring / Replace String / Split String / Convert To Upper Case
无需写 Python 即可处理文本。
5、Web 自动化(SeleniumLibrary)
Open Browser / Click Element / Input Text / Get Text / Page Should Contain
一行关键字完成打开浏览器、点击、输入、断言。
6、接口测试(RequestsLibrary)
Create Session / Get / Post / Should Be Equal As Strings / Status Should Be
通过会话对象完成 REST 接口调用及校验。

掌握以上关键字即可覆盖日志、变量、断言、集合、字符串、Web、接口 7 大核心场景。

常用关键字使用

1. 基本日志  

2. 字符串常用关键字  

3. 列表操作  

4. 字典操作  

5. 类型转换  

6. 随机数与范围  

7. 时间关键字  

8. 条件判断  

9. 断言关键字(失败会终止用例)  

10. 运行系统命令并获取输出  

11. 创建目录/文件(OperatingSystem)

实例

*** Settings ***Documentation     Robot Framework 常用关键字速查 DemoLibrary           Collections    # 列表/字典操作Library           String    # 字符串处理Library           DateTime    # 时间Library           OperatingSystem    # 文件/目录Library           BuiltIn    # 内建关键字(变量/断言/循环/随机数等)Library           random
*** Variables ***${STR}            Hello Robot    # 字符串变量@{LIST}           apple    banana    cherry    # 列表变量&{DICT}           name=Tom    age=18    city=Beijing    # 字典变量
*** Test Cases ***Demo_Keyword_CheatSheet    [Tags]    key1    # 1. 基本日志    Log To Console    \n=== 1. 基本日志 ===    Log    这是一条普通日志    Log Many    ${STR}    ${LIST}    ${DICT}    # 2. 字符串常用关键字    Log To Console    \n=== 2. 字符串常用关键字 ===    ${upper}=    Convert To Uppercase    ${STR}    ${len}=    Get Length    ${STR}    ${sub}=    Get Substring    ${STR}    0    5    Log Many    转大写:${upper}    长度:${len}    子串:${sub}    # 创建字典、列表、设置变量    ${a}    Set Variable    100    Comment    使用    Log    ${a}    Sleep    3    Import Library    C:/Users/wm/Desktop/cs/1024/cs.py    ${return_result}    sum1    10    20    Log Many    ${return_result}    ${data1}    Create Dictionary    key=value    ${data2}    Create List    1    2    love    you!    comment    ${data2}    ${data3}    Catenate    This    is    a    nice    day!    ${data2}    comment    ${data2}    # 3. 列表操作    Log To Console    \n=== 3. 列表操作 ===    # 取索引 0    ${first}=    Get From List    ${LIST}    0    # 取最后一个    ${last}=    Get From List    ${LIST}    -1    # 切片    ${slice}=    Get Slice From List    ${LIST}    0    2    Comment    ${slice}=    Log Many    第一个:${first}    最后一个:${last}    切片:${slice}    # 列表遍历    Log To Console    列表遍历:    FOR    ${item}    IN    @{LIST}        Log To Console    当前水果: ${item}    END    # 向列表追加/删除    Append To List    ${LIST}    orange    Remove From List    ${LIST}    1    Log    追加+删除后的列表: ${LIST}    # 4. 字典操作    Log To Console    \n=== 4. 字典操作 ===    ${v}=    Get From Dictionary    ${DICT}    name    Log    根据 key='name' 得到 value: ${v}    # 遍历字典    Log To Console    字典遍历:    FOR    ${k}    ${v}    IN    &{DICT}        Log To Console    ${k} -> ${v}    END    # 新增/修改 key-value    Set To Dictionary    ${DICT}    email=tom@example.com    Log    新增 email 后的字典: ${DICT}    # 5. 类型转换    Log To Console    \n=== 5. 类型转换 ===    ${int}    Convert To Integer    42    ${float}    Convert To Number    3.14    ${str2}    Convert To String    ${int}    Log Many    int:${int}    float:${float}    str:${str2}    # 6. 随机数与范围    Log To Console    \n=== 6. 随机数与范围 ===    ${rand}    Generate Random String    8    [LOWER]    ${num}    Evaluate    random.randint(1100)    modules=random    Log Many    随机字符串:${rand}    随机数字:${num}    # 7. 时间关键字    ${start}    Get Time    epoch    Sleep    2    # 这里放你的业务关键字    ${end}    Get Time    epoch    ${elapsed}    Evaluate    ${end} - ${start}    Log    耗时 ${elapsed} 秒    # 8. 条件判断    Log To Console    \n=== 8. 条件判断 ===    ${age}    Set Variable    20    IF    ${age} >= 18        Log To Console    成年人    ELSE        Log To Console    未成年人    END    # 9. 断言关键字(失败会终止用例)    Log To Console    \n=== 9. 断言关键字 ===    Should Be Equal As Integers    ${age}    20    Should Contain    ${STR}    Robot    Dictionary Should Contain Key    ${DICT}    city    # 10. 运行系统命令并获取输出    Log To Console    \n=== 10. 运行系统命令 ===    ${rc}    ${output}=    Run And Return Rc And Output    echo Hello from OS    Log many    命令返回码:${rc}    输出:${output}    # 11. 创建目录/文件(OperatingSystem)    Log To Console    \n=== 11. 文件系统操作 ===    ${dir}    Join Path    ${OUTPUTDIR}    demo_dir    Create Directory    ${dir}    Create File    ${dir}/example.txt    这是文件内容    ${files}    List Files In Directory    ${dir}    Log    目录${dir} 下的文件: ${files}

message log

Starting test: 0814-2.Suite1.Demo_Keyword_CheatSheet20250817 17:02:21.622 :  INFO : 这是一条普通日志20250817 17:02:21.626 :  INFO : Hello Robot20250817 17:02:21.626 :  INFO : ['apple', 'banana', 'cherry']20250817 17:02:21.627 :  INFO : {'name': 'Tom', 'age': '18', 'city': 'Beijing'}20250817 17:02:21.629 :  INFO : ${upper} = HELLO ROBOT20250817 17:02:21.630 :  INFO : Length is 11.20250817 17:02:21.631 :  INFO : ${len} = 1120250817 17:02:21.632 :  INFO : ${sub} = Hello20250817 17:02:21.634 :  INFO : 转大写:HELLO ROBOT20250817 17:02:21.634 :  INFO : 长度:1120250817 17:02:21.634 :  INFO : 子串:Hello20250817 17:02:21.636 :  INFO : ${a} = 10020250817 17:02:21.638 :  INFO : 10020250817 17:02:24.640 :  INFO : Slept 3 seconds.20250817 17:02:27.812 :  INFO : ${return_result} = 10201020250817 17:02:27.813 :  INFO : 10201020250817 17:02:27.814 :  INFO : ${data1} = {'key': 'value'}20250817 17:02:27.815 :  INFO : ${data2} = ['1', '2', 'love', 'you!']20250817 17:02:27.818 :  INFO : ${data3} = This is a nice day! ['1', '2', 'love', 'you!']20250817 17:02:27.821 :  INFO : ${first} = apple20250817 17:02:27.822 :  INFO : ${last} = cherry20250817 17:02:27.824 :  INFO : ${slice} = ['apple', 'banana']20250817 17:02:27.826 :  INFO : 第一个:apple20250817 17:02:27.826 :  INFO : 最后一个:cherry20250817 17:02:27.827 :  INFO : 切片:['apple', 'banana']20250817 17:02:27.833 :  INFO : 追加+删除后的列表: ['apple', 'cherry', 'orange']20250817 17:02:27.838 :  INFO : ${v} = Tom20250817 17:02:27.840 :  INFO : 根据 key='name' 得到 value: Tom20250817 17:02:27.849 :  INFO : 新增 email 后的字典: {'name': 'Tom', 'age': '18', 'city': 'Beijing', 'email': 'tom@example.com'}20250817 17:02:27.852 :  INFO : ${int} = 4220250817 17:02:27.854 :  INFO : ${float} = 3.1420250817 17:02:27.855 :  INFO : ${str2} = 4220250817 17:02:27.857 :  INFO : int:4220250817 17:02:27.857 :  INFO : float:3.1420250817 17:02:27.857 :  INFO : str:4220250817 17:02:27.859 :  INFO : ${rand} = bmofenbl20250817 17:02:27.861 :  INFO : ${num} = 820250817 17:02:27.863 :  INFO : 随机字符串:bmofenbl20250817 17:02:27.863 :  INFO : 随机数字:820250817 17:02:27.865 :  INFO : ${start} = 175542134720250817 17:02:29.867 :  INFO : Slept 2 seconds.20250817 17:02:29.874 :  INFO : ${end} = 175542134920250817 17:02:29.877 :  INFO : ${elapsed} = 220250817 17:02:29.879 :  INFO : 耗时 2 秒20250817 17:02:29.887 :  INFO : ${age} = 2020250817 17:02:29.931 :  INFO : Running command 'echo Hello from OS 2>&1'.20250817 17:02:29.943 :  INFO : ${rc} = 020250817 17:02:29.943 :  INFO : ${output} = Hello from OS 20250817 17:02:29.944 :  INFO : 命令返回码:020250817 17:02:29.944 :  INFO : 输出:Hello from OS 20250817 17:02:29.946 :  INFO : ${dir} = C:\Users\wm\AppData\Local\Temp\RIDEvinp7x2i.d\demo_dir20250817 17:02:29.947 :  INFO : Directory '<a href="file://C:\Users\wm\AppData\Local\Temp\RIDEvinp7x2i.d\demo_dir">C:\Users\wm\AppData\Local\Temp\RIDEvinp7x2i.d\demo_dir</a>' already exists.20250817 17:02:29.949 :  INFO : Created file '<a href="file://C:\Users\wm\AppData\Local\Temp\RIDEvinp7x2i.d\demo_dir\example.txt">C:\Users\wm\AppData\Local\Temp\RIDEvinp7x2i.d\demo_dir\example.txt</a>'.20250817 17:02:29.951 :  INFO : Listing contents of directory '<a href="file://C:\Users\wm\AppData\Local\Temp\RIDEvinp7x2i.d\demo_dir">C:\Users\wm\AppData\Local\Temp\RIDEvinp7x2i.d\demo_dir</a>'.20250817 17:02:29.953 :  INFO : 1 file:example.txt20250817 17:02:29.954 :  INFO : ${files} = ['example.txt']20250817 17:02:29.955 :  INFO : 目录C:\Users\wm\AppData\Local\Temp\RIDEvinp7x2i.d\demo_dir 下的文件: ['example.txt']Ending test: 0814-2.Suite1.Demo_Keyword_CheatSheet
Starting test: 0814-2.Suite2.Demo_Keyword_CheatSheet20250817 17:02:29.973 :  INFO : 这是一条普通日志20250817 17:02:29.975 :  INFO : Hello Robot20250817 17:02:29.976 :  INFO : ['apple', 'banana', 'cherry']20250817 17:02:29.976 :  INFO : {'name': 'Tom', 'age': '18', 'city': 'Beijing'}20250817 17:02:29.977 :  INFO : ${upper} = HELLO ROBOT20250817 17:02:29.978 :  INFO : Length is 11.20250817 17:02:29.979 :  INFO : ${len} = 1120250817 17:02:29.981 :  INFO : ${sub} = Hello20250817 17:02:29.983 :  INFO : 转大写:HELLO ROBOT20250817 17:02:29.984 :  INFO : 长度:1120250817 17:02:29.985 :  INFO : 子串:Hello20250817 17:02:29.987 :  INFO : ${first} = apple20250817 17:02:29.989 :  INFO : ${last} = cherry20250817 17:02:29.990 :  INFO : ${slice} = ['apple', 'banana']20250817 17:02:29.991 :  INFO : 第一个:apple20250817 17:02:29.991 :  INFO : 最后一个:cherry20250817 17:02:29.992 :  INFO : 切片:['apple', 'banana']20250817 17:02:30.004 :  INFO : 追加+删除后的列表: ['apple', 'cherry', 'orange']20250817 17:02:30.006 :  INFO : ${v} = Tom20250817 17:02:30.007 :  INFO : 根据 key='name' 得到 value: Tom20250817 17:02:30.019 :  INFO : 新增 email 后的字典: {'name': 'Tom', 'age': '18', 'city': 'Beijing', 'email': 'tom@example.com'}20250817 17:02:30.022 :  INFO : ${int} = 4220250817 17:02:30.023 :  INFO : ${float} = 3.1420250817 17:02:30.024 :  INFO : ${str2} = 4220250817 17:02:30.025 :  INFO : int:4220250817 17:02:30.026 :  INFO : float:3.1420250817 17:02:30.026 :  INFO : str:4220250817 17:02:30.028 :  INFO : ${rand} = prwkqeiu20250817 17:02:30.030 :  INFO : ${num} = 6920250817 17:02:30.031 :  INFO : 随机字符串:prwkqeiu20250817 17:02:30.031 :  INFO : 随机数字:6920250817 17:02:30.035 :  INFO : ${start} = 175542135020250817 17:02:32.038 :  INFO : Slept 2 seconds.20250817 17:02:32.039 :  INFO : ${end} = 175542135220250817 17:02:32.040 :  INFO : ${elapsed} = 220250817 17:02:32.041 :  INFO : 耗时 2 秒20250817 17:02:32.046 :  INFO : ${age} = 2020250817 17:02:32.064 :  INFO : Running command 'echo Hello from OS 2>&1'.20250817 17:02:32.087 :  INFO : ${rc} = 020250817 17:02:32.087 :  INFO : ${output} = Hello from OS 20250817 17:02:32.088 :  INFO : 命令返回码:020250817 17:02:32.088 :  INFO : 输出:Hello from OS 20250817 17:02:32.090 :  INFO : ${dir} = C:\Users\wm\AppData\Local\Temp\RIDEvinp7x2i.d\demo_dir20250817 17:02:32.091 :  INFO : Directory '<a href="file://C:\Users\wm\AppData\Local\Temp\RIDEvinp7x2i.d\demo_dir">C:\Users\wm\AppData\Local\Temp\RIDEvinp7x2i.d\demo_dir</a>' already exists.20250817 17:02:32.093 :  INFO : Created file '<a href="file://C:\Users\wm\AppData\Local\Temp\RIDEvinp7x2i.d\demo_dir\example.txt">C:\Users\wm\AppData\Local\Temp\RIDEvinp7x2i.d\demo_dir\example.txt</a>'.20250817 17:02:32.094 :  INFO : Listing contents of directory '<a href="file://C:\Users\wm\AppData\Local\Temp\RIDEvinp7x2i.d\demo_dir">C:\Users\wm\AppData\Local\Temp\RIDEvinp7x2i.d\demo_dir</a>'.20250817 17:02:32.095 :  INFO : 1 file:example.txt20250817 17:02:32.095 :  INFO : ${files} = ['example.txt']20250817 17:02:32.096 :  INFO : 目录C:\Users\wm\AppData\Local\Temp\RIDEvinp7x2i.d\demo_dir 下的文件: ['example.txt']Ending test: 0814-2.Suite2.Demo_Keyword_CheatSheet

console log

command: robot -A C:\Users\wm\AppData\Local\Temp\RIDEvinp7x2i.d\argfile.txt --listener D:\soft\python311\Lib\site-packages\robotide\contrib\testrunner\TestRunnerAgent.py:4642:False C:\Users\wm\test0630\0814-2TestRunnerAgent: Running under CPython 3.11.5
===============================================================================================0814-2                                                                                         ===============================================================================================0814-2.Suite1 :: Robot Framework 常用关键字速查 Demo                                           ===============================================================================================Demo_Keyword_CheatSheet                                                                === 1. 基本日志 ===
=== 2. 字符串常用关键字 ===
=== 3. 列表操作 ===列表遍历:当前水果: apple当前水果: banana当前水果: cherry
=== 4. 字典操作 ===字典遍历:name -> Tomage -> 18city -> Beijing
=== 5. 类型转换 ===
=== 6. 随机数与范围 ===
=== 8. 条件判断 ===成年人
=== 9. 断言关键字 ===
=== 10. 运行系统命令 ===
=== 11. 文件系统操作 ===| PASS |-----------------------------------------------------------------------------------------------0814-2.Suite1 :: Robot Framework 常用关键字速查 Demo                                   | PASS |1 test, 1 passed, 0 failed===============================================================================================0814-2.Suite2 :: Robot Framework 常用关键字速查 Demo                                           ===============================================================================================Demo_Keyword_CheatSheet                                                                === 1. 基本日志 ===
=== 2. 字符串常用关键字 ===
=== 3. 列表操作 ===列表遍历:当前水果: apple当前水果: banana当前水果: cherry
=== 4. 字典操作 ===字典遍历:name -> Tomage -> 18city -> Beijing
=== 5. 类型转换 ===
=== 6. 随机数与范围 ===
=== 8. 条件判断 ===成年人
=== 9. 断言关键字 ===
=== 10. 运行系统命令 ===
=== 11. 文件系统操作 ===| PASS |-----------------------------------------------------------------------------------------------0814-2.Suite2 :: Robot Framework 常用关键字速查 Demo                                   | PASS |1 test, 1 passed, 0 failed===============================================================================================0814-2                                                                                 | PASS |2 tests, 2 passed, 0 failed===============================================================================================Output:  file:///C:/Users/wm/AppData/Local/Temp/RIDEvinp7x2i.d/output.xmlC:\Users\wm\AppData\Local\Temp\RIDEvinp7x2i.d\output.xmlLog:     file:///C:/Users/wm/AppData/Local/Temp/RIDEvinp7x2i.d/log.htmlC:\Users\wm\AppData\Local\Temp\RIDEvinp7x2i.d\log.htmlReport:  file:///C:/Users/wm/AppData/Local/Temp/RIDEvinp7x2i.d/report.htmlC:\Users\wm\AppData\Local\Temp\RIDEvinp7x2i.d\report.html
Test finished 20250817 17:02:33

【声明】内容源于网络
0
0
橙子好甜
人生苦短,我用python --it测试狗
内容 30
粉丝 0
橙子好甜 人生苦短,我用python --it测试狗
总阅读40
粉丝0
内容30