• 数据驱动(四)


    数据驱动

    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:Python27Libsite-packagesExcelLibraryExcelLibrary.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)。

    这里写图片描述

  • 相关阅读:
    模板方法模式
    Centos 6.4 python 2.6 升级到 2.7
    Python 在Visual studio 中做单元测试进行TDD开发
    C# 代码转换到Python
    VMware Network Adapter VMnet1和VMnet8 未识别的网络的解决方法
    Visual Studio 启动加速
    查询Sqlserver 表结构信息 SQL
    HTTP发送请求模拟
    【Xamarin 开发 IOS --使用 Storyboard Segue 实作 UIViewController 的切换 (实例)】
    【Xamarin 开发 IOS --IOS 页面导航概念Segue】
  • 原文地址:https://www.cnblogs.com/feifei-cyj/p/7739230.html
Copyright © 2020-2023  润新知