当前位置: 首页 > news >正文

自动化测试——unittest框架

import unittest #导入自动化框架
class Cms(unittest.TestCase): #创建一个类,这个类继承unittest.TestCase类
@classmethod #定义一个类方法
def setUpClass(cls) -> None:
print('类的开始') #类开始执行一次
@classmethod
def tearDownClass(cls) -> None:
print('类的结束') #类的结束执行一次
def setUp(self) -> None:
print("方法开始")
def tearDown(self) -> None:
print("方法结束")
def test1(self): #用例1 ,每个用例要用test开头,顺序0-9A-Za-z
print(1)
def test3(self):
print(3)
def test2(self):
print(2)
def test_a(self):
print("a")
def test_A(self):
print("A")
if name == 'main':
unittest.main() #第一方法,执行所有的用例

测试结果:
.....

Ran 5 tests in 0.000s

OK
类的开始
方法开始
1
方法结束
方法开始
2
方法结束
方法开始
3
方法结束
方法开始
A
方法结束
方法开始
a
方法结束
类的结束

Process finished with exit code 0
2670b637cd664f266be7c738e6b2834d

如果没有在前面加test就会出现这种情况!
3ec5eba1259198e76017352d4e92d1a7
注意点:
(1)用例开头都是要用test开头,不用test开头就不运行
(2)运行的顺序,ascllma标准:0-9 A-Z a-z
(3)类的开始和类的结束在框架就执行一次,
(4)方法开始和方法结束每一条用来都会执行一遍
(5)执行所有带test开头的用例
image

import unittest #导入自动化框架
class Cms(unittest.TestCase): #创建一个类,这个类继承unittest.TestCase类
@classmethod #定义一个类方法
def setUpClass(cls) -> None:
print('类的开始') #类开始执行一次
@classmethod
def tearDownClass(cls) -> None:
print('类的结束') #类的结束执行一次
def setUp(self) -> None:
print("方法开始")
def tearDown(self) -> None:
print("方法结束")
def test1(self): #用例1 ,每个用例要用test开头,顺序0-9A-Za-z
print(1)
def test3(self):
print(3)
def test2(self):
print(2)
def test_a(self):
print("a")
def test_A(self):
print("A")
def sl4(self):
print("独有")
if name == 'main':
# unittest.main() #第一方法,执行所有的用例
tj=unittest .TestSuite() #创建一个套件对象
tj.addTest(Cms("test2")) #通过addtest将用例添加到套件中
unittest.TextTestRunner().run(tj) #运行套件
Ran 1 test in 0.000s

OK
类的开始
方法开始
2
方法结束
类的结束
image

3.多个用例
import unittest #导入自动化框架
class Cms(unittest.TestCase): #创建一个类,这个类继承unittest.TestCase类
@classmethod #定义一个类方法
def setUpClass(cls) -> None:
print('类的开始') #类开始执行一次
@classmethod
def tearDownClass(cls) -> None:
print('类的结束') #类的结束执行一次
def setUp(self) -> None:
print("方法开始")
def tearDown(self) -> None:
print("方法结束")
def test1(self): #用例1 ,每个用例要用test开头,顺序0-9A-Za-z
print(1)
def test3(self):
print(3)
def test2(self):
print(2)
def test_a(self):
print("a")
def test_A(self):
print("A")
def sl4(self):
print("独有")
if name == 'main':
# unittest.main() #第一方法,执行所有的用例
tj=unittest .TestSuite() #创建一个套件对象
# tj.addTest(Cms("test2")) #通过addtest将用例添加到套件中
tj.addTests([Cms("test2"),Cms("test_a")])
unittest.TextTestRunner().run(tj) #运行套件
类的开始
..
方法开始
2
方法结束
方法开始
a
方法结束

类的结束
Ran 2 tests in 0.000s

OK

Process finished with exit code 0
image

4.运行一个路径下的用例:

