接口自动化之TestFixture测试夹具,或者测试固件

用例夹具:

import unittest
import os
class TestGaigai(unittest.TestCase):
	def setUp(self) -> None:
		print('\nsetUp:在测试用例之前的准备工作,如:打开浏览器,加载网页')
	# 测试用例
	def test01_gaigai(self):
		print('测试用例01')
	def test02_gaigai(self):
		print('测试用例02')
	def test03_gaigai(self):
		print('测试用例03')
	def test04_gaigai(self):
		print('测试用例04')
	def tearDown(self) -> None:
		print('tearDown:测试用例之后的扫尾工作,如:关闭浏览器')
if __name__=='__main__':
	suite=unittest.TestSuite()
	testcases=unittest.defaultTestLoader.discover(os.getcwd(),'*.py')
	suite.addTests(testcases)
	unittest.TextTestRunner(verbosity=2).run(suite)

执行结果:

Testing started at 下午2:00 ...
/Users/l/PycharmProjects/interfaceTest2/venv/bin/python /Applications/PyCharm.app/Contents/helpers/pycharm/_jb_pytest_runner.py --path /Users/l/PycharmProjects/interfaceTest2/stu_baili/test_1.py
Launching pytest with arguments /Users/l/PycharmProjects/interfaceTest2/stu_baili/test_1.py in /Users/l/PycharmProjects/interfaceTest2/stu_baili

============================= test session starts ==============================
platform darwin -- Python 3.7.0, pytest-7.1.2, pluggy-0.13.1
rootdir: /Users/l/PycharmProjects/interfaceTest2/stu_baili
plugins: xdist-2.5.0, forked-1.4.0, metadata-2.0.1, tavern-1.23.3, html-3.1.1collected 4 items

test_1.py .
setUp:在测试用例之前的准备工作,如:打开浏览器,加载网页
测试用例01
tearDown:测试用例之后的扫尾工作,如:关闭浏览器
.
setUp:在测试用例之前的准备工作,如:打开浏览器,加载网页
测试用例02
tearDown:测试用例之后的扫尾工作,如:关闭浏览器
.
setUp:在测试用例之前的准备工作,如:打开浏览器,加载网页
测试用例03
tearDown:测试用例之后的扫尾工作,如:关闭浏览器
.
setUp:在测试用例之前的准备工作,如:打开浏览器,加载网页
测试用例04
tearDown:测试用例之后的扫尾工作,如:关闭浏览器
                                                           [100%]

============================== 4 passed in 0.08s ===============================
Process finished with exit code 0

类夹具:

import unittest
import os
class TestGaigai(unittest.TestCase):
	@classmethod
	def setUpClass(cls) -> None:
		print('setUpClass:在每个类之前执行一次。如:创建数据库,生成日志对象')
	def setUp(self) -> None:
		print('\nsetUp:在测试用例之前的准备工作,如:打开浏览器,加载网页')
	# 测试用例
	def test01_gaigai(self):
		print('测试用例01')
	def test02_gaigai(self):
		print('测试用例02')
	def test03_gaigai(self):
		print('测试用例03')
	def tearDown(self) -> None:
		print('tearDown:测试用例之后的扫尾工作,如:关闭浏览器')
	@classmethod
	def tearDownClass(cls) -> None:
		print('tearDownClass:在每个类之后执行一次,如:关闭数据库连接,销毁日志对象')
if __name__=='__main__':
	suite=unittest.TestSuite()
	testcases=unittest.defaultTestLoader.discover(os.getcwd(),'*.py')
	suite.addTests(testcases)
	unittest.TextTestRunner(verbosity=2).run(suite)

执行结果:

Testing started at 下午2:07 ...
/Users/PycharmProjects/interfaceTest2/venv/bin/python /Applications/PyCharm.app/Contents/helpers/pycharm/_jb_pytest_runner.py --path /Users/PycharmProjects/interfaceTest2/stu_baili/test_1.py
Launching pytest with arguments /Users/PycharmProjects/interfaceTest2/stu_baili/test_1.py in /Users/PycharmProjects/interfaceTest2/stu_baili

============================= test session starts ==============================
platform darwin -- Python 3.7.0, pytest-7.1.2, pluggy-0.13.1
rootdir: /Users/ligaijiang/PycharmProjects/interfaceTest2/stu_baili
plugins: xdist-2.5.0, forked-1.4.0, metadata-2.0.1, tavern-1.23.3, html-3.1.1collected 3 items

