Robot Framework之python脚本调用

目录

目录结构

​编辑

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

Python函数作为关键字

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

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

2、调用方法:

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

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

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

2、调用方法:

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

 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

二、通过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

 比如,在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

  • 19
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
robotframework调⽤python类⽅法_(五)RobotFramework基 础。。。 上⼀⼩节,你已经感受到了 Robot Framework 的基本说法,这⼀⼩节你将会看到 Robot Framework 更多强⼤的⽤法。 if 语句 通过 "run keyword if" 关键字可以编写 if 分⽀语句。 *** Test Cases *** test case8 ${a} Set variable 59 run keyword if ${a}>=90 log 优秀 ... ELSE IF ${a}>=70 log 良好 ... ELSE IF ${a}>=60 log 及格 ... ELSE log 不及格 ⾸先定义变量 a 等于 59 。 If 判断 a ⼤于等于 90 ,满⾜条件 log 输出 "优秀 "; 不满⾜上⾯的条件,接着 else if 判断 a ⼤于等于 70 ,满⾜条件 log 输出 "良好"; 不满⾜上⾯的条件,接着 else if 判断 a ⼤于等于 60 ,满⾜条件 log 输出 "及格"; 上⾯的条件都不满⾜,else log 输出"不及格"。 注意 sele if 和 else 前⾯的三个点点点(...) for 循环 在 Robot Framework 中编写循环通过 ":FOR" 。 1、循环 0~9 。 *** Test Cases *** test case9 :FOR ${i} IN RANGE 10 \ log ${i} 通过":FOR"定义 for 循环;IN RANGE ⽤于指定循环的范围。 2、遍历列表。 *** Test Cases *** test case10 @{abc} create list a b c : FOR ${i} IN @{abc} \ log ${i} "create list" 关键字⽤来定义列表(a,b,c),"@{}"⽤来存放列表。通过过 ":FOR" 循环来来遍历@{abc}列表中的字符。 强⼤的 Evaluate 为什么说"Evauate"关键字强⼤呢。因为通过它可以使⽤ Python 语⾔中所提供的⽅法。 1、 ⽣成随即数 在 Python 中我们可以这样来引和并使⽤⽅法: C:\Users\fnngj> python Python 3.6.1 (v3.6.1:69c0db5, Mar 21 2017, 18:41:36) [MSC v.1900 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> import random >>> random.randint(1000, 9999) 9777 random 模块的 randint()⽅法⽤于获取随机数。 在 Robot Framework 中使⽤ "Evauate" 也可以调⽤ Python 所提供的 random 模块下的 randint()⽅法。 *** Test Cases *** test case11 ${d} Evaluate random.randint(1000, 9999) random log ${d} 2、 调⽤⾃⼰编写的 Python 程序 ⾸先创建 D:/rf_test/count.py ⽂件。 def add(a,b): return a + b if __name__ == "__main__": a = add(4,5) print(a) 通过add函数实现两个数相加,这是再简单不过的⼩程序了。 下⾯就通过 Robot Framework 调⽤ count.py ⽂件中的 add()函数。 *** Test Cases *** test case12 Import Library D:/rf_test/count.py ${a} Evaluate int(4) ${b} Evaluate int(5) ${add} add ${a} ${b} log ${add} 在 Robot Framework 中所有的内容都是字符串类型,所以,需要通过 "Evaluate" 将 4 和 5 转化为 int 类型后,再调⽤ add 计算两个 数的和。 注释 Robot Framework 中添加注释也⾮常简单。"Comment" 关键字⽤于设置脚本中的注释。除此之外,你也可以像 Python ⼀样使 ⽤"#"号进⾏注释。 *** Test Cases *** test case13 Comment 这是注释 #这也是注释 如果你熟悉 Python 编程语⾔,那么 Robot Framework ⼏乎没有实现

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值