0%

RobotFramework自动化框架(二)

RobotFramework自动化框架,文件读取。

robotframework提供了多种读取外部文件的方式。

1.Variables读取python脚本中变量

1
2
3
4
5
6
7
8
9
# 测试套件中
*** Settings ***
# 引入python文件中的变量(xx.py和测试套件在同一个目录下)
Variables get_var.py

*** Test Cases ***
test01
[Documentation] 读取文件中变量
log ${testData}[name]

get_var.py内容如下

1
2
3
4
# -*- coding: utf-8 -*-
testData = {
'name' : u'复仇者联盟4'
}

2.Resource读取文件中关键字

1
2
3
4
5
6
7
8
9
# 测试套件中
*** Settings ***
Resource test_resource_file.txt


*** Test Cases ***
test01
[Documentation] 读取文件中关键字
外部关键词文件

test_resource_file.txt 内容如下

1
2
3
4
*** Keywords ***
外部关键词文件
log 9999999999999999

3.Library读取同级脚本中的函数

1
2
3
4
5
6
7
8
9
*** Settings ***
Library get_var_frome_script.py #在脚本的同级目录下

*** Test Cases ***
test01
[Documentation] 使用脚本中方法获取值
${returnlist} returnlist
log ${returnlist}

get_var_frome_script.py 内容如下

1
2
3
4
5
# -*- coding: utf-8 -*-

# 关键字(相当于python中的函数)
def returnlist():
return [1,2]

4.Library读取自定义库

这里要自定义Library有个条件,就是Library要python能找到它。
有两种方式可以做到:

  • 把Library写到python的site-packages里
  • 把Library加到环境变量里

这里我以上面第一种为例:

在Python27\Lib\site-packages里新建文件夹 MyLibrary

在其中新建文件 get_var_from_script_class.py

内容如下:

1
2
3
4
5
6
7
8
9
# -*- coding: utf-8 -*-

class SubLibrary:
def __init__(self,a=1,b=2):
self.a = a
self.b = b

def returnint(self):
return 3

再新建文件 init.py

1
2
3
4
5
# coding=utf-8
from get_var_from_script_class import SubLibrary
version = '1.0'
class MyLibrary(SubLibrary):
ROBOT_LIBRARY_SCOPE = 'GLOBAL'

脚本中引入库

1
2
3
4
5
6
7
8
*** Settings ***
Library MyLibrary

*** Test Cases ***
test02
[Documentation] 使用脚本中对象获取值
${returnData} returnint
log ${returnData}