test_1.py setUpClass:在每个类之前执行一次。如:创建数据库,生成日志对象
.
setUp:在测试用例之前的准备工作,如:打开浏览器,加载网页
测试用例01
tearDown:测试用例之后的扫尾工作,如:关闭浏览器
.
setUp:在测试用例之前的准备工作,如:打开浏览器,加载网页
测试用例02
tearDown:测试用例之后的扫尾工作,如:关闭浏览器
.
setUp:在测试用例之前的准备工作,如:打开浏览器,加载网页
测试用例03
tearDown:测试用例之后的扫尾工作,如:关闭浏览器
tearDownClass:在每个类之后执行一次,如:关闭数据库连接,销毁日志对象
                                                            [100%]

============================== 3 passed in 0.08s ===============================
Process finished with exit code 0

模块夹具:

import unittest
import os
def setUpModule():
	print('模块级的夹具开始')
def tearDownModule():
	print('模块级的夹具结束')
class TestGaigai(unittest.TestCase):
	@classmethod
	def setUpClass(cls) -> None:
		print('setUpClass:在每个类之前执行一次。如:创建数据库,生成日志对象')
	def setUp(self) -> None:
		print('\nsetUp:在测试用例之前的准备工作,如:打开浏览器,加载网页')
	# 测试用例
	def test01_gaigai(self):
		print('测试用例01')
	def test02_gaigai(self):
		print('测试用例02')
	def test03_gaigai(self):
		print('测试用例03')
	def tearDown(self) -> None:
		print('tearDown:测试用例之后的扫尾工作,如:关闭浏览器')
	@classmethod
	def tearDownClass(cls) -> None:
		print('tearDownClass:在每个类之后执行一次,如:关闭数据库连接,销毁日志对象')
class Test2(unittest.TestCase):
	def test_login(self):
		print('测试登录')
if __name__=='__main__':
	suite=unittest.TestSuite()
	testcases=unittest.defaultTestLoader.discover(os.getcwd(),'*.py')
	suite.addTests(testcases)
	unittest.TextTestRunner(verbosity=2).run(suite)

执行结果

Testing started at 下午2:13 ...
/Users/PycharmProjects/interfaceTest2/venv/bin/python /Applications/PyCharm.app/Contents/helpers/pycharm/_jb_pytest_runner.py --path /Users/PycharmProjects/interfaceTest2/stu_baili/test_1.py
Launching pytest with arguments /Users/PycharmProjects/interfaceTest2/stu_baili/test_1.py in /Users/PycharmProjects/interfaceTest2/stu_baili

============================= test session starts ==============================
platform darwin -- Python 3.7.0, pytest-7.1.2, pluggy-0.13.1
rootdir: /Users/PycharmProjects/interfaceTest2/stu_baili
plugins: xdist-2.5.0, forked-1.4.0, metadata-2.0.1, tavern-1.23.3, html-3.1.1collected 4 items

test_1.py 模块级的夹具开始
setUpClass:在每个类之前执行一次。如:创建数据库,生成日志对象
.
setUp:在测试用例之前的准备工作,如:打开浏览器,加载网页
测试用例01
tearDown:测试用例之后的扫尾工作,如:关闭浏览器
.
setUp:在测试用例之前的准备工作,如:打开浏览器,加载网页
测试用例02
tearDown:测试用例之后的扫尾工作,如:关闭浏览器
.
setUp:在测试用例之前的准备工作,如:打开浏览器,加载网页
测试用例03
tearDown:测试用例之后的扫尾工作,如:关闭浏览器
tearDownClass:在每个类之后执行一次,如:关闭数据库连接,销毁日志对象
.测试登录
模块级的夹具结束
                                                           [100%]

============================== 4 passed in 0.19s ===============================
Process finished with exit code 0

夹具的二次封装,包jiajuercifengzhuang下包括:

all.py

import unittest
import os
if __name__=='__main__':
	suite=unittest.TestSuite()
	testcases=unittest.defaultTestLoader.discover(os.getcwd(),'*.py')
	suite.addTests(testcases)
	unittest.TextTestRunner(verbosity=2).run(suite)

my_unit.py

