美文网首页程序员
robotframework2.8.7与2.9.2的版本差异

robotframework2.8.7与2.9.2的版本差异

作者: 菩提狗 | 来源:发表于2018-05-08 00:29 被阅读0次

使用Robot Framework框架进行WEB自动化集成测试差不多快一年了,功能很强大,用的也很顺手,但一直都是根据工作需要进行针对性的学习以及使用,最近有些时间,于是就想花点时间系统的学习一下这个让我爱的深入骨髓的小家伙。

于是就买了道长大神的巨著,慢慢消化并练习。在练习的过程中遇到不少的坑,今天给大家分享一下robotframework版本问题引入的关于list变量与scalar变量转换的一些坑。

起初我电脑上安装的是robotframework2.9.2,自己用的时候因为一般的变量设置很少重名,所以并没有什么影响,但根据道长的书中的描述去操作的时候却遇到了一些的问题,如下:

根据书中所述:对于List和Scalar变量,必须要赋值(类似于初始化)后才能使用,但要想将List和Scalar变量互相转换,那么有一个限制就是变量必须没有初始化或者赋值过。

因此上图中的脚本中,第一行就已经给List变量@{argVal4}赋值了[u'abcd', u'WARN'],此时没有声明Scalar变量${argVal4},所以在第二行log ${argVal4}的时候,他的值还是@{argVal4}的值(即此时没有限制,可以进行转换)。在第三行又给Scalar变量${argVal4}赋值了[u'1234', u'5678'],此时Scalar变量${argVal4}和List变量@{argVal4}已经分别进行了初始化,他们之间就不能再进行相互转换了,因此第四行log ${argVal4}的时候还是[u'1234', u'5678'],而在第五行把@{argVal4}重新赋值[u'4321', u'8765'],但是根据变量转换的限制(已经初始化或赋值过的变量不能转换),第六行log ${argVal4}依然应该是[u'1234', u'5678'],而不是[u'4321', u'8765'],但是在我原来的环境中却是相反的结果,如下图:

一开始纠结了很久也没能找出原因,最后考虑到可能是版本不同导致的,于是干脆把我环境中的各个模块版本都与道长书中介绍的保持一致,因此将robotframework的版本从2.9.2降到了2.8.7版本(robotframework 2.7.8)。运行该脚本后果然得到了正确的结果。

话说回来,这又是一个大坑,不过还是那句老话——有些坑不得不填

**********书山有路,学海无涯,无数个孤独的夜晚,需要一点小小的成就感!**********

相关文章

网友评论

    本文标题:robotframework2.8.7与2.9.2的版本差异

    本文链接:https://www.haomeiwen.com/subject/doibrftx.html