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)
  • 相关阅读:
    快速幂模板
    部分有关素数的题
    POJ 3624 Charm Bracelet (01背包)
    51Nod 1085 背包问题 (01背包)
    POJ 1789 Truck History (Kruskal 最小生成树)
    HDU 1996 汉诺塔VI
    HDU 2511 汉诺塔X
    HDU 2175 汉诺塔IX (递推)
    HDU 2077 汉诺塔IV (递推)
    HDU 2064 汉诺塔III (递推)
  • 原文地址:https://www.cnblogs.com/ananmy/p/12973006.html
Copyright © 2011-2022 走看看