一、TestFixture测试夹具或者测试固件 setUp/tearDown setUpClass/tearDownClass @classmethod 类方法 setUpModule/tearDownModule 在类的外面 二、忽略测试用例 @unittest.Skip() @unittest.IfSkip(ture,msg) @unittest.UnlessSkip(false,msg) 一个类所有的用例都不执行,类上面加skip 三、unittest单元框架中的断言 assertEqual(a,b) 断言 a==b assertNotEqual(a,b) 断言a!=b assertTure(a) 断言a为真 assertFalse(a) 断言a为假 assertIn(a,b) 断言a在b里面 assertNotin(a,b) 断言a不在b里面 四、批量执行用例生成HTML格式的报告 HTMLTestRunner.py c:\python37.3\lib 五、发送邮件 六、DDT,DDT底层 七、jenkins持续集成


一、ddt数据驱动 unittest,ddt 1.为什么需要数据驱动 数据文件中有11组数据,代码只有一份 2。驱动模式介绍 数据驱动 关键字驱动(核心:把业务逻辑封装成关键字login,只需要调用login) 混合驱动模式 (关键字+数据驱动):市场主流 行为驱动测试:Lettcue 3.什么是ddt data driver test 数据驱动测试 特点:可以完美和应用于Unitest框架实现数据驱动 4.DDt详解 ddt是通过装饰器的形式来调用的 装饰器:装饰器就是完成特定功能的函数(事物) 在python里面装饰器是以@开头,并且装饰器有两种:类装饰器,函数装饰器 ddt里面有那些装饰器: @ddt(类装饰器:申明当前类使用ddt框架) @data(函数装饰器,用于给测试用例传递数据) @unpack(将传输的数据包解包),一般作用于元组tuple和列表list @file_data(函数装饰器,可直接读取yaml/json文件) 5.实战@ddt @data 总结:当传单个值时,所有的类型都可以传,并且用例执行一次 如果说:@data传入多个值的时候,那么传几个值,那么用例执行几次 6.实战@unpack 如果是数字或者字符串:那么不需要@unpack 如果是元组和列表的话,那么可以通过@unpack,但是参数的个数必须和解完包后的值的个数一样 如果是集合无法解包 如果是字典,那么可以通过@unpack解包,但是参数的名字和个数必须和字典的键保持一致 #python 数据类型:数字(int,long,float,compix),字符串,列表list,元组tuple,集合set,字典dict @data(("百里","胖胖"),("12","16")) @unpack def test01(self, args1,args2): print(args1,args2) 7.ddt项目实战 两种环境 本地(只有一个) 虚拟(有N个,每个项目都有一个虚拟环境) 一、pytest单元测试框架 (1) 单元测试是指在软件开发当中,针对软件的最小单位(函数,方法)进行正确性的检查测试 (2)单元测试框架 java:junit和testing python:unitest和pytest (3)单元测试框架 1.测试发现:从多个文件里面去找到我们的测试用例 2.测试执行:按照一定的顺序和规则去执行,生成结果 3.测试判断:通过断言判断预期结果的差异 4.测试报告:统计测试进度,耗时,通过率,生成测试报告 二、单元测试框架和自动化测试框架 1.自动化测试框架 2.作用 提高测试效率,降低维护成本 减少人工干预,提高测试的准确性,增加代码的重用性 核心思想是让不懂代码的人也能够通过这个框架去实现自动化测试 3.pytest单元测试框架和自动化测试框架的关系 单元测试框架:只是自动化测试框架的组成部分之一 pom设计模式:只是自动化框架中的组成部分之一 数据驱动 关键字驱动 全局配置文件的封装 日志监控 selenium,requests二次封装 断言 报告邮件 三、pytest简介 1.pytest是一个非常成熟的python的单元框架,比unittest更灵活,容易上手 2.pytest可以和selenium,requests,appium结合实现web自动化,接口自动化,app自动化 3.pytest可以实现测试用例的跳过以及reruns失败用例重试 4.pytest可以和allure生成非常美观的测试报告 5.pytest可以和Jenkins持续集成 6.pytest有很多非常强大的插件,并且这些插件能够实现很多的实用操作 pytest pytest-html(生成html格式的自动化报告) pytest-xdist 测试用例分布式执行,多CPU分发 pytest-ordering 用于改变测试用例的执行顺序 pytest-rerunfailures 用例失败后重跑 allure-pytest 用于生成美观的测试报告 放到requirements.txt中,通过pip install -r requirements.txt 四、使用pytest,默认的测试用例的规则以及基础的应用 1.模块名必须以test_开头或者_test结尾 2.测试类必须以Test开头,并且不能有init方法 3.测试方法必须以test开头