zoukankan      html  css  js  c++  java
  • python操作excel作业---openpyxl

    '''
    作业一:
    1, 编写上课的 login 函数的测试用例方法;
    2, 通过run.py收集和运行所有的测试;
    3, 使用htmltestrunner生成测试报告。
    '''
    
    import unittest
    import os
    from  HTMLTestRunnerNew import HTMLTestRunner
    
    #初始化一个加载器loader
    loader  = unittest.TestLoader()
    
    #获取文件tests的路径
    dir_path  = os.path.dirname(os.path.abspath(__file__))
    case_path = os.path.join(dir_path,'tests')
    
    #discover所有的cases
    test_suite = loader.discover(case_path)
    
    #执行用例 生成html报告
    with open('test_report.html','wb') as f:
        runner = HTMLTestRunner(
            f,
            title='作业1的自动化测试报告',
            description='测试报告描述',
            tester='juan cao'
        )
        runner.run(test_suite)
    
    
    
    '''
    作业二:
    1, 编写上课的 login 函数测试用例,保存到 cases.xlsx 文件;
    2,通过 openpyxl 读取所有的测试用例数据。
    3, 每一行的用例可以通过列表接收,也可以通过字典接收。
    4, 不需要关闭文件,不需要封装。
    '''
    import openpyxl
    #打开excel文件
    workbook = openpyxl.load_workbook('cases.xlsx')
    
    #读取表单
    sheet = workbook['Sheet1']
    
    #获取数据
    #方法一 嵌套列表 切片
    #获取所有的行
    rows = list(sheet.rows)
    data = []
    for row in rows[1:]:     #去除第一行标题
        data_row = []
        for each in row:
            data_row.append(each.value)
        data.append(data_row)
    print('列表嵌套列表:{}'.format(data))
    
    #方法二、嵌套列表  枚举
    rows = list(sheet.rows)
    list4 = []
    for k,v in enumerate(rows):
        if k != 0:
            list3 = []
            for each in v:
                list3.append(each.value)
            list4.append(list3)
    print('列表嵌套列表:{}'.format(list4))
    
    
    #嵌套字典方法一--zip()方法,字典可读性更强
    rows = list(sheet.rows)
    key_list = []
    for each in rows[0]:
        key_list.append(each.value)
    
    data = []
    for row in rows[1:]:
        dic = {}
        data_row = []
        for each1 in row:
            data_row.append(each1.value)
        dic = dict(zip(key_list,data_row))
        data.append(dic)
    print('列表嵌套字典:{}'.format(data))
    
    
    #嵌套字典方法二----enumerate()
    data = []
    rows = list(sheet.rows)
    headers = []
    for title in rows[0]:
        headers.append(title.value)
    
    for row in rows[1:]:
        row_data = {}
        for idx,cell in enumerate(row):
            row_data[headers[idx]] = cell.value
        data.append(row_data)
    print(data)
  • 相关阅读:
    Makefile中的ifeq 多条件使用
    Android引入动态库so的方法
    在Win10上使用Visual Studio2015的Android模拟器
    linux下insmod模块出现“Invalid parameters"
    在干净的ubuntu 14.10上编译Qemu2.2.0的过程
    Windows下struct和union字节对齐设置以及大小的确定(一 简介和结构体大小的确定)
    C++类中一个构造函数调用另一个构造函数
    用汇编语言角度来理解C语言的一些问题
    TCP协议的安全性分析
    MySQL入门,第四部分,学会创建、删除表
  • 原文地址:https://www.cnblogs.com/ananmy/p/12973006.html
Copyright © 2011-2022 走看看