一、pytest单元测试框架

1. 什么是单元测试框架
   单元测试是指在软件开发当中,针对软件的最小单位(函数、方法)进行正确性的检查测试。
2.单元测试框架
   Java:junit和testng
   Python:unittest和pytest
3.单元测试框架主要做什么?
    测试发现:从多个文件里面云找到我们测试用例
    测试执行:按照一定的顺序和规则去执行并生成结果
    测试判断:通过判断断言预期结果 和实际结果的差异
    测试报告:统计测试进度,耗时,通过率,生成测试报告

二、单元测试框架和自动化测试框架有什么关系?

  1. 什么是自动化测试框架

  2. 自动化测试框架的作用
                 提高测试效率,降低维护成本
                 减少人工干预,提高测试的准确率,增加代码的重用性
                 核心思想是让不懂代码的人也能够通过这个框架去实现自动化测试

  3. pytest单元测试框架和自动化测试框架的关系
               单元测试框架:只是自动化测试框架中的组成部分之一
               自动化测试框架:只是自动化测试框架中的组成部分之一

    数据驱动......
         关健字驱动
         全局配置文件的封装
         selenium,requests二次封装
         断言
         报告邮件
         更多.....

 接口自动化测试

  1. requests的二次封装
  2. yarml数据驱动
  3. 关健字驱动
  4. 多接口串联
  5. 全局配置文件
  6. 日志监控(调试日志,文件日志,邮件日志)
  7. yaml测试用例的封装(请求封装、读写封装、断言封装)
  8. allure报告的定制开发
  9. pytest只是这个框架中的一个组成部分

接口自动化、web自动化、APP自动化 三大部分

三、pytest简介

  1. pytest是一个非常成熟的python的单元框架,比unittest更灵活
  2. pytest可以和selenium,requests,appium结合实现web自动化,接口自动化,app自动化
  3. pytest可以实现测试用例的跳过及reruns失败用例重试。
  4. pytest可以和allure生成非常美观的测试报告
  5. pytest可以和Jekins持续集成
  6. pytest有很多非常强大的插件,并且这些插件能够实现很多的实用的操作。

需要的依赖包:
     pytest
     pytest-xdist  测试用例分布式执行,多CPU分发
     pytest-ordering 用于改变测试用例的执行顺序
     pytest-rerunfailures 用例失败后重跑
     pytest-html  (管理局成html格式的自动化测试报告)
     allure-pytest  用于生成美观的测试报告

放到requirements.txt中,通过pip install -r requirements.txt  一次性安装所有的文件

查询是否安装成功  :pytest --version

四、使用pytest,默认的测试用例的以及基础应用

1.模块名必须以test_ 开头或者 _test结尾
2.测试类必须以Test开头,并且不能有init方法
3.测试方法必须以test开头

五、pytest测试用例的运行方式

1.主函数模型

(1)运行所有:pytest.main()
(2)指定模块:pytest.main([‘-vs’,’test_login.py’])
(3)指定目录:pytest.main([‘-vs’,’./interface_testcase’])
(4)通过nodeid指定用例运行:nodeid由模块名,分隔符,类名,方法名,函数名组成 
  pytest.main([‘-vs’,’./interface_testcase/test_interface.py::test_04_func’])
pytest.main([‘-vs’,’./interface_testcase/test_interface.py::Testinterface::test_03_zhiliao’])

pytest.main(['-vs', '--html=./report/report.html'])

2.命令行模式

(1)运行所有:pytest
(2)指定模块:pytest -vs test_login.py
(3)指定目录:pytest -vs ./interface_testcase
(4)通过nodeid指定用例运行:nodeid由模块名,分隔符,类名,方法名,函数名组成 
  pytest -vs ./interface_testcase/test_interface.py::test_04_func

参数详解:
-s:表示输出调试信息,包括 print打印的信息
-v:显示更详细的信息
-vs:这两个参数一起用
-n :支持多线程或者分布式运行测试用例
     如:pytest -vs ./testcase/test_login.py -n 2
--reruns NUM :失败用例重跑
-x:表示只要有一个用例报错,那么测试停止

--maxfail=2  出现两个用例失败就停止
-k :根据测试用例的部分字符串指定测试用例
    如:pytest -vs ./testcase -k “ao”
--html ./report/report.html :生成html的测试报告

生成的测试报告:

3.通过读取pytest.ini配置文件运行

pytest.ini这个文件它是pytest单元测试框架的核心配置文件
1.位置:一般放在项目的根目录
2.编码:必须是ANSI,可以使用notepad++修改编码格式
3.作用:改变pytest默认的行为
4.运行的规则:不管是主函数的模式运行,命令行模式运行,都会去读取这个配置文件。

[pytest]
addopts = -vs            #命令行的参数,用空格分隔
#addopts = -vs --html ../report/report.html 
testpaths = ./testcase     #测试用例的路径
python_files = test_*.py   #模块名的规则
python_classes = Test*    #类名的规则
python_functions = test   #方法名的规则
markers = 
smoke :冒烟用例
usermanage:用户管理模块
Productmanage:商品管理模块

六、pytest执行测试用例的顺序是怎样的呢?

unittest:ascii的大小来绝定执行的顺序
pytest:默认从上到下
改变默认的执行顺序:使用mark标记
@pytest.mark.run(order=3)

