今天来学习一款Python的自动化框架——pytest

一、单元测试框架

java:junit和testing

python:unittest和pytest

单元测试框架主要做什么:

1、测试发现:从多个文件里找测试用例

2、测试执行:按照一定的顺序和规则去执行,并生成结果

3、测试判断:通过断言判断预期结果和实际结果的差异

4、测试报告:统计测试进度、耗时、通过率,生成测试报告

pytest简介:

1、pytest是一个非常成熟的Python单元框架,比unittest更灵活,容易上手

2、pytest可以和selenium、requests、appium实现web自动化、接口自动化、app自动化

3、pytest可以实现测试用例的跳过一级reruns失败用例重试

4、pytest可以和allure生成非常美观的测试报告

5、pytest可以和jenkins持续集成

6、pytest有很多强大的插件

二、使用pytest

1、模块名必以test_开头或_test结尾

2、测试类名必须以Test开头,并且不能有init方法

3、测试方法必须以test开头

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

1、主函数模式

(1)运行所有:

pytest.main()

(2)运行模块:

pytest.main(['-vs','./testcase/test_01.py'])

(3)指定文件夹:

pytest.main(['-vs','./testcase'])

(4)nodeid方式启动:

pytest.main(['-vs','./testcase/test_01.py::TestLogin::test_01'])

2、命令行模式

(1)运行所有:

pytest

(2)运行模块:

pytest -vs ./testcase/test_01.py

(3)指定文件夹:

pytest -vs ./testcase

(4)nodeid方式启动:

pytest -vs ./testcase/test_01.py::TestLogin::test_01

参数:

-s:输出调试信息,包括print打印的信息

-v:显示详细信息

-k:根据测试用例的部分字符串指定测试用例

pytest -k "02"

-n:几个线程并行跑​​​​​​

pytest -vs -n 2pytest.main(['-vs','-n=2'])

-x:只要有一个用例报错,那么测试就停止

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

[pytest]addopts = -vstestpaths = ./testcasepython_files = test_02.pypython_classes = Test*python_functions = test

1、位置一般放在项目的根目录。

2、编码必须是ANSI,可以使用notpad++修改编码格式。

3、作用是改变pytest默认的行为。

4、不管是主函数的模式运行还是命令行的模式运行

四、rerunfailures失败重试

1、pip升级

python -m pip install pip==20.2.4

2、安装 pytest-rerunfailures

python -m pip install  pytest-rerunfailures

3、main函数添加参数 --rerun=重试次数

pytest.main(['-vs','--reruns=2'])

4、terminal执行指令:

pytest -vs ./testcase --reruns 2

可以看到执行失败的用例会重新执行2次

五、pytest的执行顺序

通过@pytest.mark.run(order=?)标记来指定顺序,数字越小的越先执行​​​​​​​

class TestLogin:
    @pytest.mark.run(order=1)    def test_01(self):        print('测试百里守约')
    @pytest.mark.run(order=3)    def test_02(self):        print('测试娜可露露')
    @pytest.mark.run(order=2)    def test_03(self):        print('测试蔡文姬')

六、分组执行

通过@pytest.mark.XXX来进行分组​​​​​​​

    @pytest.mark.smoke    def test_01(self):        print('测试蔡文姬')            @pytest.mark.usermanage    def test_02(self):        print('测试东皇')

pytest.ini​​​​​​​

[pytest]addopts = -vs -m "smoke or usermanage"testpaths = ./testcasepython_files = test_02.pypython_classes = Test*python_functions = testmarkers =    smoke:冒烟用例    usermanage:用户管理模块

也可以terminal执行:

pytest -vs -m "smoke or usermanage"

七、pytest跳过测试用例

1、无条件跳过,可以后面不加reason​​​​​​​

@pytest.mark.skip(reason="无敌")    def test_04(self):        print('测试东皇')

2、有条件跳过​​​​​​​

age = 15@pytest.mark.skipif(age<18,reason="未成年")  def test_05(self):      print('测试跳过')

3、terminal执行pytest

八、生成测试报告

addopts = -vs --html ./report/report.html

下一章介绍pytest的初始化和相关工具


学习资源分享

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助…….

如果你不想再体验一次自学时找不到资料,没人解答问题,坚持几天便放弃的感受的话,可以加入下方我的qq群大家一起讨论交流,里面也有各种软件测试资料和技术交流。

