接口测试入门(二)

在用例知道了以后,首先我们考虑怎么样来操作这个Excel表。拿到这个表的内容。

其中内容包括:行数,列数,单元格的内容等等。

 

主要运用到Python的xlrd,xlutils.copy的库。

在开始我们操作表,需要一个表的地址,拿到表。

1
file_name = "../dataconfig/case.xls"<br>data = xlrd.open_workbook(file_name)<br>tables = data.sheets()[sheet_id] #sheet_id需要传进去<br>return tables

这段代码可以放进 __init__里面,重构一下,构造一个拿到表数据的方法。因为后面所有的方法都需要打开文件。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#获取单元格的行数
    def get_lines(self):
        tables = self.data
        return tables.nrows
 
    #获取某一个单元格的内容
    def get_cell_value(self,row,col):
        return self.data.cell_value(row,col)
 
    #写入数据
    def write_value(self,row,col,value):
        '''
        写入excel数据
        row,col,value
        '''
        read_data = xlrd.open_workbook(self.file_name)
        write_data = copy(read_data)
        sheet_data = write_data.get_sheet(0)
        sheet_data.write(row,col,value)
        write_data.save(self.file_name)
 
    #根据对应的caseid 找到对应行的内容
    def get_rows_data(self,case_id):
        row_num = self.get_row_num(case_id)
        rows_data = self.get_row_values(row_num)
        return rows_data
 
    #根据对应的caseid找到对应的行号
    def get_row_num(self,case_id):
        num = 0
        clols_data = self.get_cols_data()
        for col_data in clols_data:
            if case_id in col_data:
                return num
            num = num+1
 
 
    #根据行号,找到该行的内容
    def get_row_values(self,row):
        tables = self.data
        row_data = tables.row_values(row)
        return row_data
 
    #获取某一列的内容
    def get_cols_data(self,col_id=None):
        if col_id != None:
            cols = self.data.col_values(col_id)
        else:
            cols = self.data.col_values(0)
        return cols<br><br><br>
posted @ 2019-03-06 22:05  魔法少女希维尔  阅读(201)  评论(0)    收藏  举报
编辑推荐:
· 一次 .NET 性能优化之旅:将 GC 压力降低 99%
· MySQL索引完全指南:让你的查询速度飞起来
· 一个字符串替换引发的性能血案:正则回溯与救赎之路
· 为什么说方法的参数最好不要超过4个?
· C#.Net 筑基-优雅 LINQ 的查询艺术
阅读排行:
· 一次 .NET 性能优化之旅:将 GC 压力降低 99%
· 32岁入行STM32迟吗?
· C#.Net筑基-泛型T & 协变逆变
· 花150元,我用 AI 做出了千万播放的爆款视频!保姆级教程+完整提示词
· 【EF Core】DbContext是如何识别出实体集合的
点击右上角即可分享
微信分享提示