步骤:
1.先导入unittest
2.编写一个测试类(继承unittest.TestCase)
3.编写测试用例类,一个方法就是一条用例
4.加载测试用例,有三种方式:加载测试方法,加载测试类,加载测试模块
5.执行测试,生成测试报告
例子:
1. 新建一个测试类:
class mathematics:
def two_add(self,a,b): # 两数相加
return a+b
def two_sub(self,a,b): # 两数相减
return a+b
2.编写测试方法:
import unittest
from ddt import ddt,data
from wen.math import mathematics
from wen.get_excel import DoExcel # 导入Excel测试数据
cases=DoExcel('data_sheet.xlsx', 'add').get_data() #实例化对象 调用.get_data()的方法
@ddt
class TestAdd(unittest.TestCase):
def setUp(self): # 初始化测试环境
self.t=DoExcel('data_sheet.xlsx','add')
print('---------开始执行---------')
def tearDown(self): # 清理测试环境
print('----------执行结束---------')
@data(*cases)
def test_two_add(self,case): # 加法计算
res=mathematics().two_add(case.a,case.b)
try:
self.assertEqual(res,case.expect)
resuit='pass'
except Exception as e:
resuit='Faild'
print('断言错误:{}'.format(e))
raise e
finally:
self.t.write_data1(case.id+1,6,res)
self.t.write_data1(case.id+1,7,resuit)
print('两数相加的结果是{}'.format(res)) 3.从Excel中获取测试数据
from openpyxl import load_workbook  #读写   导入openpyxl模块,可以进行excel文件的读写
class Case:
def __init__(self):
self.id=None
self.title=None
self.a=None
self.b=None
self.expect=None class DoExcel:
def __init__(self,file_name,sheet_name):
self.file=file_name
self.sheet=sheet_name def get_data(self): #获取 数据
# wb = load_workbook('data_sheet.xlsx') # 打开工作簿是打开你自己定义的工作薄 你这样写会比较好
# sheet = wb['add'] #定位你定义工作薄的表单 这样写你会比较理解 你用初始化调用也可以
wb=load_workbook(self.file) # 打开工作簿
sheet=wb[self.sheet] # 定位表单
cases=[] #创建空列表 存储查询后的结果
for i in range(2,sheet.max_row+1):
row_case=Case()
row_case.id = sheet.cell(row=i,column=1).value
row_case.title = sheet.cell(row=i,column=2).value
row_case.a = sheet.cell(row=i,column=3).value
row_case.b = sheet.cell(row=i,column=4).value
row_case.expect = sheet.cell(row=i,column=5).value
cases.append(row_case)
return cases
#因为你有加法表单也有减法表单 所以你需要定义两个方法
def write_data1(self,row,column,value):
wb = load_workbook(self.file) # 打开工作簿
sheet = wb['add'] # 定位表单 这个定位一定要定位到你的加法或者减法
sheet.cell(row,column).value=value
wb.save('data_sheet.xlsx')
def write_data2(self,row,column,value):
wb = load_workbook(self.file) # 打开工作簿
sheet = wb['sub'] # 定位表单
sheet.cell(row,column).value=value
wb.save('data_sheet.xlsx')
if __name__=='__main__':
n=DoExcel('data_sheet.xlsx', 'sub').get_data()
print(n)

4.加载测试用例并执行,生成报告
import unittest   #  导入unittest
import HTMLTestRunnerNew # 导入网页版测试报告模板
from wen import test_add_math # 导入加法测试类
from wen.test_add_math import TestAdd
# 加载加法测试用例
suite = unittest.TestSuite()
loader=unittest.TestLoader()
# suite.addTest(loader.loadTestsFromTestCase(test_add_math.TestAdd)) #加载测试类
suite.addTest(loader.loadTestsFromTestCase(TestAdd)) # 加载测试类
with open('math_add.html', 'wb') as file: 执行并生成测试报告
runer = HTMLTestRunnerNew.HTMLTestRunner(file, 2, tester='赵文', title='数学类之加法', description='unittest')
runer.run(suite)
 

