1.unittest编写规范
1.unittest介绍
unittest,也可以称为PyUnit,类似于JUnit,用于python项目中,可以用来创建全面的测试套件,可以用于单元自动化测试(模块)、接口自动化测试(接口)、功能自动化测试(UI)等等。
优点:1.支持测试自动化,配置共享和关机代码测试。
2.支持将测试样例聚合到测试集中,并将测试与报告框架独立
官方文档:https://docs.python.org/zh-cn/3.7/library/unittest.html#
unittest具备创建测试用例、测试套件、测试夹具、测试运行期的能力,包括的组件如下:
Test Fixture(测试夹具):表示为了开展一项或多项测试所需要进行的准备工作,以及所有相关的清理操作。举个例子,这可能包含创建临时或代理的数据库、目录,再或者启动一个服务器进程。
Test Case(测试用例):一个测试用例是一个独立的测试单元。它检查输入特定的数据时的响应。
Test Suite(测试套件): 是一系列的测试用例,或测试套件,或两者皆有。它用于归档需要一起执行的测试。
Test Runner(测试运行器):是一个用于执行和输出测试结果的组件。这个运行器可能使用图形接口、文本接口,或返回一个特定的值表示运行测试的结果。
2.unittest编写规范
测试模块需要导入unittest框架
测试类必须继承unittest.TestCase;建议以Test开头
测试方法必须以"test_"开头
2.unittest测试框架结构
2.1 setUp()方法
一个测试用例是从setUp()方法开始执行的,用这个方法在每个测试执行前去执行一些初始化的任务。比如创建浏览器实例,访问URL,加载测试数据和打开 日志文件等。此方法没有参数,不返回任何值。当定义一个setUp()方法,测试执行器在每次执行测试方法之前优先执行该方法。
2.2 teardown()方法
类似于setUp()方法在每个测试方法之前被调用,TestCase类也会测试执行完成后调用tearDown()方法来清理所有的初始化值。一旦测试被执行,在setUp()中定义的值将不再需要,所有最好的在完成的时候清理掉。
2.3 setUpClass()方法
必须使用@classmethod装饰器,所有case运行完之后只运行一次
2.4 tearDownClass()方法
必须使用@classmethod装饰器,所有case运行完之后只运行一次
2.5 unittest.skip()装饰器
当运行用例时,有些用例可能不想执行等,可用装饰器暂时屏蔽该条测试用例。一个常见的用法就是比如说想调试某一个测试用例,想先屏蔽其他用例就可以使用装饰器屏蔽。
3.unittest基本使用
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from time import sleep
import unittest
class TestUnit1(unittest.TestCase):
def setUp(self):
#1.self 是类的引用/实例
#2.全局变量的定义:self.变量名
self.browser = webdriver.Chrome()