Robot Framework多次运行测试用例的高效方法及命令中.的含义咨询
关于命令中.的含义及用法来源
你提到的命令里的.是Shell/CMD中通用的「当前工作目录」指代符,并非Robot Framework的专属语法。
Robot命令执行时,末尾传入的所有参数都会被识别为待执行的测试套件路径:你传入N次.,就等于告知Robot需要执行N次当前目录下所有符合筛选规则的测试用例,所以会出现.的数量对应运行次数的效果。
这个用法属于用户自行摸索的灵活技巧,并非官方推荐的标准用法,也没有专门的使用规范,实际使用中如果当前目录下存在多个测试套件,会导致所有匹配-t参数的用例都被重复执行,容易出现误操作。
高效指定运行次数的方案
针对需要重复执行几十上百次的场景,推荐以下两种成熟方案:
脚本循环方案(无需修改测试代码,适合临时重复执行场景)
直接用系统Shell的循环语法封装Robot执行命令即可,只需要修改数字就能调整运行次数:
Windows CMD环境下执行100次的命令示例:for /l %i in (1,1,100) do robot -t "My test" .
Linux/macOS Bash环境下执行200次的命令示例:for i in {1..200}; do robot -t "My test" .; done内置关键字方案(固定在测试逻辑中,适合需要固化重复逻辑的场景)
如果需要把重复执行的逻辑固化到测试用例中,可以直接使用Robot Framework内置的Repeat Keyword关键字,示例如下:*** Test Cases *** 需重复执行的测试用例 Repeat Keyword 200 times 你的测试步骤关键字如果需要整个测试用例完整重复执行,可以把用例封装为用户关键字,再通过
Repeat Keyword循环调用即可。
内容的提问来源于stack exchange,提问作者Jean

