# Evaluate 语法说明
| 关键字 | 参数 |
|---|---|
| Evaluate | expression, modules=None, namespace=None |
在 Python 中评估给定的表达式并返回结果。
expression如评估表达式中所述 (opens new window)在 Python 中进行评估 (opens new window)。
modules 参数可以用于指定要导入并添加到评估名称空间的 Python 模块的逗号分隔列表。
namespace 参数可用于将自定义评估名称空间作为字典传递。 可能modules添加到此命名空间。
# 样例
# 算数运算符
- 直接计算
| 变量 | 关键字 | 表达式 |
|---|---|---|
| ${result} | Evaluate | 4*10 + 2 |
- 引用变量
| 变量 | 关键字 | 表达式 |
|---|---|---|
| ${result} | Evaluate | ${x} + 2 |
- 传递字典
| 变量 | 关键字 | 参数 1 | 参数 2 |
|---|---|---|---|
| ${ns} | Create Dictionary | x=${4} | y=${2} |
| ${result} | Evaluate | x*10 + y | namespace=${ns} |
# 布尔表达式
| 变量 | 关键字 | 表达式 |
|---|---|---|
| ${status} | Evaluate | 0 < ${result} < 10 |
# 生成随机数
注意不要混淆其它语言的语法,Python 里 random 模块 random.randint(x,y) 的值是闭区间,包含给定的两个数
| 变量 | 关键字 | 参数 1 | 参数 2 |
|---|---|---|---|
| ${random} | Evaluate | random.randint(0, 5) | modules=random |
# 正则表达式
注意:反斜杠
\在 Robot Framework 里是转义字符,所以使用正则表达式要用双反斜杠\\用于转义。
*** Test Cases ***
提取数字
${string} Set Variable Shawn-2.527.10-05
${findnumber} Evaluate re.findall('\\d','${string}') re
${findnumbers} Evaluate re.findall('\\d+','${string}') re
两个 findall 都是获取字符串里的数字,它们的差异只是一个是\\d,另一个是\\d+。
\\d就是把数字一个一个取出来,\\d+也是把数字取出来,如果是连续的数字作为
一个值取出。所以前者取出来的是 ['2','5','2','7','1','0','0','5'],后者取出来的是['2','527','10','05']