七、如何分组执行(冒烟,分模块执行,分接口和web执行)

smoke:冒烟用例,分布在各个模块里面
pytest -vs -m “smoke”
pytest -vs -m “smoke or usermanage”

ini配置了vs,输入命令行时,可以不写-vs
pytest -m “smoke”
pytest -m “smoke or usermanage”
pytest -m “smoke or usermanage or productmanage”

八、pytest跳过测试用例

(1)无条件跳过
@pytest.mark.skip(reason=”微微太漂亮”)
(2)有条件跳过
@pytest.mark.skipif(age>=18,reason=’已成年’)

python pytest框架相关推荐

  1. Python pytest框架之@pytest.fixture()和conftest详解

    一.fixture简介 学pytest就不得不说fixture,fixture是pytest的精髓所在,类似unittest中setup/teardown这种前后置东西.但是比它们要强大.灵活很多,它 ...

  2. 生成报告配置xml_升职加薪利器:Python+Pytest框架在Jenkins上生成Allure测试报告

    在自动化测试执行之后,生成一个美观大方的测试报告,也是测试过程中,非常最要的一环.测试报告直接反应了测试过程中发现的问题,分析测试报告是解决问题的最重要手段.那么一个专业的测试报告应该长什么样呢?废话 ...

  3. Python + Pytest 自动化框架的用例依赖实操

    今日分享主题:Python + Pytest 自动化框架中测试用例依赖的探索与实践,今天分享的内容以"依赖别名+scope='package'"进行演示. 1.安装 pytest- ...

  4. Python + Appium框架原生代码实现App自动化测试

    Step1:首先介绍下python+appium的框架结构 如下截图所示 (1):apk目录主要放置待测app的apk资源: (2):config目录主要放置配置文件信息,包含:数据库连接配置.UI自 ...

  5. Python自动化测试框架之Pytest教程【让你小鸡变老鹰】

    Pytest  pytest是一个非常成熟的全功能的Python测试框架,主要有以下几个特点: · 简单灵活,容易上手 · 支持参数化 · 能够支持简单的单元测试和复杂的功能测试,还可以用来做sele ...

  6. Python测试框架pytest(05)fixture - error和failed、fixture实例化、多个fixture

    Python测试框架pytest系列可以查看下列 Python测试框架pytest(01)简介.安装.快速入门_编程简单学的博客-CSDN博客 Python测试框架pytest(02)PyCharm设 ...

  7. Python测试框架pytest(04)fixture - 测试用例调用fixture、fixture传递测试数据

    Python测试框架pytest系列可以查看下列 Python测试框架pytest(01)简介.安装.快速入门_编程简单学的博客-CSDN博客 Python测试框架pytest(02)PyCharm设 ...

  8. Python测试框架pytest(03)setup和teardown

    Python测试框架pytest系列可以查看下列 Python测试框架pytest(01)简介.安装.快速入门_编程简单学的博客-CSDN博客 ​​​​​​Python测试框架pytest(02)Py ...

  9. python自动化测试框架pytest.pdf_Python自动化测试框架

    随着技术的进步和自动化技术的出现,市面上出现了一些自动化测试框架.只需要进行一些适用性和效率参数的调整,这些自动化测试框架就能够开箱即用,大大节省了开发时间.而且由于这些框架被广泛使用,他们具有很好的 ...

最新文章

  1. 约瑟夫死亡游戏算法问题
  2. 对Transformer、XLNet、 ALBERT、 CRF等技术仍然一知半解?再不学习就OUT了!
  3. Linux内存管理原理
  4. 37.使用PreResultListener实现回调
  5. 为什么拙劣的软件也会成功?
  6. Python基础教程(020)--集成开发环境IDE简介--Pycharm
  7. FORTRAN里的SCALE函数
  8. 微信小程序之表单验证
  9. 张晨北京科技大学计算机,混合群智能优化算法研究及应用
  10. xshell绿色版安装,无限制
  11. SafeTpack — 基于 AURI 2G 实现功能安全目标
  12. 真分数分解为埃及分数Python3
  13. win10网络计算机显示不全,win10系统局域网显示计算机设备不完全的解决方法
  14. 如何提高推荐量?新手必知 头条号推荐机制
  15. 程序员面试等通知一般多久?
  16. csdn里面代码块颜色
  17. gradle全集 下载 蓝凑云(非百度网盘)
  18. 医院网络营销到底该怎么做
  19. 游戏的轻度、中度、重度是什么意思
  20. TensorFlow北大公开课学习笔记8-复现vgg16并实现图片识别

热门文章

  1. 2019年8月数据库流行度排行:双星闪耀 MySQL 成月度最大赢家
  2. 大讲堂专访丨连接Oracle DBA与开发的桥梁:Oracle的redo与undo
  3. 披荆斩棘:饿了么业务架构的演进之路
  4. 在springboot中,如何读取配置文件中的属性
  5. 基于多源数据画像的失败用例智能分析
  6. 用IoT放羊养牛,不出门也能知道它们的动向
  7. 有了这个框架,平台开发谁还手敲代码?
  8. 教师节送什么老师最开心?程序员三招解决家长送礼难题!
  9. 【华为云技术分享】HBase与AI/用户画像/推荐系统的结合:CloudTable标签索引特性介绍
  10. 独立物理机和虚拟机比较有什么优势?