robotframework调用python类方法_RobotFramework自动化测试框架-使用Python编写自定义的RobotFramework Lib...

使用Python构建Lib工程

可以用来开发Python Lib的IDE工具有很多,常见的有Pycharm,Eclipse with PyDev插件等,而且在RobotFramework官网中也已经提供了RobotFramework-EclipseIDE插件,可以支持Eclipse,插件的访问地址为https://github.com/NitorCreations/RobotFramework-EclipseIDE,可以通过该地址下载插件。

robotframework调用python类方法_RobotFramework自动化测试框架-使用Python编写自定义的RobotFramework Lib..._第1张图片

在这里我们以Eclipse with PyDev插件的形式来构建一个Lib,可以从http://www.pydev.org/下载对应的插件,也可以通过eclipse在线安装的方式进行安装,在线安装安装地址:http://www.pydev.org/updates

robotframework调用python类方法_RobotFramework自动化测试框架-使用Python编写自定义的RobotFramework Lib..._第2张图片

启动eclipse后,点击eclipse菜单Help->Install New Software...,在弹出的对话框中,点击Add按钮, Name中填:Pydev, Location中填http://pydev.org/updates

robotframework调用python类方法_RobotFramework自动化测试框架-使用Python编写自定义的RobotFramework Lib..._第3张图片

robotframework调用python类方法_RobotFramework自动化测试框架-使用Python编写自定义的RobotFramework Lib..._第4张图片

点击OK后,可以看到供安装的插件选项,这里我们选择全部安装。

robotframework调用python类方法_RobotFramework自动化测试框架-使用Python编写自定义的RobotFramework Lib..._第5张图片

然后点击下一步,等待安装完成即可。

robotframework调用python类方法_RobotFramework自动化测试框架-使用Python编写自定义的RobotFramework Lib..._第6张图片

robotframework调用python类方法_RobotFramework自动化测试框架-使用Python编写自定义的RobotFramework Lib..._第7张图片

安装完成后,需要在eclipse中配置Python解释器,在Eclipse菜单栏中,点击Windows ->Preferences. 在对话框中,点击pyDev->Interpreter - Python. Interpreters 点击New按钮, 选择python.exe的路径, 打开后显示出一个包含很多复选框的窗口. 点OK

robotframework调用python类方法_RobotFramework自动化测试框架-使用Python编写自定义的RobotFramework Lib..._第8张图片

插件配置完成后,我们就可以使用eclipse来构建一个python项目,这里我们新建一个ExcelLibrary项目,Project name 中输入ExcelLibrary,然后点击Finish完成项目创建。

robotframework调用python类方法_RobotFramework自动化测试框架-使用Python编写自定义的RobotFramework Lib..._第9张图片

使用Python编写自定义的Lib

在Lib项目创建完成后,我们就可以编写自己的Lib了,这里我们编写一个从Excel中读取数据的Lib示例。

#-*- coding: utf-8 -*-

'''导入操作excel需要第三方的xlrd Library'''

importxlrd'''引入robotFramework的日志输出logger'''

from robot.api importlogger'''定义一个python class'''

classExcelUtil():def __init__(self):return

'''打开一个excel 文件'''

defopen_excel(self,excelfile):try:

data=xlrd.open_workbook(excelfile)returndataexceptException,e:

logger.error(e)'''获取excel中的数据方法,通过参数指定需要读取的excel文件名和sheetname'''

def get_excel_bysheetname(self,excelfile,lineindex=0,sheetname='Sheet1'):

data=self.open_excel(excelfile)

sheet=data.sheet_by_name(sheetname)

rows=sheet.nrows

linedata=sheet.row_values(lineindex)

list=[]for rownum in range(1,rows):

row=sheet.row_values(rownum)ifrow:

app={}for j inrange(len(linedata)):

app[linedata[j]]=row[j]

list.append(app)return list

示例代码中,定义了函数get_excel_bysheetname来获取excel中的数据,可以通过参数来指定需要获取excel哪个sheet中的数据,获取到的sheet数据最终以list的形式返回。List中的每一条记录都是以python中的字典形式存储进去。

我们可以调用一下我们写的lib是否可以正常使用,在RIDE中,我们导入刚刚写的Lib。

robotframework调用python类方法_RobotFramework自动化测试框架-使用Python编写自定义的RobotFramework Lib..._第10张图片

然后通过RIDE中F5快捷键,可以看到我们自定义的关键字。

robotframework调用python类方法_RobotFramework自动化测试框架-使用Python编写自定义的RobotFramework Lib..._第11张图片

导入后,我们可以通过一个测试案例调用一下,并且将结果以log形式输出。

${list} Get Excel Bysheetname E:\\task.xls

log ${list}

执行结果:

robotframework调用python类方法_RobotFramework自动化测试框架-使用Python编写自定义的RobotFramework Lib..._第12张图片

【原文归作者所有,欢迎转载,但是保留版权,并且转载时,需要注明出处】

相关博文汇总:

你可能感兴趣的:(robotframework调用python类方法_RobotFramework自动化测试框架-使用Python编写自定义的RobotFramework Lib...)