码迷,mamicode.com
首页 > 编程语言 > 详细

RobotFramework自动化测试框架-使用Python编写自定义的RobotFramework Lib

时间:2018-05-01 20:48:38      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:cat   values   book   新建   try   开发   python解释器   eid   自动化测试框架   

  使用Python构建Lib工程

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

技术分享图片

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

技术分享图片

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

技术分享图片

技术分享图片

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

技术分享图片

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

技术分享图片

技术分享图片

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

技术分享图片

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

技术分享图片

使用Python编写自定义的Lib

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

# -*- coding: utf-8 -*- 
‘‘‘
导入操作excel需要第三方的xlrd Library
‘‘‘
import xlrd
‘‘‘
引入robotFramework的日志输出logger
‘‘‘
from robot.api import logger
‘‘‘
定义一个python class
‘‘‘
class ExcelUtil():
    def __init__(self):
        return
    ‘‘‘
              打开一个excel 文件
    ‘‘‘
    def open_excel(self,excelfile):
        try:
            data = xlrd.open_workbook(excelfile)
            return data
        except Exception,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)
            if row:
                app = {}
                for j in range(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。

技术分享图片

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

技术分享图片

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

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

log   ${list}    

执行结果:

技术分享图片

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

RobotFramework自动化测试框架-使用Python编写自定义的RobotFramework Lib

标签:cat   values   book   新建   try   开发   python解释器   eid   自动化测试框架   

原文地址:https://www.cnblogs.com/laoqing/p/8976598.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!