RobotFramework之For循环

RobotFramework只支持FOR循环,但是也足够用了,如果有其他要求,可以自定义写。


一、示例

1.FOR......IN......

IN后面可以跟无数的值,然后一个一个读取到循环里执行,如下图


打印结果:把IN后面的值打印出来啦



2.FOR......IN RANGE......

IN RANGE后面跟的是值的范围,比如填写10,则为0-9,下标从0开始,也可以填写两个值,下标则从第一个值开始,如下图


打印结果



3.多层循环

先把一个循环封装成user keyword


然后再循环中调用user keyword即可



4.退出循环

使用Exit For Loop退出循环



如果以上内容对你有用,麻烦把你微信会支付宝小数点右边的数值,贡献那么一点点意思意思是对我最大的支持。谢谢!


### Robot Framework 中 For 循环的用法 Robot Framework 提供了一种简单而强大的方式来实现 `For` 循环结构。通过内置的关键字 `FOR` 和 `END`,可以轻松迭代列表、范围或其他数据集合。 以下是关于如何在 Robot Framework 中使用 `For` 循环的具体说明: #### 基本语法 `For` 循环的基本语法如下所示: ```robot FOR ${item} IN @{list} Log To Console Current item is ${item} END ``` 在此示例中,`${item}` 是每次循环中的当前变量,`@{list}` 是要遍历的列表[^1]。 #### 遍历整数序列 如果需要遍历一系列连续的整数值,则可以通过 `IN RANGE` 来完成此操作: ```robot *** Test Cases *** Loop Through Range FOR ${index} IN RANGE 5 Log To Console Index value is ${index} END ``` 上述脚本会打印从0到4的索引值[^2]。 #### 多重赋值支持 当有多个项目需要分配给不同的变量时,也可以在一个循环体内处理它们: ```robot *** Test Cases *** Multiple Assignments In Loop @{pairs}= Create List A,1 B,2 C,3 FOR ${letter} ${number} IN @{pairs} Log To Console Letter: ${letter}, Number: ${number} END ``` 这里展示了如何在同一轮次里分别获取字母和对应的数字[^3]。 #### 结合条件语句 还可以将条件逻辑嵌套于 `For` 循环之中以增加灵活性: ```robot *** Keywords *** Check Even Numbers [Arguments] ${num_list} FOR ${num} IN ${num_list} Exit For Loop If '${num}' == 'stop' Run Keyword If "${num}" % 2 == 0 Log To Console Found even number: ${num} END ``` 这段代码片段演示了如何仅记录偶数以及提前退出循环的情况[^4]。 #### 错误处理机制 为了增强健壮性,在遇到异常情况时可加入错误捕获功能: ```robot *** Settings *** Library OperatingSystem *** Test Cases *** Safe File Operations With Loops @{{files}}= Get Files From Directory /path/to/directory/ FOR ${file_name} IN ${{files}} Handle Possible Errors While Processing Each File END *** Keywords *** Handle Possible Errors While Processing Each File Run Keyword And Ignore Error Remove File ${file_name} ``` 该例子表明即使某些文件删除失败也不会中断整个流程[^5]。 ```python # Python equivalent of the above example (for comparison purposes only) import os directory_path = '/path/to/directory/' try: files = os.listdir(directory_path) except Exception as e: print(f"Error accessing directory {e}") else: for file_name in files: try: os.remove(os.path.join(directory_path, file_name)) except Exception as ex: print(f"Failed to delete {file_name}: {ex}") ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值