c902dc0dd5784b43c22c1775347acae6
58bf8032a172e69f3a4f46e9b6092e11
7af37ba23032182f8ba46a3839cebef0
import unittest #导入自动化框架
class Cms(unittest.TestCase): #创建一个类,这个类继承unittest.TestCase类
@classmethod #定义一个类方法
def setUpClass(cls) -> None:
print('类的开始') #类开始执行一次
@classmethod
def tearDownClass(cls) -> None:
print('类的结束') #类的结束执行一次
def setUp(self) -> None:
print("方法开始")
def tearDown(self) -> None:
print("方法结束")
def test1(self): #用例1 ,每个用例要用test开头,顺序0-9A-Za-z
print(1)
def test3(self):
print(3)
def test2(self):
print(2)
def test_a(self):
print("a")
def test_A(self):
print("A")
def sl4(self):
print("独有")
if name == 'main':
# unittest.main() #第一方法,执行所有的用例
# tj=unittest .TestSuite() #创建一个套件对象
# tj.addTest(Cms("test2")) #通过addtest将用例添加到套件中
# tj.addTests([Cms("test2"),Cms("test_a")])
# unittest.TextTestRunner().run(tj) #运行套件
lj=r"C:\Users\Administrator\PycharmProjects\untitled\ui"
yl=unittest.TestLoader().discover(start_dir=lj,pattern="zdh*.py")
unittest.TextTestRunner().run(yl)
image

http://www.jsqmd.com/news/458853/

相关文章:

  • 【android】AlarmManager
  • 基于Transformer架构解析Wan2.2-T2V-A5B:原理与性能优化浅析
  • 08 Nginx安装方式介绍及源码安装的准备工作
  • 医疗与医学模拟市场洞察:2026-2032年复合增长率(CAGR)达13.7%
  • AIGlasses_for_navigation中小企应用:社区服务中心无障碍服务数字看板
  • Qwen-Turbo-BF16实现智能文档摘要生成
  • 按键精灵变量处理避坑指南:如何避免null与数字比较导致的脚本崩溃?
  • 2026年阿里企业邮箱优惠价格渠道商,最新优惠价格表企业购买更省钱 - 品牌2026
  • linux命令备忘录
  • 武汉企业通勤包车怎么选?本土大型包车公司,解决员工上下班难题! - 今日又土又金
  • 在 n8n 工作流中启用安全数据交换
  • 破解cpp-httplib黑盒:4个步骤实现全链路追踪
  • 2026 高性价比全自动商用咖啡机推荐:解析热门商用机型 - 品牌2026
  • 小白也能搞定!Qwen3-ASR-1.7B语音识别服务快速搭建指南
  • PSK/PSA资产无缝互导:Blender与虚幻引擎的跨平台工作流革新指南
  • 探寻高均匀度精密烘箱优质供应商:实力与口碑的双重考量 - 品牌推荐大师
  • 隔离式栅极驱动器市场洞察:至2032年将突破31.74亿元
  • all-MiniLM-L6-v2实战体验:轻量级嵌入模型,3步完成相似度计算
  • 腾讯云轻量应用服务器配额限制全解析
  • 如何快速获取中国四大城市建筑物数据集?手把手教你下载与使用
  • Stimulsoft Reports.JS使用参数创建动态报表
  • 10行代码搞定QMT实盘交易:手把手教你用Python自动化买卖股票(附完整源代码)
  • Kali新手必看:Lazysysadmin靶机渗透实战全记录(附VMware配置技巧)
  • 实战数据监控:用openclaw免费版与快马平台构建可自动部署的博客更新爬虫
  • 全球圈套器市场洞察:2026-2032年复合增长率(CAGR)为6.7%
  • SmolVLA部署详解:Windows系统下避坑C盘空间清理与配置
  • 多设备显示控制与电视联动解决方案:ColorControl 全攻略
  • 2026年企业微信开通方式及最新功能全指南 - 品牌2026
  • SmallThinker-3B-Preview一文详解:为何75%样本超8K tokens?数据构造技术深挖
  • 颠覆式手柄映射技术:解锁键盘游戏手柄操控新可能