编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

RobotFramework正式发布4.0版本!!!

wxchong 2024-09-16 07:12:12 开源技术 11 ℃ 0 评论

就在2021年3月11日下午,笔者正在投入到if/else 这种复杂逻辑的代码编写时,一封邮件引起了我的注意,本以为又是某xx银行的信用卡催命账单、或者诸如兰博基尼2W元代金卷这种广告邮件时。我定睛一看! 居然是 RobotFramework正式发布了4.0版本!!! 点进去一看,发现带来了贼多 **新特性** 和 ***功能增强*** 以及 ***BUG修复***,详细Release Note见:

https://github.com/robotframework/robotframework/blob/master/doc/releasenotes/rf-4.0.rst

使用以下命令更新到

```sh

pip install robotframework==4.0

```

# 新特性1 - 支持 Skip 跳过状态

内置关键字多了 `Skip` 和 `Skip if` 用来跳过用例

![image.png](https://upload-images.jianshu.io/upload_images/7303723-1d6cdeab3d8d3f02.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

在报告中也会有体现

![image.png](https://upload-images.jianshu.io/upload_images/7303723-70c5ddce377e63af.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

再也不用傻傻用`Pass If`了 ,或者使用 `-e` 通过tag跳过用例了

**通过`Skip` 跳过的用例会在报告里面体现** 而 `-e` 不会

# 新特性2 - 原生IF/ELSE语法支持

这个必须好评,较复杂逻辑再也不用在用例里面写僵硬的`Run Keyword If` 了,直接上代码

原来:

```python

Run Keyword If "${userName}"=="${EMPTY}" and "${ip}"=="${EMPTY}" Log xxx

... ELSE IF "${userName}"=="${EMPTY}" and "${ip}"!="${EMPTY}" Log yyy

... ELSE IF "${userName}"!="${EMPTY}" and "${ip}"=="${EMPTY}" Log zzz

```

现在:

```python

Example3

IF "${direction}" == "STRAIGHT"

Log Going straight

ELSE IF "${direction}" == "LEFT"

Log Turning left

ELSE IF "${direction}" == "RIGHT"

Log Turning right

ELSE

Fail Unrecognized direction: ${direction}

END

```

以前不可能直接嵌套FOR循环。实现这一点的唯一方法是使用关键字包含另一个循环的循环。这个可以了,FOR循环以及新的IF/ELSE结构可以自由嵌套,示例:

```python

FOR ${row} IN @{rows}

FOR ${cell} IN @{row}

IF "${cell}" != "IGNORE"

Process Cell ${cell}

END

END

END

```

# 新特性3 - 移除了`Criticality`

这个在笔者平常写脚本过程中使用很少、具体可以看相关文档、而且还提供了由`Criticality`迁移到使用`Skip`的方案

#新特性4 - 列表@{list} 和字典&{dict}的访问得到了增强

机翻一波

+ @{var}[item]和&{var}[item]首先进行常规变量项查找,与使用${var}[item]时完全相同。

+ 也支持像@{var}[item1][item2]这样的嵌套访问,以及像@{var}[1:]这样的列表使用切片表示法。

+ 使用@{var}[item]语法时,找到的项必须是列表或类似列表的。它的展开方式与@{var}的展开方式完全相同。

+ 使用&{var}[item]语法时,找到的项必须是映射。它的展开方式与&{var}的展开方式完全相同。

#新特性5 - `:FOR`循环不被支持了

在3.1版本使用`:FOR` 会产生警告 推荐使用新的`FOR` `END` 语法

但是在4.0版本 `:FOR`已经不再被支持了、使用应该会直接报错。

不要使用:

```python

:FOR ${animal} IN cat dog cow

\ Keyword ${animal}

\ Another keyword

```

使用:

```python

FOR ${animal} IN cat dog cow

Keyword ${animal}

Another keyword

END

```

# 最后

其实还有很多新特性 和 bug的完善、笔者没有时间一一去解读(最近在写bug)

如果希望更加进一步了解的可以 去看最新的 [更新日志](https://github.com/robotframework/robotframework/blob/master/doc/releasenotes/rf-4.0.rst)

可见现在RF已经在慢慢的完善、改进,变得更灵活和易用。我已经在期待5.0版本了 !!! 你呢 ?

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表