03-pytest-测试用例setup和teardown

简介: 03-pytest-测试用例setup和teardown

1. 用例运行级别

  • 模块级(setup_module/teardown_module)开始于模块始末,全局的
  • 函数级(setup_function/teardown_function)只对函数用例生效(不在类中)
  • 类级(setup_class/teardown_class)只在类中前后运行一次(在类中)
  • 方法级(setup_method/teardown_method)开始于方法始末(在类中)
  • 类里面的(setup/teardown)运行在调用方法的前后

2. 函数式

  • setup_function/teardown_function:每个用例开始和结束调用一次
1. # -*- coding: utf-8 -*-
2. # @Time    : 2021/1/18
3. # @Author  : 大海
4. import os
5. import pytest
6. 
7. 
8. # 函数式
9. def setup_function():
10. print("setup_function:每个用例开始前都会执行")
11. 
12. 
13. def teardown_function():
14. print("teardown_function:每个用例结束后都会执行")
15. 
16. 
17. def test_one():
18. print("正在执行----test_one")
19.     x = "this"
20.     y = "this is pytest"
21. assert x in y
22. 
23. 
24. def test_two():
25. print("这是用例2")
26.     x = "selenium"
27. assert "m" in x
28. 
29. 
30. def test_three():
31. print("这是用例3")
32.     a = 1
33.     b = 2
34. assert a < b
35. 
36. 
37. if __name__ == "__main__":
38.     file_path = os.path.abspath(__file__)
39. # print(file_path)
40.     pytest.main(["-s", file_path])
  • setup_module/teardown_module:所有用例开始执行前执行一次/所有用例执行结束后执行一次
1. # -*- coding: utf-8 -*-
2. # @Time    : 2021/1/18
3. # @Author  : 大海
4. import os
5. import pytest
6. 
7. 
8. # 函数式
9. def setup_function():
10. print("setup_function:每个用例开始前都会执行" + '22')
11. 
12. 
13. def teardown_function():
14. print("teardown_function:每个用例结束后都会执行" + '222')
15. 
16. 
17. def setup_module():
18. print("setup_module:所有用例执行前执行一次" + '11')
19. 
20. 
21. def teardown_module():
22. print("teardown_module:所有用例执行后执行一次" + '111')
23. 
24. 
25. def test_one():
26. print("这是用例1")
27.     x = "this"
28.     y = "this is pytest"
29. assert x in y
30. 
31. 
32. def test_two():
33. print("这是用例2")
34.     x = "selenium"
35. assert "m" in x
36. 
37. 
38. def test_three():
39. print("这是用例3")
40.     a = 1
41.     b = 2
42. assert a < b
43. 
44. 
45. if __name__ == "__main__":
46.     file_path = os.path.abspath(__file__)
47. # print(file_path)
48.     pytest.main(["-s", file_path])

3. 类中使用

  • setup/teardown:同unittest里面的setup/teardown的功能
  • setup_class/teardown_class:同unittest里面的setupClass和teardownClass功能
1. # -*- coding: utf-8 -*-
2. # @Time    : 2021/1/18
3. # @Author  : 大海
4. 
5. import os
6. import pytest
7. 
8. 
9. # 类中使用
10. class TestCase():
11. 
12. def setup(self):
13. print("setup:每个用例开始前都会执行" + '11')
14. 
15. def teardown(self):
16. print("teardown:每个用例结束后都会执行" + '222')
17. 
18. def setup_class(self):
19. print("setup_class:所有用例执行前执行一次" + '11')
20. 
21. def teardown_class(self):
22. print("teardown_class:所有用例执行后执行一次" + '111')
23. 
24. 
25. def setup_method(self):
26. print("setup_method:每个用例开始前都会执行" + '111')
27. 
28. def teardown_method(self):
29. print("teardown_method:每个用例执行后执行一次" + '11')
30. 
31. def test_one(self):
32. print("这是用例1")
33.         x = "this"
34.         y = "this is pytest"
35. assert x in y
36. 
37. def test_two(self):
38. print("这是用例2")
39.         x = "selenium"
40. assert "m" in x
41. 
42. def test_three(self):
43. print("这是用例3")
44.         a = 1
45.         b = 2
46. assert a < b
47. 
48. 
49. if __name__ == "__main__":
50.     file_path = os.path.abspath(__file__)
51.     pytest.main(["-s", file_path])


