企业网站建设流程知乎,微博网页版官网,城乡建设杂志官方网站,合肥市建设工程造价信息网# UnitTest是python自带的一个单元测试框架,不需要额外安装
# 也是自动化脚本执行框架,使用UnitTest来管理,运行多个框架
# 为什么使用:能够组织多个用例去执行.提供了丰富的断言方法,能够生成测试报告
# 核心要素:
# Testcase:测试用例:这个测试用例是UnitTest的组成部分,不是…# UnitTest是python自带的一个单元测试框架,不需要额外安装
# 也是自动化脚本执行框架,使用UnitTest来管理,运行多个框架
# 为什么使用:能够组织多个用例去执行.提供了丰富的断言方法,能够生成测试报告
# 核心要素:
# Testcase:测试用例:这个测试用例是UnitTest的组成部分,不是手工和自动化中所说的用例(Test Case)
# 每一个TestCase都是一个代码文件,这这个文件中书写真正的代码
# TestSuite:测试套件,用来管理,组装(打包)多个TestCase
# TestRunner:测试执行:用来执行TestSuite
# TestLoader:测试加载:对TestSuite功能的补充
# Fixture:测试夹具:书写在TestCase中的,是一种代码结构,在每个方法执行前后都会执行的内容.
# 可以将用例的前置后置条件放在这里
# 学习UnitTest框架的TestCase书写
# 1.导包
import unittest# 2.自定义类继承UnitTest的TestCase类
class TestcaseDemo1(unittest.TestCase): # 在定义类时继承UnitTest的TestCase类# 3.书写要求:测试方法必须以test_开头def test_method1(self):print(方法1)def test_method2(self):print(方法2)
# 4.执行用例:
# 将光标放在类名后面运行,执行类中的所欲方法.
# 将光标放在方法名的后边运行,只执行当前的方法class TestcaseDemo2(unittest.TestCase):# 3.书写要求:测试方法必须以test_开头def test_method2_1(self):print(方法2-1)def test_method2_2(self):print(方法2-2)# 运行时找不到run unittest for的选项:之前这个文件在书写用例前以.py代码的形式运行过
# 解决方案1:新建一个文件,将代码复制进去即可
# 解决方法2:在pycharm中点击最上方一行(绿色的运行,debug按钮那一行,有的在三个点那里面,有的是文件名的一个下拉框,)
# 中的edit选项(有的叫做edit,有的叫做edit configurations...),
# 将运行异常的这个代码从Python这个分类里移除即可# 学习UnitTest框架的TestCase书写
# 1.导包
import unittest# 2.自定义类继承UnitTest的TestCase类
class TestcaseDemo1_1(unittest.TestCase): # 在定义类时继承UnitTest的TestCase类# 3.书写要求:测试方法必须以test_开头def test_method1(self):print(方法1)def test_method2(self):print(方法2)
# 4.执行用例:
# 将光标放在类名后面运行,执行类中的所欲方法.
# 将光标放在方法名的后边运行,只执行当前的方法# 运行时找不到run unittest for的选项:之前这个文件在书写用例前以.py代码的形式运行过
# 解决方案1:新建一个文件,将代码复制进去即可
# 解决方法2:在pycharm中点击最上方一行(绿色的运行,debug按钮那一行,有的在三个点那里面,有的是文件名的一个下拉框,)
# 中的edit选项(有的叫做edit,有的叫做edit configurations...),
# 将运行异常的这个代码从Python这个分类里移除即可 # 学习UnitTest框架的TestCase书写
# 1.导包
import unittest# 2.自定义类继承UnitTest的TestCase类
class TestcaseDemo1_2(unittest.TestCase): # 在定义类时继承UnitTest的TestCase类# 3.书写要求:测试方法必须以test_开头def test_method1(self):print(方法1)def test_method2(self):print(方法2)
# 4.执行用例:
# 将光标放在类名后面运行,执行类中的所欲方法.
# 将光标放在方法名的后边运行,只执行当前的方法# 运行时找不到run unittest for的选项:之前这个文件在书写用例前以.py代码的形式运行过
# 解决方案1:新建一个文件,将代码复制进去即可
# 解决方法2:在pycharm中点击最上方一行(绿色的运行,debug按钮那一行,有的在三个点那里面,有的是文件名的一个下拉框,)
# 中的edit选项(有的叫做edit,有的叫做edit configurations...),
# 将运行异常的这个代码从Python这个分类里移除即可 学习TestSuite和TestRunner# 1.导包
import unittestfrom TestCase.hpp_TestCase import TestcaseDemo1, TestcaseDemo2
from TestCase.hpp_TestCase1 import TestcaseDemo1_1
from TestCase.hpp_TestCase2 import TestcaseDemo1_2# 2.实例化套件对象
suite unittest.TestSuite()
# 3.使用套件对象添加用例方法
# 3.1suite.addTest(测试类名(方法名),名称直接去复制,不要手写
suite.addTest(TestcaseDemo1(test_method1))
suite.addTest(TestcaseDemo1_1(test_method1))
suite.addTest(TestcaseDemo2(test_method2_1))
# 3.2添加一个测试类中的所有方法:suite.addTest(unittest.makeSuite(测试类名))
# makeSuite即将废弃,所以有横线提示
suite.addTest(unittest.makeSuite(TestcaseDemo1_2))
# 4.实例化运行对象
runner unittest.TextTestRunner() # 框架固定写法
# 5.使用运行对象去执行套件对象:运行对象runner,调用run方法,参数是套件对象suite
runner.run(suite)
# 什么情况下用TestLoader:TestCase有很多,使用一行代码加载所有TestCase
# 1.导包
import unittest# 2.实例化测试加载对象,并添加用例,加载完成后得到的是suite对象
# 在一个项目里,测试用例通常放在一个目录里unittest.TestLoader().discover(用例所在的路径(相对),用例代码文件名使用*通配符)
# suite unittest.TestLoader().discover(., hpp_TestCase*)
# 使用默认的加载对象并加载用例
suite unittest.defaultTestLoader.discover(TestCase, hpp_TestCase*)
# 3.运行对象执行套件对象
# runner unittest.TextTestRunner()
# runner.run(suite)
unittest.TextTestRunner().run(suite) # 在某些特定情况下会自动执行的一种代码结构
# 方法级别:用例代码执行前后都会调用的结构
# 方法执行之前:def setup(self):在每个测试方法执行之前都会执行
# 方法执行之后:def teardown(self):每个测试方法执行之后都会执行
# --------------------------------------------------
# 类级别:在每个测试类中所有方法执行前后都会自动调用,在整个类中只会执行一次
# 类级别的Fixture方法,是一个类方法
# 类中所有方法之前classmethod
def setupClass(cls):pass# 类中所有方法之后classmethod
def teardownClass(cls):pass# ------------------------------------------------------------------
# 模块级别(了解):在每个代码文件执行前后执行的代码结构,写在类外边,直接定义函数即可
# 代码文件之前:def setupModule()
# 代码文件之后: def teardownModule()
# ----------------------------------------------------------------
# 方法级别和类级别的Fixture方法,不一定非要都前后都有,根据需求写就可以
# ---------------------------------------------------------------
import unittestclass TestLogin(unittest.TestCase):classmethoddef setUpClass(cls):print(打开浏览器)classmethoddef tearDownClass(cls):print(关闭浏览器)def setUp(self):print(测试前输入网址)def tearDown(self):print(测试后关闭当前页)def test_1(self):print(测试数据1)def test_2(self):print(测试数据2)