Robot Framework07-RF变量和循环

2019-07-22  本文已影响0人  筱媛媛

不管做什么操作,变量和循环都是必不可少的。本篇将对RF变量和循环进行展开讲解,主要包括“变量的三种形态Scalar,List,Dictionary以及for循环的基本使用等”。希望感兴趣的小伙伴可以坚持看下去同时欢迎提出宝贵的意见让我们一起进步!

01:本节内容介绍
变量和循环思维导图.png
02:RF变量概述

1)概述:RF中的变量实质上就是一个Python变量,它指向一个Python对象。即RF变量对应的是什么Python对象,它就是什么类型的对象

2)类型:Scalar , List , Dictionary

对应函数片段如下:
def printarg(*args,**kwargs):
    if len(args) == 0:
        print('** no    args **')
    else:
        print('** args   are **')
        print('----------------')
        for one in args:
            print(repr(one))
        print('----------------')
    if len(kwargs) == 0:
        print('** no  kwargs **')
    else:
        print('** kwargs are **')
        print('----------------')
        for k,v in kwargs.items():
            print(repr(k) + ':' + repr(v))
        print('----------------')
def returnlist():
    return [1,2,3]
def returndict():
    return {
        'ele1' : 'lily',
        'ele2' : 'mike'
    }
03:标量变量(Scalar variables)

1)变量概述:传递python对象,打印变量具体的值

2)表示方法:用${var}的方式来表示

3)注意事项:变量以Scalar方式传递给关键字作为参数的时候,就是直接把它所对应的Python对象传递给关键字对应的函数

*** Settings ***
Library  mylib3
*** Test Cases ***
case 01:
    ${list}     returnlist
    printarg    hello   ${list}
运行结果如下所示:
** args   are **
----------------
'hello'
[1, 2, 3]
----------------
** no kwargs **
04:列表变量(List variables)

1)变量概述:RF变量实际指向一个Python List对象,展开其List中的每个元素,作为多个参数传入

2)表示方法:用@{var}的方式来表示

3)注意事项:定义参数的时候用“$”,传参的时候用“@”,传递的参数还是List展开形式。即变量的行为与如何定义无关,只与如何传递参数的形式有关

*** Settings ***
Library  mylib3
*** Test Cases ***
case 02:
    @{list}     returnlist
    printarg    @{list}
运行结果如下所示:
** args   are **
----------------
1
2
3
----------------
** no  kwargs **

4)获取列表中的某个值:利用下标

*** Settings ***
Library  mylib3
*** Test Cases ***
case 03:
    @{list}     returnlist
    printarg    @{list}[0]  #方法1
    printarg    ${list[0]}  #方法2
运行结果如下所示:
** args   are **
----------------
1
----------------
** no  kwargs **
05:字典变量(Dict variables)

1)变量概述:RF变量实际指向一个Python Dict 对象,展开其Dict中的每个元素,作为多个参数传入

2)表示方法:用&{var}的方式来表示

3)注意事项:定义参数的时候用“$”,传参的时候用“&”,传递的参数还是Dict展开形式。即变量的行为与如何定义无关,只与如何传递参数的形式有关

*** Settings ***
Library  mylib3
*** Test Cases ***
case 04:
 &{dict}     returndict
 printarg    &{dict}
运行结果如下所示:
** no    args **
** kwargs are **
----------------
'ele1':'lily'
'ele2':'mike'
----------------

4)获取字典中的某个值:利用下标

*** Settings ***
Library  mylib3
*** Test Cases ***
case 05:
    @{list}     returnlist
    printarg    &{dict}[ele1]     #方法1
     printarg    ${dict['ele1']}  #方法2
运行结果如下所示:
** args   are **
----------------
'lily'
----------------
** no  kwargs **
06:循环(for)

1)在RF中只有for循环,没有while循环。

2)如何获取不确定次数的循环:将for循环次数加到足够大

3)注意事项:

  • :FOR前面的冒号不能忘
  • 如果后面的是变量是个list, 一定要写成@的形式,而不是$的形式
*** Settings ***
Library  mylib3
*** Test Cases ***
case 06:
    #先执行里面的循环3次,最后再执行一次外循环的内容
    ${var}  returnlist
    FOR   ${num}   IN     @{var}
        log to console  ${\n}${num}
        log to console  第${num}行
     END
    log to console  循环外面

4)获取指定循环次数:IN RANGE中间只有一个空格,如果写2个空格会把range当做一个参数

*** Settings ***
*** Test Cases ***
case 07:
      # 执行里面的循环10次,最后再执行一次外循环的内容
      FOR   ${num}   IN RANGE  10
        log to console  ${\n}${num}
        log to console  第${num}行
     END
    log to console  循环外面
上一篇 下一篇

猜你喜欢

热点阅读