2023-10-15 01:16:42 | 找车网
变量的声明、赋值及其使用
List Variables-List变量及其用法
每个变量都可以用 变量标识符{变量名} 来进行表示,变量标识符在之前用户关键字的地方介绍了一下,Scalar变量用 $ 作为标识符,List型变量用 @ 作为标识符,不过这只能作为一个初步的区分,使用 $ 的变量,实际上也可以在接收List值后转化成List变量。转化的内容会在List变量里介绍。
其实这里没有什么特别的变量声明,因为RF底层是Python,所以他的语法也有些类似,变量不需要特定声明,只要有初始化赋值即可使用。
如果硬要说有声明,那可以把我们在TestSuite下面手动添加的变量理解为声明吧。比如我们可以在TestSuite上点右键或者在Edit区点Add Scalar或Add List来新增变量。
实际上也可以看做另一种形式的变量赋值,一般相当于使用Set Variable进行初始化赋值。
可以Import需要用到得Library
赋值也是有几种的,根据自己的需求进行处理吧。
通常这种方式主要使用Set Variable或类似的使用了Set的关键字对变量进行赋值。例如:
主要用于返回值上,包括系统关键字的返回值和用户关键字的返回值(从广义上说,Set那个也是返回值),例如:
之前的用户关键字里也有很多例子。
详见 流程与数据分离最后一篇 ,使用小v 的argument。
特别注意:如果一个变量没有经过赋值,使用时会报错的。
通常情况下,每个变量默认都是局部变量。
一个case里的变量,作用域在这个case内部;
一个userkeyword里的变量,作用域在这个userkeyword内部;
一个文件型suite里的变量,作用域在这个suite内部,所有下面的case也都可以使用。
一个目录型suite里的变量,作用域在这个目录内,他下面的文件型suite是无法使用的,所以一般在目录下新增变量没有太大意义。
作用域是可以修改的,即通过一些系统关键字,对变量进行作用域的设定,常用的关键字有:
Set Global Variable ——设定全局级变量
Set Suite Variable ——设定suite级变量
Set Test Variable ——设定case级变量
其实使用变量我觉得不需要说太多了,变量的赋值可以看一下用户关键字的返回值部分,里面的单个返回值和多个返回值其实就是给单个变量赋值和多个变量赋值的例子了。
这里再列几种之前没有写过的例子吧。
例如这样写,在第二行的判断中可以直接写判断条件,现在的条件成立,于是运行结果如下:
如果想把变量作为一个字符串的一部分,可以直接这样写
运行结果如下:
实际上默认情况下RF里的变量都是字符型的,并且两个字符串连接不要加什么符号,直接连起来就行了。
如果你写成aaa+${text}bbb,最终结果就是aaa+8866bbb,他会把你写的任何内容都当作字符串的。
看了上面的例子之后,可能有人说我想用123作为数值进行计算该怎么用。
这里要用到一个关键字Evaluate。先看个例子:
运行结果如下:
他的作用是可以让你加载Python的一些库,依赖于Python的语法,相当于直接运行对应的Python语句得到结果。
像上面的例子没有加载库,因为加减乘除这些是Python基本库就有的。下面放一个加载Python库的,如下图,他加载了random和sys两个库,并使用相应的语句生成一个随机数。
运行结果:
具体可以参考一下RF的userguide文档中BuiltIn部分。
介绍List Variables-List变量及其用法。
在我们前面几篇文章里用到了很多List变量,相信以后各位也会碰到需要使用的地方。
和Scalar类似的赋值,除了用Set Variable还可以用Create List。
运行一下:
在使用上要注意看关键字的参数到底是Scalar的还是List,区别就是看变量名前面是否有 ***** (星号),如图:
这个关键字:
name就是支持传入Scalar型的参数
args就是支持可以传入List型值的 。
所谓List型值其实是说支持多个值,即不确定个数的,List-like一样的值,如下图的2、3行:
运行一下:
当然,并不是说没有星号的就不能用List的,只要是多个变量就可以用List传值。
像Log这个关键字,他有2个Scalar型的传入参数,如果我想传List也是可以的,但是必须是一个有2个元素的List,因为Log的第二个参数有默认值,所以如果你传入1个元素的List也是可以的,但是如果传入3个元素的List,那么就会报错了。
运行结果:
你可以写成上面这样,但是我并不推荐这种做法,这里只是为了讲解List的作用而做的示范。
综上,对于有多个参数的关键字,你可以按照需要传入多个Scalar变量,也可以传入List变量,根据你自己的需要选择合适的方式。
之前提过了 Scalar变量 用 $ 作为标识符, List型变量 用 @ 作为标识符,而且他们是可以进行转换的,理论上可以互相进行转换,但是也有一点限制。
这种转换的效果是把整个List变成一个Scalar,我觉得作用主要是对于那些只接收Scalar变量参数的关键字,而你又想传List的全部值的时候,或者其他你需要的把List当作Scalar的情况下使用。
例如Fail关键字,他的msg这个参数只能接收Scalar变量。
如果你想用Fail,把f这个变量的值都打出来,下面这样写是肯定会报错的。
报错信息为 Keyword 'BuiltIn.Fail' expected 0 to 1 arguments, got 3.
那么我们转换一下,这样写就不报错了。
运行结果:
其实以前介绍用户关键字的时候也演示过,对于返回值是List的关键字,如果你给要赋值的变量写的是Scalar的,他会自动把他变成List的。
还是上面这个例子,我们把@{f}改成${f}
这样也是OK的。
【Question】这里没懂如何就成功发生转换了。
但是,转换是有一点限制的。
首先,变量要进行赋值(类似于初始化)之后才能使用,如果没有进行过赋值的RIDE里会有颜色提示,用一个前面的图
图中的紫色${f}就是提示你他没有进行过赋值,此时而系统会默认他就是@{f}的Scalar形式,这个可以看上面的执行结果。
那么这个限制就在Scalar转换成List的地方,系统会默认${f}是@{f}的Scalar形式,但是他并不会默认@{f}是${f}的list形式,即使${f}已经是list了。
看一下例子:
这样写的话运行就会报错:Non-existing variable '@{f}' .
那这时候${f}有什么用呢?除了前面介绍的作为Scalar型变量,值是所有元素,还可以根据index直接获得某个元素。
例如:
运行结果:
看完上面的限制之后,还要补充一点,系统会默认${f}是@{f}的Scalar形式,这个也是有限制,必须是${f}没有被赋值过的情况,如果${f}被赋值过是什么情况呢?
看看例子:
你觉得${f}会是什么值呢?
【Question】这里跟教程的截图,返回结果不一致了。有点蒙,理解还没到位。
下面是教程给出的答案:
一个重要的影响就是会导致下面的List元素获取出现越界的情况。
List元素的获取只有一种方式,无论是一维List还是二维List,都是用${变量名[index]},就是用$的变量,在变量名后面加上方括号,里面是序号。
运行:
运行结果:
如果log后面只写${f[1]},那么得到的结果如图:
参考文章给出的运行结果:
总之,就是用方括号来表明你需要的元素,如果是多维List,要想清楚你到底要哪层的,不要写少了或者写多了。
【Question】这运行结果不一致,真是令人困扰。。。
scalar意思为:
adj.纯量的;标量的;无向量的
n.数量,标量
例句:
1.The energy calculation error of scalar theory was investigated firstly.
首先分析了标量衍射理论的能量计算误差。
2.Scalar Urban Water Pricing Model Based on Utility Function
基于效用函数的阶梯式自来水水价模型
3.The visualization based on meteorological element scalar quantity field and Application
基于气象要素标量场对象的可视化及其应用 找车网
4.Measurement of permittivity for low loss film using scalar method
测量低损耗薄膜材料介电常数的标量法
q2业绩是什么意思q2业绩一般指一家公司公布第二季度(4-6月)业绩报告(财报),通过业绩报告用户可以了解这家企业的经营情况,比如腾讯公布q2业绩,阿里巴巴公布q2业绩等,除了q2业绩,还有q1业绩、q3业绩、q4业绩。值得注意的是,部分公司的业绩报告不是按自然年计算的。通常只有上市的公司才会发布业绩报道,这个业绩报告主要向股东展示公司的经营情况。在国内上市公司必须是股份制,而且在上市
suv是什么意思SUV的全称是:运动型多功能车,或“运动型多功能车”。SUV起源于美国,也是近年来美国市场最畅销的车型。20世纪80年代,SUV是为迎合年轻白领的兴趣而在皮卡底盘上开发的厢式货车,不同于越野汽车(ORV),越野汽车可以在崎岖的地形上使用。SUV的另一个全称是郊区多功能车,即郊区多功能车,是一种具有类似旅行车空功能和卡车越野能力的车辆。SUV是什么意思?SUV采用四轮驱动
525是什么意思???525的意思是我爱我。每年的5月25日是全国大学生心理健康日,提醒大学生“珍惜生命,关爱自己”。核心内容是:关爱自我,了解自我,接纳自己,关注自己的心理健康和心灵成长,提高自身心理素质,进而爱别人,爱社会。大学生对心理健康的概念很模糊,甚至有误解,不到了药物治疗的程度,就不承认自己存在心理障碍。例如:大学新生的心理问题是适应性和与人沟通
SUV是什么车SUV什么意思推出什么样的SUV?SUV的全称是运动型多功能车,即“运动型多功能车”。SUV起源于美国,也是近年来美国市场最畅销的车型。上世纪80年代,SUV是为了迎合年轻白领的兴趣,在皮卡底盘上开发出来的一种厢式货车,不同于越野车ORV(越野车),可以在崎岖的地面上行驶。SUV的另一个全称是SuburbanUtilityVehicle,即郊区多功能车,是一种具有旅行车般的
汽车排量的后缀,诸如MT,AT,CVVT,XV,XE,XL都是什么意思?MT手动档AT自动挡XE豪华版XL天窗版XV导航版CVVT是发动机的技术名词连续可变气门正时机构.MT代表手动挡车型。MT为manualtransmission的缩写,意为手动变速器,手动变速器机械结构简单,而且变速箱几乎不用保养,维护成本低,能更多体验驾驶
suv汽车是什么意思SUV的全称是SportUtilityVehicle,即运动型多用途汽车;另一说全称是SuburbanUtilityVehicle,即城郊多用途汽车。这是一种拥有旅行车般的空间机能,配以货卡车的越野能力的车型。按照SUV的功能性,通常分为城市型与越野型,现在的SUV一般指那些以轿车平台为基础、在一定程度上既具有轿车的舒适性,又具有一定越野性的车型。suv是什么
63的爱情数字表达什么意思?63是“来生”意思爱情,也就是代表着两个心爱的男女朋友或者夫妻今生爱的还不够,来生还要认真去相爱的意思了。那我相信他们两个就是要一生一世永远去相爱,永生永世永远是相伴的。其实阿拉伯数字63就是一个所谓的爱情谐音数字密码了63是什么意思网络语63是什么意思1、63就是“三个六”,即666。2、最近666成为很多年轻人的口头禅,其实666是最新的
amg啥意思带AMG的奔驰,说明是高性能奔驰车,来自奔驰AMG改装厂。奔驰AMG本来只是一个小型改装厂,但是改装技术不错。在比利时24小时SPA耐力赛中,AMG凭借一辆改装奔驰E300SEL夺得同级冠军,一举成名。后来被奔驰收购,成为奔驰的高性能改装部门。AMG改装的发动机都是大排量发动机。一开始只是对发动机进行了改装和设计,注重动力系统,希望发动机能充分发挥动力。随着公司越做越大,直接进入
2023-08-25 14:09:50
2023-09-10 09:28:30
2023-08-23 03:58:02
2023-09-09 12:17:36
2023-08-24 05:06:58
2023-08-20 21:21:33