使用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}

执行结果:

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

Robot Framework自动化测试框架核心指南电子版试读

相关博文汇总:

RobotFramework下的http接口自动化Create Http Context关键字的使用

RobotFramework下的http接口自动化Get关键字的使用

RobotFramework下的http接口自动化post关键字的使用

如何创建一个自动化测试项目

RobotFramework下的http接口自动化Get Response Body关键字的使用

RobotFramework下的http接口自动化Get Response Status 关键字的使用

RobotFramework下的http接口自动化Get Response header 关键字的使用

RobotFramework下的http接口自动化Set Request Header 关键字的使用

RobotFramework下HttpLibrary库其它关键字

RobotFramework下的http接口自动化Set Request Body 关键字的使用

RobotFramework下的http接口自动化Follow Response关键字的使用

RobotFramework自动化测试框架的基础关键字(一)

RobotFramework自动化测试框架的基础关键字(二)

RobotFramework自动化测试框架的基础关键字(三)

RobotFramework自动化测试框架的基础关键字(四)

RobotFramework自动化测试框架的基础关键字(五)

RobotFramework自动化测试框架-移动手机自动化测试AppiumLibrary介绍

RobotFramework自动化测试框架-移动手机自动化测试Open Application关键字的使用

RobotFramework自动化测试框架-常用断言关键字

RobotFramework自动化测试框架-移动手机自动化测试AppiumLibrary库其它的常见自动化关键字

RobotFramework自动化测试框架-移动手机自动化测试Input Text和Click Button关键字的使用

RobotFramework自动化测试框架-移动手机自动化测试Clear Text关键字的使用

RobotFramework自动化测试框架-移动手机自动化测试Click Element关键字的使用

RobotFramework自动化测试框架-移动手机自动化测试Click A Point关键字的使用

RobotFramework自动化测试框架-移动手机自动化测试Click Element At Coordinates关键字的使用

RobotFramework自动化测试框架-移动手机自动化测试Get Element Location关键字的使用

RobotFramework自动化测试框架-移动手机自动化测试Get Network Connection Status和Set Network Connection Status关键字的使用

RobotFramework自动化测试框架-移动手机自动化测试Element Attribute Should Match关键字的使用

RobotFramework自动化测试框架-DatabaseLibrary库的使用(对数据库的操作)

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

RobotFramework自动化测试框架-Selenium Web自动化(-)-Open Browser和Close Browser

RobotFramework自动化测试框架-MongoDBLibrary库的使用

