Robot Framework之python脚本调用

目录

目录结构

​编辑

Python函数作为关键字

 一、通过Import Library关键字在*** Test Cases ***中引用python脚本

​编辑

二、通过Library关键字在*** Settings ***中引入python脚本 

 Python类作为测试库

一、通过Library关键字在*** Settings ***引入python脚本中的类 

二、通过Library关键字在*** Settings ***中导入sitepackage中的类

首先在site-packages目录下创建CustomLibrary目录,用于放自定义的library库 

问题总结

推荐做法:



目录结构

Robot Framework之python脚本调用_第1张图片

~/RobotFramework/TestDemo/PythonScript文件夹下的文件:

__init__.py

 

calculate.py 

Robot Framework之python脚本调用_第2张图片

printmsg.py 

Robot Framework之python脚本调用_第3张图片

 ~/RobotFramework/TestDemo下的show.py

Python函数作为关键字

 一、通过Import Library关键字在*** Test Cases ***中引用python脚本

1、直接在测试用例中使用关键字【Import Library    .py文件的绝对路径】,即可使用该py文件中定义的函数。

2、调用方法:

robot --test "01.通过Import Library关键字引用python脚本" /home/youngyoung/RobotFramework/TestDemo

Robot Framework之python脚本调用_第4张图片

二、通过Library关键字在*** Settings ***中引入python脚本 

1、直接在Settings中使用关键字【Library    .py文件的相对路径】,即可使用该py脚本中定义的函数。

2、调用方法:

robot --test "01.通过Library关键字引入python脚本" /home/youngyoung/RobotFramework/TestDemo

Robot Framework之python脚本调用_第5张图片

 Python类作为测试库

在robot文件的Settings中声明,有两种方式:

  • 模块法:点 .作为分隔符
  • 路径法:斜杠 /作为分隔符

Settings表中声明用python类做的测试库,用模块法

Settings表中声明资源文件和变量文件,用路径法或模块法

模块法必须创建__init__.py文件

一、通过Library关键字在*** Settings ***引入python脚本中的类 

1、在Settings表中声明用python类做的测试库,用模块法

2、调用方法:

注意:1.必须将工作目录切换到TestDemo根目录

           2.必须加上 -P参数将文件所在目录添加到PythonPath下,否则执行可能会报错,找不到Calculator这个类

TestDemo]$ robot -P . --test "01.通过Library关键字引入python脚本类中方法" /home/youngyoung/RobotFramework/TestDemo

Robot Framework之python脚本调用_第6张图片

二、通过Library关键字*** Settings ***中导入sitepackage中的类

首先在site-packages目录下创建CustomLibrary目录,用于放自定义的library库 

~/.local/lib/python2.7/site-packages/CustomLibrary/calculate.py

D:\python\python27\Lib\site-packages\CustomLibrary\calculate.py

Robot Framework之python脚本调用_第7张图片

Robot Framework之python脚本调用_第8张图片

Robot Framework之python脚本调用_第9张图片

 比如,在sitepackages目录下创建一个CustomLibrary文件夹,还需要在CustomLibrary文件夹下创建__init__.py文件,并且其中的类必须是CustomLibrary(类名要与库文件夹名称一致)。

Robot Framework之python脚本调用_第10张图片

Robot Framework之python脚本调用_第11张图片

Robot Framework之python脚本调用_第12张图片

 1、在Settings表中声明用python类做的测试库,用模块法

2、调用方法:

robot --test "01.通过Library导入sitepackage中的类方法" /home/youngyoung/RobotFramework/TestDemo

Robot Framework之python脚本调用_第13张图片

问题总结

以下自己遇到的一些问题的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。

推荐做法:

Robot Framework之python脚本调用_第14张图片

~/RobotFramework/TestDemo2/Libraries/python文件夹 —— 存放python文件

__init__.py —— 空文件

add.py:

double.py:

Robot Framework之python脚本调用_第15张图片

~/RobotFramework/TestDemo2/Libraries/__init__.py —— 空文件

~/RobotFramework/TestDemo2/TestCase文件夹 —— 存放测试用例

TestSuite01.robot:

Robot Framework之python脚本调用_第16张图片

TestDemo2]$ robot --test test01 /home/youngyoung/RobotFramework/TestDemo2

TestSuite02.robot :

Robot Framework之python脚本调用_第17张图片

TestDemo2]$ robot -P . --test test02 /home/youngyoung/RobotFramework/TestDemo2

你可能感兴趣的:(robotframework,python)