Python操作Excel,并结合unittest单元测试框架
第一步:写Excel操作方法
excel_operate.py文件
from openpyxl import load_workbook #引入模块 class MyExcel: def __init__(self,filepath,sheetname): # 初始化函数在实例化对象时调用
self.wb = load_workbook(filepath)
self.sh = self.wb[sheetname] # 读取指定单元格的数据
def read_data(self,row,column):
return self.sh.cell(row,column).value # 读取所有数据
def read_alldate(self):
for index in range(1,self.sh.max_row+1):
print('行号:',index)
for i in range(1,self.sh.max_column+1):
print('列号:',i,'内容:',self.sh.cell(row=index,column=1).value) # 写入数据
def write_data(self,row,column,content):
self.sh.cell(row,column).value = content # 保存数据
def save_data(self,filepath):
self.wb.save(filepath) # excel = MyExcel('testdata.xlsx','Sheet1')
# print(excel.read_data(2,1))
#
# excel.write_data(4,1,'12345678936')
# excel.write_data(4,2,'a1234567')
# excel.save_data('testdata.xlsx')
第二步:写测试用例
test_excel_operate.py文件
import unittest
from excel_operate import MyExcel class TestExcel(unittest.TestCase): @classmethod
def setUpClass(cls):
cls.excel = MyExcel('testdata.xlsx','Sheet1') # 测试用例 读
def test_read_data(self):
pass # 测试用例 写
def test_write_data(self):
# 调用自己的写方法
self.excel.write_data(5, 1, '')
self.excel.write_data(5, 2, 'a1234567')
self.excel.save_data('testdata.xlsx')
第三步:执行测试用例,生成HTML报告
TestSuite_Excel.py文件
import unittest
from HTMLTestRunnerNew import HTMLTestRunner
from test_excel_operate import TestExcel
import time
import os if __name__ == '__main__':
s = unittest.TestSuite()
s.addTests(unittest.TestLoader().loadTestsFromTestCase(TestExcel)) now = time.strftime('%Y%m%d_%H%M%S') filename = open(os.getcwd() + '/ExcelUnittestReport_' + now + '.html','wb')
runner = HTMLTestRunner(
stream = filename,
title = 'Excel单元测试报告',
description = 'Excel单元测试报告',
tester = 'lixiaozhe'
)
runner.run(s)
Python操作Excel,并结合unittest单元测试框架的更多相关文章
- Python+selenium之简单介绍unittest单元测试框架
Python+selenium之简单介绍unittest单元测试框架 一.unittest简单介绍 unittest支持测试自动化,共享测试用例中的初始化和关闭退出代码,在unittest中最小单元是 ...
- Python+Selenium学习笔记16 - unittest单元测试框架
unittest单元测试框架包括 Test Case, Test Suite, Test Runner, Test Fixture Test Cases 组成Test Suite, Test Run ...
- Python+Selenium框架设计篇之-简单介绍unittest单元测试框架
前面文章已经简单介绍了一些关于自动化测试框架的介绍,知道了什么是自动化测试框架,主要有哪些特点,基本组成部分等.在继续介绍框架设计之前,我们先来学习一个工具,叫unittest. unit ...
- Python+Selenium ----unittest单元测试框架
unittest是一个单元测试框架,是Python编程的单元测试框架.有时候,也做叫做“PyUnit”,是Junit的Python语言版本.这里了解下,Junit是Java语言的单元测试框架,Java ...
- Selenium+Python ---- 免登录、等待、unittest单元测试框架、PO模型
1.免登录在进行测试的过程中难免会遇到登录的情况,给测试工作添加了工作量,本文仅提供一些思路供参考解决方式:手动请求中添加cookies.火狐的profile文件记录信息实现.人工介入.万能验证码.去 ...
- Selenium基于Python web自动化基础二 -- 免登录、等待及unittest单元测试框架
一.免登录在进行测试的过程中难免会遇到登录的情况,给测试工作添加了工作量,本文仅提供一些思路供参考解决方式:手动请求中添加cookies.火狐的profile文件记录信息实现.人工介入.万能验证码.去 ...
- Selenium(十八):unittest单元测试框架(四) HTML测试报告
1. HTML测试报告 对测试人员来而言,测试的产出很难衡量.换句话说,测试人员的价值比较难以量化和评估,相信这一点对软件测试人员来说深有体会.我们花费了很多时间与精力所做的自动化测试也是如此.所以, ...
- unittest单元测试框架前言
一.在我们没有学习过python语言的时候领导让我们做接口测试 我们都使用工具来做测试,一般常用的如jemeter,postman这些个工具,我来推荐使用postman 这个工具来进行接口测试,有的小 ...
- Selenium 2自动化测试实战26(unittest单元测试框架)
一.unittest单元测试框架 1.认识单元测试 1.断言方法 #计算器类 #coding:utf-8 #计算器类 class Count: def __init__(self,a,b): self ...
- Selenium实战(四)——unittest单元测试框架1
Python中的单元测试框架包含:doctest.unittest.pyttest.nose等,使用unittest单元测试框架不需要自行定义断言失败的提示,并且当一个测试函数执行失败后,后面的测试函 ...
随机推荐
- 出现GC overhead limit exceeded 的解决方案
当我在使用MyEclispe IDE创建Maven项目的时候出现 "An internal error occurred during: “Build Project”. GC overh ...
- springmvc中url-url-pattern /和/*的区别
在使用springmvc时,都会在web.xml中配置一个dispatchservlet,如下: <listener> <listener-class> org.springf ...
- 考勤助手——基于CS三层结构的子系统设计
因为小组比较倾向于cs分层结构的风格,所以基于对考勤助手最初的体系架构的设计进行了子系统的分层设计,如下图: 1.教务老师安排课程子系统 2.教务老师查询相关信息的子系统 3.任课教师管理考勤子系统 ...
- MapReduce-多个输出(使用MultipleOutput,不指定reduce任务个数)
多个输出 FileOutputFormat及其子类产生的文件放在输出目录下.每个reduce一个文件并且文件由分区号命名:part-r-00000,part-r-00001,等等.有时可能需要对输出的 ...
- Elasticsearch Suggester 学习
suggester搜索就像百度搜索框中的提示类似. Elasticsearch 中提供类似的搜索功能. 答案就在Suggesters API. Suggesters基本的运作原理是将输入的文本分解为t ...
- URAL 2062 树状数组
一个长度为n的数组 每次对lr区间进行修改 如果要修改i 则对i i*2 i*3...都修改 最后单点查询值 思想是利用树状数组维护每一个区间的更新值 查询的时候得出这个点的所有因子的查询值的和 加上 ...
- Javascript中的prototype和__proto__的联系区别
转载至http://www.cnblogs.com/sinstone/p/5136871.html 一.联系 prototype和__proto__都指向原型对象,任意一个函数(包括构造函数)都有 ...
- vue.js计算属性 vs methods
计算属性:Vue.js 模板内的表达式非常便利,但是缺点就是只能用于简单的运算,如果模板中有太多的逻辑运算会让模板不堪重负且难以维护.恰恰计算属性可以处理复杂的逻辑运算,也就是说对于任何复杂逻辑你都应 ...
- eclipse - unresolved inclusion: <stdio.h>
在linux 上安装eclipse上配置好cdt后,新建项目时,当查找头文件时, 却出现如下错误提示: unresolved inclusion: <stdio.h> 这是c/c++标准库 ...
- 路由器分配的IP地址
在IP地址范围内,一部分地址将保留作为私人IP地址空间,专门用于内部局域网使用,这些地址如下表: A类 10.0.0.0-10.255.255.255 网络数:1 B类 172.16.0.0-172. ...