Python基础学习016

编程入门 行业动态 更新时间:2024-10-28 16:20:22

Python<a href=https://www.elefans.com/category/jswz/34/1770030.html style=基础学习016"/>

Python基础学习016

# 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')

更多推荐

Python基础学习016

本文发布于:2023-11-16 00:05:45,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1610281.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:基础   Python

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!