unittest举例的更多相关文章

  1. unittest自动化测试举例:自动读取ymal用例&调用接口并生成报告

    用unittest框架写的接口自动化实现过程: 1.编写ymal格式用例: 2.导入ddt模块,该模块的主要功能是帮你读取ymal用例文件,自动获取内容并循环调用函数,具体见代码. 3.导入Beaut ...

  2. python学习笔记之——unittest框架

    unittest是python自带的单元测试框架,尽管其主要是为单元测试服务的,但我们也可以用它来做UI自动化测试和接口的自动化测试. unittest框架为我们编写用例提供了如下的能力 定义用例的能 ...

  3. django的单元测试框架unittest、覆盖率

    django的单元测试 指定测试范围: 指定运行某些测试文件./manage.py test --pattern="tests_*.py" -v 2 运行所有测试文件./manag ...

  4. Python+selenium之简单介绍unittest单元测试框架

    Python+selenium之简单介绍unittest单元测试框架 一.unittest简单介绍 unittest支持测试自动化,共享测试用例中的初始化和关闭退出代码,在unittest中最小单元是 ...

  5. unittest单元测试框架之unittest工作原理(一)

    1.Unittest 核心组件 test case.test suite.test runner.test fixture 2.unittest 静态图 Testcase:一个 testcase 就是 ...

  6. 自动化测试===requests+unittest+postman的接口测试

    postman是一个跨平台的接口测试工具,下载链接在这里:https://www.getpostman.com/ unittest是一个单元测试框架,python中安装:pip install uni ...

  7. python之单元测试框架—unittest

    一. 什么是单元测试?单元测试的对象是什么? 1: 什么是单元测试? 按照定义,单元测试就是对单个模块或者单个类或者单个函数进行测试,一般是开发做的,按照阶段分,一般就是单元测试.集成测试.系统测试. ...

  8. Python+Selenium框架设计篇之-简单介绍unittest单元测试框架

    前面文章已经简单介绍了一些关于自动化测试框架的介绍,知道了什么是自动化测试框架,主要有哪些特点,基本组成部分等.在继续介绍框架设计之前,我们先来学习一个工具,叫unittest.       unit ...

  9. Python+Selenium ----unittest单元测试框架

    unittest是一个单元测试框架,是Python编程的单元测试框架.有时候,也做叫做“PyUnit”,是Junit的Python语言版本.这里了解下,Junit是Java语言的单元测试框架,Java ...

随机推荐

  1. [Luogu] P1407 [国家集训队]稳定婚姻

    题目描述 我国的离婚率连续7年上升,今年的头两季,平均每天有近5000对夫妇离婚,大城市的离婚率上升最快,有研究婚姻问题的专家认为,是与简化离婚手续有关. 25岁的姗姗和男友谈恋爱半年就结婚,结婚不到 ...

  2. (七)python3 切片

    切片:取一个 list 或 tuple 的部分元素是非常常见的操作 >>> L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack'] #笨办法 ...

  3. OpenCV+Python识别车牌和字符分割的实现

    本篇文章主要基于python语言和OpenCV库(cv2)进行车牌区域识别和字符分割,开篇之前针对在python中安装opencv的环境这里不做介绍,可以自行安装配置! 车牌号检测需要大致分为四个部分 ...

  4. SHA256兼容性

    SHA-2是一个加密哈希(Cryptographic Hash)函数的一个集合,包括SHA-224,SHA256和SHA-512.在SHA-256中的256代表哈希(Hash)输出或者摘要的位尺寸(即 ...

  5. @requestbody---接受前端传json对象并绑定javabean

    @requestbody---接受前端传json对象并绑定javabean----https://blog.csdn.net/ljxbbss/article/details/74452326 最近代码 ...

  6. Leetcode 126.单词接龙II

    单词接龙II 给定两个单词(beginWord 和 endWord)和一个字典 wordList,找出所有从 beginWord 到 endWord 的最短转换序列.转换需遵循如下规则: 每次转换只能 ...

  7. 438D - The Child and Sequence

    D. The Child and Sequence time limit per test 4 seconds memory limit per test 256 megabytes input st ...

  8. HDU1530(最大团)

    Given a graph G(V, E), a clique is a sub-graph g(v, e), so that for all vertex pairs v1, v2 in v, th ...

  9. sharepoint 2013安装--没安装成功--机器配置太低了

    油管上的sharepoint2013安装教程 https://www.youtube.com/watch?v=3lQVMGWJQho 下载脚本的网址 http://gallery.technet.mi ...

  10. mybatis中的map.xml文件中sql语句需要分号吗?

    mybatis中的map.xml文件中sql语句需要分号吗? :你是说sql介绍的分号吗?不需要的