一.unittest框架初识
由于公司项目中需要实现web自动化脚本的编写,并且是通过unittest框架去实现这个web自动化
所以先把项目实际运用中的框架熟悉,后面再看看能不能通过pytest框架去实现,看看两者之间的不同,发现两者各自的优点与缺点
一、unittest框架四大核心概念
1.测试用例 Test Case
测试用例必须在类中
测试用例所在的类,必须继承TestCase
测试用例的方法名必须以test开头
测试用例的执行顺序,按照Ascill码顺序(0-9,A-Z,a-z)
利用父类的TestCase的assert XXX方法来断言
用@unittest.skip(reason)装饰来跳过测试用例
2.测试固件 Test Fixture --解决环境初始化问题的作用
也叫测试夹件,主要工作是【初始化和善后】
测试固件分为两种,一种是类级别的,一种是方法级别的
类级别的测试固件,所有的测试用例执行之前与之后运行一次
方法级别的测试固件,每个测试用例执行之前和之后都执行一次
3.测试套件 Test Suite --解决如何把多个测试用例组织在一起执行
是用来组织测试用例的
如
4.执行器 Test Runner --解决测试报告问题
用来执行测试用例的
二、HtmlTestRunner报告 :
1.使用经典版HtmlTestRunner插件
2.不使用HtmlTestRunner插件
三、ddt数据驱动 pip install ddt
1.熟悉ddt语法
2.执行excel用例
Python中定义函数时,若想在函数内部对函数外的变量进行操作,就需要在函数内部声明其为global。
例子1
x = 1
def func():
x = 2
func()
print(x)
输出:1
在func函数中并未在x前面加global,所以func函数无法将x赋为2,无法改变x的值
例子2
x = 1
def func():
global x
x = 2
func()
print(x)
输出:2
加了global,则可以在函数内部对函数外的对象进行操作了,也可以改变它的值了
例子3
global x
x = 1
def func():
x = 2
func()
print(x)
输出:1
global需要在函数内部声明,若在函数外声明,则函数依然无法操作x