目录
目录结构
编辑
Python函数作为关键字
一、通过Import Library关键字在*** Test Cases ***中引用python脚本
编辑
二、通过Library关键字在*** Settings ***中引入python脚本
Python类作为测试库
一、通过Library关键字在*** Settings ***引入python脚本中的类
二、通过Library关键字在*** Settings ***中导入sitepackage中的类
首先在site-packages目录下创建CustomLibrary目录,用于放自定义的library库
问题总结
推荐做法:
~/RobotFramework/TestDemo/PythonScript文件夹下的文件:
__init__.py
calculate.py
printmsg.py
~/RobotFramework/TestDemo下的show.py
1、直接在测试用例中使用关键字【Import Library .py文件的绝对路径】,即可使用该py文件中定义的函数。
2、调用方法:
robot --test "01.通过Import Library关键字引用python脚本" /home/youngyoung/RobotFramework/TestDemo
1、直接在Settings中使用关键字【Library .py文件的相对路径】,即可使用该py脚本中定义的函数。
2、调用方法:
robot --test "01.通过Library关键字引入python脚本" /home/youngyoung/RobotFramework/TestDemo
在robot文件的
Settings
中声明,有两种方式:
- 模块法:点
.
作为分隔符- 路径法:斜杠
/
作为分隔符在
Settings
表中声明用python类做的测试库
,用模块法在
Settings
表中声明资源文件和变量文件
,用路径法或模块法模块法必须创建__init__.py文件
1、在Settings表中声明用python类做的测试库,用模块法
2、调用方法:
注意:1.必须将工作目录切换到TestDemo根目录
2.必须加上 -P参数将文件所在目录添加到PythonPath下,否则执行可能会报错,找不到Calculator这个类
TestDemo]$ robot -P . --test "01.通过Library关键字引入python脚本类中方法" /home/youngyoung/RobotFramework/TestDemo
~/.local/lib/python2.7/site-packages/CustomLibrary/calculate.py
或
D:\python\python27\Lib\site-packages\CustomLibrary\calculate.py
比如,在sitepackages目录下创建一个CustomLibrary文件夹,还需要在CustomLibrary文件夹下创建__init__.py文件,并且其中的类必须是CustomLibrary(类名要与库文件夹名称一致)。
1、在Settings表中声明用python类做的测试库,用模块法
2、调用方法:
robot --test "01.通过Library导入sitepackage中的类方法" /home/youngyoung/RobotFramework/TestDemo
以下自己遇到的一些问题的debug
1、尽量在文件的开头加上:
# -- coding: utf-8 --
或者
#coding=utf-8
因为python默认编码是ascii,所以如果代码中有(),或中文等等符号,会报错,提示编码不正确
2、如果写的代码里边有中文,尽量在文件开头加上以下3行代码:
import sys
reload(sys)
sys.setdefaultencoding("utf-8")
3、如果在__init__方法中,定义了形参。则必须在导入库的时候,也要提供对应的参数。 不然会提示少给了变量的报错。
4、修改代码后,及时把对应的.pyc文件删除并且重启下robotframework 后,再导入。
5、如果还是有其他的报错,请点击Tools→View RIDE log ,查看并debug。
~/RobotFramework/TestDemo2/Libraries/python文件夹 —— 存放python文件
__init__.py —— 空文件
add.py:
double.py:
~/RobotFramework/TestDemo2/Libraries/__init__.py —— 空文件
~/RobotFramework/TestDemo2/TestCase文件夹 —— 存放测试用例
TestSuite01.robot:
TestDemo2]$ robot --test test01 /home/youngyoung/RobotFramework/TestDemo2
TestSuite02.robot :
TestDemo2]$ robot -P . --test test02 /home/youngyoung/RobotFramework/TestDemo2