步骤:
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. Dollar Dayz POJ - 3181

    解法 完全背包+大数...不想写大数了放个python得了 代码 dp=[0 for i in range(2000)] n,k=map(int,input().split()) num=[i for ...

  2. vcenter6.5安装问题

    vcenter6.5 有2个安装包1个vim (windows系统)   1个vcsa(linux) 安装vcsa遇到如下问题: 1.版本bug 网上一般找到的镜像是VMware-VCSA-all-6 ...

  3. Linux学习笔记(四) vi编辑器

    一.vi 编辑器 vi 编辑器 (Visual Interface) 是所有 Unix 及 Linux 系统下标准的编辑器,相当于 Windows 系统中的记事本 它有三种模式,分别是: Comman ...

  4. 3. Python中的分支判断、循环

    本文利用的是Python 3.x版本,建议学习3.x版本 Python中的分支判断.循环 1. 分支条件判断 1.1 比较操作 以下是数之间常见的比较操作,例如5>3就是数学意义上的比较,5是大 ...

  5. STM32 内存管理实验

    参考原文<STM32F1开发指南> 内存管理简介 内存管理,是指软件运行时对计算机内存资源的分配和使用的技术.最主要的目的是如何高效.快速的分配,并且在适当的时候释放和回收内存资源.内存管 ...

  6. TestNG常用注解

    原文链接:https://www.yiibai.com/testng/basic-annotations.html    以下是TestNG支持的注释列表: 注解 描述 @BeforeSuite 在该 ...

  7. free web rich code eidtor

    free web rich code eidtor https://i.cnblogs.com/Preferences.aspx tiny code-editor https://apps.tiny. ...

  8. vijos 1439 区间

    区间 背景 描述 给定n个闭区间 [ai,bi], i=1,2,...,n. 这些区间的和可以用两两不相交的闭区间的和来表示.你的任务是找到这样的区间数目最少的表示,且把它们按升序的方式写到输出文件中 ...

  9. MySQL常用函数(转)

    一.数学函数 ABS(x):返回x的绝对值 BIN(x):返回x的二进制(OCT返回八进制,HEX返回十六进制) CEILING(x):返回大于x的最小整数值 EXP(x):返回值e(自然对数的底)的 ...

  10. java 中public 类

    java 中的文件名是以这个文件里面的public 的那个类命名的(也就是说文件名和这个文件里面的那个public 属性的class 名称一样), 同一个文件中不能放多个(超过2个)的pulic 类. ...