接口测试框架——第二篇

今天完善excel_module.py文件,上代码:

# coding: utf-8

import xlrd

class ReadExcel():

    def __init__(self, file_name):
        self.data = xlrd.open_workbook(file_name)

    def close(self):
        self.data.close()

    def get_sheet_by_index(self, index):
        '''
        通过表的索引获取表格的内容
        :param index: sheet的索引
        :return: 返回sheet的内容
        '''
        __sheet = self.data.sheet_by_index(index)
        return __sheet

    def get_sheet_by_name(self, name):

        '''
        通过sheet名称获取表的内容
        :param name: sheet名称
        :return: 返回sheet对象
        '''

        __sheet = self.get_sheet_by_name(name)
        return __sheet

    def get_row_values(self, sheet_obj, row_index):
        """
        获取指定行的内容
        :param sheet_obj: 接收sheet对象
        :param row_index: 行的索引
        :return: 返回指定行的内容,类型为列表
        """
        __values_list = sheet_obj.row_values(row_index)
        return __values_list

    def get_col_values(self, sheet_obj, col_index):
        """
        获取指定列的内容
        :param sheet_obj: 接收sheet对象
        :param col_index: 列的索引
        :return: 返回指定列的内容,类型为列表
        """
        __values_list = sheet_obj.col_values(col_index)
        return __values_list

    def get_number_of_rows(self, sheet_obj):
        """
        获取指定sheet行数
        :param sheet_obj: 接收sheet对象
        :return: 返回sheet总行数
        """
        __number_of_rows = sheet_obj.nrows
        return __number_of_rows

    def get_number_of_cols(self, sheet_obj):
        """
        获取指定sheet列数
        :param sheet_obj: 接收sheet对象
        :return: 返回sheet总列数
        """
        __number_of_cols = sheet_obj.ncols
        return __number_of_cols

    def get_cell_value(self, sheet_obj, row_index, col_index):
        """
        获取指定单元格的内容
        :param sheet_obj: 接收sheet对象
        :param row_index: 行索引
        :param col_index: 列索引
        :return: 返回单元格的内容
        """
        __cell_value = sheet_obj.cell(row_index, col_index).value
        return __cell_value

    def get_all_content(self, sheet_obj):
        """

        :param sheet_obj:
        :return:
        """
        __content = []
        # 总行数
        __rows_num = self.get_number_of_rows(sheet_obj)
        for tmp in range(__rows_num):
            tmp_list = []
            # 遍历行内容
            __row_value = self.get_row_values(sheet_obj, tmp)
            for i in __row_value:

                i = i.encode('utf8')
                # 将每行内容放到一个列表里
                tmp_list.append(i)
            __content.append(tmp_list)
        return __content

把读excel方法的单个方法提取出来,为的是后面调用的时候方便——面向对象的思想。具体方法的说明已经写的很清楚了。

如果你看不明白,那你就需要复习前面的内容了,

接口测试基础——第5篇xlrd模块 参考这一篇。

如果还是不明白,那就多百度吧,代码就是这么膈应人,慢慢来。如果有问题可以给我留言或者发公众号消息,船长看到后会第一时间回复大家。

原文发布于微信公众号 - 自动化测试实战(gh_839e78b6ba28)

原文发表时间:2017-11-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏北京马哥教育

Python 基础语法

Python语言与Perl,C和Java等语言有许多相似之处。但是,也存在一些差异。 在本章中我们将来学习Python的基础语法,让你快速学会Python编程...

4116
来自专栏大前端_Web

详解ES7的async及webpack配置async

版权声明:本文为吴孔云博客原创文章,转载请注明出处并带上链接,谢谢。 https://blog.csdn.net/wkyseo/articl...

4432
来自专栏coding...

swift3.0 基础练习-实现99乘法表

723
来自专栏杨建荣的学习笔记

shell基础学习总结(二) (r3笔记第72天)

-->关于shell编程之文件比较 可以使用如下的选项来做文件的比较。有了这些选项,文件的比较来说都是游刃有余。 -d file file是否存在...

2554
来自专栏JavaQ

你写的单例真的对吗

单例模式是设计模式中最容易理解、最容易上手的设计模式,同时也是最容易出错的设计模式。它的实现写法有多种,但是并不都是正确的写法。 1饿汉模式 饿汉,即迫切的、...

3244
来自专栏蓝天

grep的常用命令语法

1. 双引号引用和单引号引用 在g r e p命令中输入字符串参数时,最好将其用双引号括起来。例如:“m y s t r i n g”。这样做有两个原因,一是以...

712
来自专栏西二旗一哥

iOS - Dissecting objc_msgSend on ARM64

我们的朋友 ldp 又出现了。这回它读取了 x12 中指针,这个指针指向了要查找的bucket。每个bucket包含了一个选择器和一个 IMP 。 x9 现在包...

1194
来自专栏dodott的专栏

angularJs中筛选功能-angular.filter-1

通过bower:通过在你的终端执行:$ bower install angular-filte

1404
来自专栏aCloudDeveloper

总结:常用的通用数据处理指令

作者:bakari  时间:2012.4.21 1、 操作数类型 Imm立即操作数 Reg寄存器操作数 Mem内存操作数 2、 操作数寻址方式 立即数寻址 寄存...

2028
来自专栏Scott_Mr 个人专栏

React Native 系列(一) -- JS入门知识

38110

扫码关注云+社区

领取腾讯云代金券