RobotFramework自动化测试框架-使用Python编写自定义的RobotFramework Lib的更多相关文章

  1. Robot Framework自动化测试框架核心指南-如何使用Java编写自定义的RobotFramework Lib

    如何使用Java编写自定义的RobotFramework Lib 本文包括2个章节 1. Robot Frdamwork中如何调用java Lib库 2.使用 java编写自定义的Lib 本文作者为: ...

  2. RobotFramework自动化测试框架-移动手机自动化测试AppiumLibrary介绍

    在使用AppiumLibrary库时,需要预先安装好Appium自动化工具,Appium官网地址为:http://appium.io/ Appium的GitHub地址为:https://github. ...

  3. RobotFramework自动化测试框架-DatabaseLibrary库的使用(对数据库的操作)

    在自动化过程中,我们经常需要连接不同的数据库,并且对数据库进行很多不同的操作,RobotFramework中,提供了DatabaseLibrary这个库来操作数据库,我们可以按照官网中的说明来安装Da ...

  4. RobotFramework自动化测试框架-Selenium Web自动化(二)关于在RobotFramework中如何使用Selenium很全的总结(上)

    好久没有继续分享关于自动化测试相关的东西了,自动化在现今的测试领域已经越来越重要了,大部分公司在测试岗位招聘中都需要会相关的自动化测试知识.而 RobotFramework自动化测试框架 是自动化测试 ...

  5. RobotFramework自动化测试框架-Selenium Web自动化(三)关于在RobotFramework中如何使用Selenium很全的总结(下)

    本文紧接着RobotFramework自动化测试框架-Selenium Web自动化(二)关于在RobotFramework中如何使用Selenium很全的总结(上)继续分享RobotFramewor ...

  6. RobotFramework自动化测试框架(1)- RobotFramework简介

    对于RobotFramework自动化测试框架,我这里会从三个单元进行阐述,希望能对你有帮助. RobotFramework简介 RobotFramework是什么? Robotframework 是 ...

  7. RobotFramework自动化测试框架-MongoDBLibrary库的使用

    笔者接着 RobotFramework自动化测试框架-DatabaseLibrary库的使用(对数据库的操作) 继续分享robotframework 对数据库中的MongoDB的详细操作. Mongo ...

  8. 最完整的自动化测试流程:Python编写执行测试用例及定时自动发送最新测试报告邮件

    今天笔者就要归纳总结下一整套测试流程,从无到有,实现零突破,包括如何编写测试用例,定时执行测试用例,查找最新生成的测试报告文件,自动发送最新测试报告邮件,一整套完整的测试流程.以后各位只要着重如何编写 ...

  9. Python3+Selenium2完整的自动化测试实现之旅(五):自动化测试框架、Python面向对象以及POM设计模型简介

    前言 之前的系列博客,陆续学习整理了自动化测试环境的搭建.IE和Chrome浏览器驱动的配置.selenium-webdriver模块封装的元素定位以及控制浏览器.处理警示框.鼠标键盘等方法的使用,这 ...

随机推荐

  1. 在Visual Studio2017和2015中开发报表项目

    1.在sqlserver2008的安装目录中是自带了一个报表开发工具的,但在sqlserver2016中没找到,我推测sqlserver2014也没有,哈,我不探寻这个: 2.在VS2015中想要开发 ...

  2. view-xpath

    https://addons.mozilla.org/en-US/firefox/ WebDriver Element Locator

  3. JavaScript push() 方法

    定义和用法: push() :可向数组的末尾添加一个或多个元素,并返回新的长度. 语法 arrayObject.push(newelement1,newelement2,....,newelement ...

  4. eclipse下maven插件搭建springmvc之helloworld

    这几天学习了怎样使用maven,最终还是要回归web项目嘛,所以主要还是使用eclipse插件. 1 下载eclipse maven插件. 其实新版的eclipse已经集成了maven:lunar.m ...

  5. kubernetes controller 实现

    对于kubernetes中不存在的资源类型,我们可以通过自定义资源的方式进行扩展,首先创建customresourcedefinition对象定义资源及其schema,然后就可以创建自定义的资源了,但 ...

  6. 【推荐】CentOS修复OpenSSH用户枚举漏洞

    注:以下所有操作均在CentOS 6.8 x86_64位系统下完成. #漏洞说明# OpenSSH(OpenBSD Secure Shell)是OpenBSD计划组所维护的一套用于安全访问远程计算机的 ...

  7. 再谈前端HTML模板技术

    在web2.0之前,写jsp的时候虽然有es和JSTL,但是还是坚持jsp.后面在外包公司为了快速交货,还是用了php Smart技术. web2.0后,前端模板技术风行. 代表有如下三大类: Str ...

  8. openSUSE设置局域网的时间同步

  9. Ajax/XHR/HTTP/jQuery Ajax

    Ajax即通过XHR API使用js发起的异步网络请求,它不会导致页面刷新,因此是现代Web App的关键技术. HTTP协议是Web开发中最重要的网络协议,HTTP协议详细规定了请求和响应报文. 请 ...

  10. [HNOI 2008]玩具装箱

    Description P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京.他使用自己的压缩器进行压 缩,其可以将任意物品变成一堆,再放到一种特殊的一维容器中.P教授有编号为1.. ...