相关文章
|
2月前
|
人工智能 测试技术 调度
写用例写到怀疑人生?AI 智能测试平台帮你一键生成!
霍格沃兹测试开发学社推出AI智能测试用例生成功能,结合需求文档一键生成高质量测试用例,大幅提升效率,减少重复劳动。支持自定义提示词、多文档分析与批量管理,助力测试人员高效完成测试设计,释放更多时间投入核心分析工作。平台已开放内测,欢迎体验!
|
25天前
|
人工智能 自然语言处理 测试技术
让AI帮你跑用例-重复执行,不该成为测试工程师的主旋律
测试不该止步于重复执行。测吧科技推出用例自动执行智能体,通过AI理解自然语言用例,动态规划路径、自主操作工具、自动重试并生成报告,让测试工程师从“点点点”中解放,专注质量思考与创新,提升效率3倍以上,节约人力超50%,重构测试生产力。
|
6月前
|
测试技术 数据库 Python
解释测试中setup和teardown函数的应用。
总结起来,`setup`和 `teardown`函数就像扔宴会的主人,他们保障了宴会的流畅进行。他们是准备环境和清理现场的重要工作人员,他们的工作直接影响着我们的测试效率和质量。我们可以把 `setup`和 `teardown`想象成隐藏在幕后,默默为我们服务的工作者,他们做着我们需要但是往往忽视的工作。所以,下次当你写测试的时候,别忘了给你的 `setup`和 `teardown`留出足够的位置,因为他们的作用可能是你成功的保证。
137 14
|
5月前
|
测试技术 Python
Python测试报告生成:整合错误截图,重复用例执行策略,调整测试顺序及多断言机制。
如何组织这一切呢?你可以写一本名为“Python测试之道”的动作指南手册,或者创建一个包含测试策略、测试顺序、多断言机制的脚本库。只要你的测试剧本编写得足够独到,你的框架就会像一位执行任务的超级英雄,将任何潜伏于代码深处的错误无情地揪出来展现在光天化日之下。这些整理好的测试结果,不仅有利于团队协作,更像冒险故事中的精彩篇章,带给读者无尽的探索乐趣和深刻的思考。
134 10
|
10月前
|
前端开发 JavaScript 测试技术
使用ChatGPT生成登录产品代码的测试用例和测试脚本
使用ChatGPT生成登录产品代码的测试用例和测试脚本
264 35
|
10月前
|
存储 测试技术 API
pytest接口自动化测试框架搭建
通过上述步骤,我们成功搭建了一个基于 `pytest`的接口自动化测试框架。这个框架具备良好的扩展性和可维护性,能够高效地管理和执行API测试。通过封装HTTP请求逻辑、使用 `conftest.py`定义共享资源和前置条件,并利用 `pytest.ini`进行配置管理,可以大幅提高测试的自动化程度和执行效率。希望本文能为您的测试工作提供实用的指导和帮助。
914 15
|
测试技术
自动化测试项目学习笔记(五):Pytest结合allure生成测试报告以及重构项目
本文介绍了如何使用Pytest和Allure生成自动化测试报告。通过安装allure-pytest和配置环境,可以生成包含用例描述、步骤、等级等详细信息的美观报告。文章还提供了代码示例和运行指南,以及重构项目时的注意事项。
1047 1
自动化测试项目学习笔记(五):Pytest结合allure生成测试报告以及重构项目
|
SQL JavaScript 前端开发
基于Python访问Hive的pytest测试代码实现
根据《用Java、Python来开发Hive应用》一文,建立了使用Python、来开发Hive应用的方法,产生的代码如下
197 6
基于Python访问Hive的pytest测试代码实现
|
测试技术
软件测试用例设计之微信群抢红包经典用例
作者在浏览招聘网站时遇到为微信群发和抢红包设计测试用例的问题,作为软件测试新手,作者通过实际体验并撰写测试案例来加深对业务的理解,并分享了测试案例表格。需要注意的是,该用例未考虑添加银行卡支付、红包类型选择及红包描述。
360 5
软件测试用例设计之微信群抢红包经典用例
|
测试技术 Python
自动化测试项目学习笔记(四):Pytest介绍和使用
本文是关于自动化测试框架Pytest的介绍和使用。Pytest是一个功能丰富的Python测试工具,支持参数化、多种测试类型,并拥有众多第三方插件。文章讲解了Pytest的编写规则、命令行参数、执行测试、参数化处理以及如何使用fixture实现测试用例间的调用。此外,还提供了pytest.ini配置文件示例。
577 2