Pytest入门【2】
一、setup/teardown、setup_class/teardown_class所有
为什么需要这些功能?
比如:web自动化执行用例之前,请问需要打开浏览器吗?用例执行后需要关闭浏览器?
class TestMashang:
#这个在所有的用例之前只执行一次
def setup_class(self):
print('在每个类执行前的初始化的工作:比如:创建日志对象,创建数据库的连接')
#在每个用例之前执行一次
def setup(self):
print('\n在执行测试用例之前初始化的代码:打开浏览器,加载网页')
def test_01_baili(self):
print('\n测试百里')
def test_02_xingyao(self):
print('测试星瑶')
def teardown(self):
print('\n在执行测试用例之后的扫尾的代码:关闭浏览器')
def teardown_class(self):
print('在没法类执行后的扫尾的工作:比如销毁日志对象,销毁数据库')
注意:和unittest不一样,全是小写
二、使用@pytest.fixture()装饰器来实现部分用例的前后置
装饰器
@pytest.fixture(scope="",params="",autouse="",ids="",name="")
------------------------------------------------------------------------------------------------
1)scope表示的是被@pytest.fixture标记的标记的方法的作用域。function(默认),class,module,package/session
2)params:参数化(支持,列表[],元组(),字典列表[{},{},{}],字典元组({},{},{})
import pytest
@pytest.fixture(scope='function',params=['成龙','甄子丹','菜10'])
def my_fixture(request):
print('前置')
yield
print('后置')
return request.param
class TestMashang1:
def test_01_baili(self):
print('\n测试百里')
def test_02_xingyao(self,my_fixture):
print('\n测试星瑶')
print('-------------'+str(my_fixture))
params=['成龙','甄子丹','菜10']这里params是参数名,有s
request.param这里是属性名,是没有s的。
3).autouse=True:自动使用,默认False
4).ids:当使用params参数化时,给每一个值设置一个变量名,意义不大。
5).name:给表示的是被@pytest.fixture标记的方法去一个别名
当取了别名之后,那么原来的名称你就用不了了
三、通过conftest.py和@pytest.fixture()结合使用实现全局的前置应用(比如:项目的全局登录,模块的全局处理)
1.conftest.py文件是单独存放的一个夹具配置文件,名称是不能更改。
2.用处可以在不同的py文件中使用同一个fixture函数
3.原则上conftest.py需要和运行的用例放到统一层,并且不需要做任何的import导入的操作。
总结:
setup/teardown,setup_class/teardown_class 它是作用于所有用例或者所有的类
@pytest.fixture()它的作用是既可以部分也可以全部前后置
confest.py和@pytest.fixture()结合使用,作用于全局的前后置
四、断言
assert
assert 1==2
五、pytest结合allure-pytest插件生成allure测试报告
昨天:pytest-html
今天:allure-pytest
1.下载,解压,配置path路径
Pytest入门【2】相关推荐
- pytest入门学习(2)
pytest的hello world pyt1.py def func(x):print (x+1);return x+1;def test_answer():assert func(3) == 5; ...
- Pytest入门【1】
一.Pytest单元测试框架 1).什么是单元测试框架? 单元测试是指在软件开发当中,针对软件的最小单位(函数.方法)进行正确性的检查测试. 2).单元测试框架 java:junit和testing ...
- pytest入门_测试用例分类_@pytest.mark.smoke
1.测试用例分类 1.有时候我们只需执行部分测试用例,比如从用例集当中挑选 smoke 测试,要怎么做呢? 2.通过装饰器 @pytest.mark.smoke,smoke 是可以自定义的,运行时加上 ...
- 不夸张地说,这是我见过最通俗易懂的,pytest入门基础教程
Pytest简介 Pytest is a mature full-featured Python testing tool that helps you write better programs.T ...
- 软件测试入门全流程精华总结【必看 知识点很全】
软件测试基础 软件测试的概念 通过一系列手段去证明软件是符合用户需求的,满足质量要求的.预期结果和实际结果的一个对比. 软件测试分类 按方法分:黑盒测试.白盒测试.灰盒测试 黑盒测试:把软件比作一个& ...
- 【单元测试】pytest:配置|断言|参数化|夹具|装饰器|插件
[单元测试]pytest 入门案例 pytest配置文件 断言 参数化 夹具 模块级 类级 方法级 函数级 fixture装饰器 插件 unittest:python自带的单元测试框架,兼容性好 py ...
- 《pytest 测试实战》读书笔记1
文章目录 第 1 章 pytest 入门 1.1 安装 pytest 1.2 运行 pytest 1.3 运行单个测试用例 1.4 使用命令行选项 1.5 练习 第 1 章 pytest 入门 首先来 ...
- 自动化测试python 成长路线_自动化测试工程师成长路线规划
随着互联网产品功能的迭代更新,对软件质量和数据安全也逐渐提出了更高的要求.因此,测试在目前的地位和功能可以说是越来越不可或缺了.虽然目前的就业市场继续大量的测试人才,但是低端的测试人员还是比较饱和的. ...
- 移动端自动化测试实战(四)
说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! 接着上一篇博客继续往下写 :https://blog.csdn.net/qq_41782425/article/details/1 ...
最新文章
- php java memcached_php和java的memcached使用的兼容性问题解决过程
- 50岁,他希望自己还可以写代码
- 下c语言按q退出_Linux vim编辑器怎么退出?第一次用都会问的问题
- 有符号二进制数--补码
- 平板电脑办公软件_大屏平板互动软件-平板电脑触摸大屏控制软件
- 如何做到服务器虚拟化_尽可能地做到无服务器,但不止于此
- python兔子繁殖问题中如何输出相应月份的数列_斐波那契数列介绍及Python中五种方法斐波那契数列...
- ECCV 2020 大规模实例分割挑战赛(LVIS Challenge)冠军方案
- php file get contents 空,file_get_contents()函数为空
- 【AcWing】103. 电影(离散化)
- 递归实现指数型枚举(搜索)
- Win11这个界面你肯定没见过
- 类比菜鸟全国仓配网络来学习CDN
- rp文件chrome浏览器查看插件
- 颜值经济风暴来袭,国产美容仪如何站稳脚跟?
- android 空气质量代码,Android-Json数据解析之空气质量检测
- 使用SPSS对数据异常值进行探索分析
- UISlider滑条
- 1w字详解 ClickHouse漏斗模型实践方案(收藏)
- Python Qt6快速入门-嵌入PyQtGraph图表