码迷,mamicode.com
首页 > 其他好文 > 详细

数据驱动(四)

时间:2017-10-26 23:04:57      阅读:269      评论:0      收藏:0      [点我收藏+]

标签:功能实现   fonts   targe   form   输入   整数   文本   类型   右击   

数据驱动

RIDE提供的库:

  1. Create List
  2. Get File
  3. Import Variables
  4. Template
  5. ExcelLibrary

自定义库:DataCenter.py

  1. Read Data From Excel
  2. Read Excel File
  3. Read CSV File
  4. Read Column From Excel
  5. Get Sheet Values From Excel

一、数据驱动测试注重于测试软件的功能性需求,也即数据驱动测试执行程序所有功能需求的输入条件。实现KISS。

二、ExcelLibrary方式

还是以登录测试为例讨论ExcelLibrary方式。

技术分享

安装:pip install robotframework-excellibrary

技术分享

数据文件:%{G_DATACENTER}\login_info.xls

  • 数据目录

技术分享

  • 数据源

Excel问题:对长度过长的数字以科学计数的格式处理,结果改变了密码值。

技术分享

解决方案

  1. 在单元格数字前加上英文单引号’:例如,’123456787901234567890
  2. 先改单元格格式为文本,再输入数字:右击单元格,设置单元格格式,选择“文本”
  3. 修改单元格自定义格式: 右击单元格,设置单元格格式,选择“自定义”,类型改”G/通用格式”

技术分享

用例:

  • 打开Excel文件:Open Excel
  • 获取每一列内容:Get Column Values
  • 登录网站:GUI_Login
  • 断言:用户名与密码是否正确

读取Excel的缺点和问题

  • 缺点:其存储方式是读取的每一项内容都会加上列名,对于数据的处理不是特别优雅。

技术分享

源代码:C:\Python27\Lib\site-packages\ExcelLibrary\ExcelLibrary.py

技术分享

  • 问题:python读取数字的时候,把所有的数字都变成了浮点数。用例因为数据错误而 FAIL。

技术分享

  • 修改源代码,处理浮点数的问题

技术分享

定义两个方法:

def _keep_integer_type_from excel(self, value): 
def _is_number(self, value):

功能实现:如果输入是数字而且是整数,去掉浮点数并存储为字符串类型。在输入用户名和密码时,如果是整型或者浮点型都会报错。

  • 问题:用方法 def _keep_integer_type_from excel(self, value) 转换数据时,因为过长的数字不再以科学计数的格式处理。python读取时,存储为unicode类型。所以,return str(int(value))报错,“not all arguments converted during string formatting”。

技术分享

修改方法 def _keep_integer_type_from excel(self, value),让其不再转换unicode类型数据。当然,也可以把Excel数据全部以上面三个解决方案处理而无需增加python的两个方法(def _keep_integer_type_from excel(self, value) & def _is_number(self, value))。不过,这样一来也失去了程序的灵活性(flexibility)。

技术分享

数据驱动(四)

标签:功能实现   fonts   targe   form   输入   整数   文本   类型   右击   

原文地址:http://www.cnblogs.com/feifei-cyj/p/7739230.html

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