自动化测试框架Pytest(一)——入门相关推荐

  1. iOS自动化探索(四)自动化测试框架pytest - 安装和使用

    自动化测试框架 - pytest pytest是Python最流行的单元测试框架之一, 帮助更便捷的编写测试脚本, 并支持多种功能复杂的测试场景, 能用来做app测试也能用作函数测试 官方文档: ht ...

  2. 小白学 Python 爬虫(28):自动化测试框架 Selenium 从入门到放弃(下)

    人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...

  3. 自动化测试框架-pytest框架入门篇

    前段时间,九九姐更新了自动化测试中unittest框架,然后有很多小伙伴私聊九九姐,说想学习一下pytest框架的内容.既然大家已经说话了,九九姐怎么能不安排呢,所以今天就给大家说一说pytest框架 ...

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

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

  5. 自动化测试框架Pytest使用mark和参数化固定装置、测试函数

    目录 一.常见的内置markers 二.查看所有markers 三.注册自定义marks 四.对未注册mark的限制 五. 参数化固定装置.测试函数 一.常见的内置markers usefixture ...

  6. pytest测试框架_带你深入理解自动化测试框架Pytest的配置文件!

    都有哪些种类的配置文件 pytest.ini:pytest的主配置文件,可以改变pytest的默认行为 conftest.py:是本地插件库,其中的hook函数和fixture将作用于该文件所在的目录 ...

  7. 小白学 Python 爬虫(27):自动化测试框架 Selenium 从入门到放弃(上)

    人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...

  8. 一、Pytest自动化测试框架 — Pytest和unittest测试框架原理

    目录 前言 ###文章内容有配套的学习视频和笔记都放在了文章末尾### 1.什么是单元测试框架 2.单元测试框架主要做什么 3.单元测试框架和自动化测试框架有什么关系 4.Pytest测试框架说明 5 ...

  9. 小白学 Python 爬虫:自动化测试框架 Selenium 从入门到实战

    引言 前面连续几篇爬虫实战不知道各位同学玩的怎么样,小编是要继续更新了,本篇我们来介绍一个前面已将安装过的工具: Selenium ,如果说是叫爬虫工具其实并不合适,在业界很多时候是拿来做自动化测试的 ...

最新文章

  1. nginx+tomcat集群负载均衡中的多虚拟主机配置
  2. 使用HtmlUnit获取html页面
  3. boost::core::has_single_bit的测试
  4. SpringBoot2.1.5 (9)--- GET 请求
  5. Python菜鸟快乐游戏编程_pygame(4)
  6. SQL Server的代码生成器
  7. 第六周java实验报告四
  8. linux fsck命令,Linux中fsck命令起什么作用呢?
  9. c语言按位取反 补码,按位取反运算符,数值取反之后是反码,还是补码- -
  10. Shell 常用积累
  11. 怎么写linux的sh文件,linux – 什么是.sh文件?
  12. 3500常用汉字书法体检测数据集
  13. java中json转对象_Java开发中json使用,各对象与json相互转换
  14. 一生不要瞎忙,只要做对三件事
  15. 有哪些原版英文书籍值得推荐?
  16. 影子卫士中文注册版+系统保护的尚方宝剑、、
  17. 【BZOJ】【P3110】【ZJOI2013】【K大数查询】【题解】【树套树】
  18. java xlsm_在Java中使用POI框架读取xlsm文件时出错
  19. 【论文笔记】CIRNet:基于CycleGAN的无监督循环配准模型
  20. 黑马python培训_要一张纯黑的图片。纯黑的。

热门文章

  1. 未能找到元数据文件解决办法
  2. 重写boost内存池
  3. linux中uart设备名是什么,linux uart设备驱动结构分析
  4. Machine—learning 所需基础数理知识 (由黄海广博士整理而成)
  5. 4.15 使用皱褶工具制作陡峭的山峰 [Illustrator CC教程]
  6. 有信念是好事,也是坏事
  7. CodeForces 286E
  8. 巴菲特:人一生中最重要的是专注
  9. 瀑布模型、快速原型模型、增量模型、螺 旋模型的优缺点,说明每种模型的使用范围
  10. 有这样的老婆,真舒服!