import unittest
class MyUnit(unittest.TestCase):
	@classmethod
	def setUpClass(cls) -> None:
		print('setUpClass:在每个类之前执行一次。如:创建数据库,生成日志对象')
	def setUp(self) -> None:
		print('\nsetUp:在测试用例之前的准备工作,如:打开浏览器,加载网页')
	def tearDown(self) -> None:
		print('tearDown:测试用例之后的扫尾工作,如:关闭浏览器')
	@classmethod
	def tearDownClass(cls) -> None:
		print('tearDownClass:在每个类之后执行一次,如:关闭数据库连接,销毁日志对象')

test_1.py

from stu_baili.jiajuercifengzhuang.my_unit import MyUnit
class TestGaigai(MyUnit):
	# 测试用例
	def test01_gaigai(self):
		print('测试改改01')
	def test02_gaigai(self):
		print('测试改改02')
	def test03_gaigai(self):
		print('测试改改03')

test_2.py

from stu_baili.jiajuercifengzhuang.my_unit import MyUnit
class Test2(MyUnit):
	def test01_niuniu(self):
		print('测试牛牛01')
	def test02_niuniu(self):
		print('测试牛牛02')

执行结果:

/Users/PycharmProjects/interfaceTest2/venv/bin/python /Users/PycharmProjects/interfaceTest2/stu_baili/jiajuercifengzhuang/all.py
setUpClass:在每个类之前执行一次。如:创建数据库,生成日志对象

setUp:在测试用例之前的准备工作,如:打开浏览器,加载网页
测试改改01
tearDown:测试用例之后的扫尾工作,如:关闭浏览器

setUp:在测试用例之前的准备工作,如:打开浏览器,加载网页
测试改改02
tearDown:测试用例之后的扫尾工作,如:关闭浏览器

setUp:在测试用例之前的准备工作,如:打开浏览器,加载网页
测试改改03
tearDown:测试用例之后的扫尾工作,如:关闭浏览器
test01_gaigai (test_1.TestGaigai) ... ok
test02_gaigai (test_1.TestGaigai) ... ok
test03_gaigai (test_1.TestGaigai) ... ok
tearDownClass:在每个类之后执行一次,如:关闭数据库连接,销毁日志对象
test01_niuniu (test_2.Test2) ... ok
test02_niuniu (test_2.Test2) ... ok
setUpClass:在每个类之前执行一次。如:创建数据库,生成日志对象


----------------------------------------------------------------------
setUp:在测试用例之前的准备工作,如:打开浏览器,加载网页
Ran 5 tests in 0.000s
测试牛牛01
tearDown:测试用例之后的扫尾工作,如:关闭浏览器

setUp:在测试用例之前的准备工作,如:打开浏览器,加载网页
测试牛牛02
tearDown:测试用例之后的扫尾工作,如:关闭浏览器
tearDownClass:在每个类之后执行一次,如:关闭数据库连接,销毁日志对象

OK

Process finished with exit code 0
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
传统夹具、磁性夹具、真空夹持和弹性夹具都有一些缺点,而自动化夹具则具有许多优点。让我为你详细解释一下: 传统夹具的缺点: 1. 需要额外的力度来确保紧固,操作相对较为繁琐。 2. 受限于机械结构,对于不同尺寸和形状的芯片可能需要定制夹具。 3. 可能会对芯片造成损伤,如刮伤或变形。 磁性夹具的缺点: 1. 需要特定的材料和磁场控制设备,成本较高。 2. 对于需要精确定位的芯片,磁性夹具的精度可能不够高。 3. 某些材料可能对芯片的性能产生干扰。 真空夹持的缺点: 1. 需要配备真空设备,增加了设备成本和复杂度。 2. 对于较大尺寸的芯片,可能需要更大功率的真空设备来保持稳定的吸附效果。 3. 需要提前设计和布置真空孔,可能限制了芯片的设计和布局。 弹性夹具的缺点: 1. 弹性材料的选择和设计需要考虑,不同材料的性能和寿命可能有差异。 2. 对于特殊形状的芯片,可能需要定制夹具以确保紧固效果。 自动化夹具的优点: 1. 操作方便,通过电动或气动装置实现自动夹持和释放,节省了人力和时间成本。 2. 自动化夹具具有较高的精度和重复性,可以确保芯片的准确定位和稳定夹持。 3. 适用于大规模生产和自动化流程,提高了生产效率和一致性。 4. 可以与其他自动化设备集成,实现自动化生产线。 总的来说,自动化夹具相对于传统夹具、磁性夹具、真空夹持和弹性夹具而言,具有更高的效率、精度和一致性,适用于大规模生产和自动化流程。然而,选择适合特定应用需求的夹具类型仍需根据具体情况来定。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值