一、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】相关推荐

  1. pytest入门学习(2)

    pytest的hello world pyt1.py def func(x):print (x+1);return x+1;def test_answer():assert func(3) == 5; ...

  2. Pytest入门【1】

    一.Pytest单元测试框架 1).什么是单元测试框架? 单元测试是指在软件开发当中,针对软件的最小单位(函数.方法)进行正确性的检查测试. 2).单元测试框架 java:junit和testing ...

  3. pytest入门_测试用例分类_@pytest.mark.smoke

    1.测试用例分类 1.有时候我们只需执行部分测试用例,比如从用例集当中挑选 smoke 测试,要怎么做呢? 2.通过装饰器 @pytest.mark.smoke,smoke 是可以自定义的,运行时加上 ...

  4. 不夸张地说,这是我见过最通俗易懂的,pytest入门基础教程

    Pytest简介 Pytest is a mature full-featured Python testing tool that helps you write better programs.T ...

  5. 软件测试入门全流程精华总结【必看 知识点很全】

    软件测试基础 软件测试的概念 通过一系列手段去证明软件是符合用户需求的,满足质量要求的.预期结果和实际结果的一个对比. 软件测试分类 按方法分:黑盒测试.白盒测试.灰盒测试 黑盒测试:把软件比作一个& ...

  6. 【单元测试】pytest:配置|断言|参数化|夹具|装饰器|插件

    [单元测试]pytest 入门案例 pytest配置文件 断言 参数化 夹具 模块级 类级 方法级 函数级 fixture装饰器 插件 unittest:python自带的单元测试框架,兼容性好 py ...

  7. 《pytest 测试实战》读书笔记1

    文章目录 第 1 章 pytest 入门 1.1 安装 pytest 1.2 运行 pytest 1.3 运行单个测试用例 1.4 使用命令行选项 1.5 练习 第 1 章 pytest 入门 首先来 ...

  8. 自动化测试python 成长路线_自动化测试工程师成长路线规划

    随着互联网产品功能的迭代更新,对软件质量和数据安全也逐渐提出了更高的要求.因此,测试在目前的地位和功能可以说是越来越不可或缺了.虽然目前的就业市场继续大量的测试人才,但是低端的测试人员还是比较饱和的. ...

  9. 移动端自动化测试实战(四)

    说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! 接着上一篇博客继续往下写 :https://blog.csdn.net/qq_41782425/article/details/1 ...

最新文章

  1. php java memcached_php和java的memcached使用的兼容性问题解决过程
  2. 50岁,他希望自己还可以写代码
  3. 下c语言按q退出_Linux vim编辑器怎么退出?第一次用都会问的问题
  4. 有符号二进制数--补码
  5. 平板电脑办公软件_大屏平板互动软件-平板电脑触摸大屏控制软件
  6. 如何做到服务器虚拟化_尽可能地做到无服务器,但不止于此
  7. python兔子繁殖问题中如何输出相应月份的数列_斐波那契数列介绍及Python中五种方法斐波那契数列...
  8. ECCV 2020 大规模实例分割挑战赛(LVIS Challenge)冠军方案
  9. php file get contents 空,file_get_contents()函数为空
  10. 【AcWing】103. 电影(离散化)
  11. 递归实现指数型枚举(搜索)
  12. Win11这个界面你肯定没见过
  13. 类比菜鸟全国仓配网络来学习CDN
  14. rp文件chrome浏览器查看插件
  15. 颜值经济风暴来袭,国产美容仪如何站稳脚跟?
  16. android 空气质量代码,Android-Json数据解析之空气质量检测
  17. 使用SPSS对数据异常值进行探索分析
  18. UISlider滑条
  19. 1w字详解 ClickHouse漏斗模型实践方案(收藏)
  20. Python Qt6快速入门-嵌入PyQtGraph图表

热门文章

  1. 为什么我建议你现在学Vue3?
  2. 代码量减少90%,Java程序员必会的工具库
  3. 腾讯2020校园招聘----逆序对
  4. 音视频技术开发周刊 | 159
  5. 在线教育音视频质量评价与感知系统
  6. 14W 行代码量的前端页面长什么样
  7. 腾讯技术直播间 | 走进小程序云开发
  8. 区块链技术沙龙最全回顾:我们需要做怎样的区块链?
  9. go语言json字符串解析为结构体数组,结构体指针的数组
  10. 左神算法:加强堆的实现(Java)