一、pytest 简介

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

常用的插件有:

  1. pytest
  2. pytest-html (生成html格式的自动化测试报告)
  3. pytest.xdist (测试用例分布式执行,多cpu分发)
  4. pytest-ordering (用于改变测试用例的执行顺序)
  5. pytest-rerunfailures (用于失败后重跑)
  6. allure-pytest (用于生成美观的测试报告)

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

  1. 模块名必须以test_开头或者_test结尾(此处的模块名指的是py文件的名字)
  2. 测试类必须以Test开头,并且不能有init方法
  3. 测试方法必须以test开头

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

  1. 主函数模式 运行所有用例 pytest.main()

    1. pytest.main([]) 参数是放在list里传入的
  2. 命令行模式
    1. 运行所有用例 pytest
    2. 指定模块 pytest -vs xxx.py
    3. 指定目录 pytest -vs ./xxx
  3. 通过读取pytest.ini配置文件进行
    1. pytest.ini 这个文件它是pytest单元测试框架的核心配置文件
    2. 位置: 一般放在项目的根目录
    3. 编码: 必须是ANSI,可以使用notpad++修该编码格式
    4. 作用: 改变pytest默认的行为
    5. 运行的规则:不管是主函数模式运行,还是命令行运行,都会去读取这个配置文件
    6. [pytest]
      addopts = -vs                     # 命令行参数
      testpaths = /tests                # 测试用例执行路径
      python_files = test_*.py          # 模块名的规则
      python_classes = Test*              # 类名的规则
      python_functions= test_* start    # 方法名的规则
      markers =smoke: 冒烟测试usermanage: 用户商品管理productmanage: 商品管理模块
      

参数详情

  1. -s: 表示输出调试信息,包括print打印的信息
  2. -v: 显示更详细的信息
  3. -vs: 这两个参数可以一起使用
  4. -n: 支持多线程或者分布式运行测试用例
  5. –reruns num: 失败用例重跑 num代表重跑的次数
  6. -x: 表示只要一个用例报错,那么测试停止
  7. –maxfail=2 出现两个用例失败就停止
  8. -k: 根据测试用例的部分字符串制定测试用例
  9. –html ./report/report.html: 生成html的测试报告

四、pytest执行测试用例的顺序是什么样的

pytest 默认从上到下执行
可通过@pytest.mark.run(order=3) order可以控制当前用例第几个执行
改变默认的执行顺序: 使用mark标记

五、如何分组执行

smoke: 冒烟测试,分布在各个模块里面

pytest -m “smoke”

pytest -m “smoke or usermanage”

六、pytest 跳过测试用例

  1. 无条件跳过

    1. @pytest.mark.skip(reason=‘xxx’)
  2. 有条件跳过
    1. @pytest.mark.skipif(age>=18, reason=‘xxx’)

pytest第一版 入门学习相关推荐

  1. 零基础入门学python 第二版-《零基础入门学习Python》第二版和第一版的区别在哪里呢?...

    第一版 时光荏苒,一晃间,距离<零基础入门学习 Python>出版(2016年11月)已经过去两年多了,在这段时间里, Python 逐步走入了大家的视野,这门语言因其简洁的语法风格,在云 ...

  2. 零基础学python鱼c-《零基础入门学习Python》第二版和第一版的区别在哪里呢?...

    第一版 时光荏苒,一晃间,距离<零基础入门学习 Python>出版(2016年11月)已经过去两年多了,在这段时间里, Python 逐步走入了大家的视野,这门语言因其简洁的语法风格,在云 ...

  3. SCARA——OpenGL入门学习一、二

    参考博客:http://www.cppblog.com/doing5552/archive/2009/01/08/71532.html 简介 最近开始一个机械手臂的安装调试,平面关节型机器人又称SCA ...

  4. 机器学习入门学习资源

    机器学习入门学习资源 [转载请注明出处]http://blog.csdn.net/guyuealian/article/details/51471085 这是一篇很难写的文章,因为我希望这篇文章能对学 ...

  5. OpenGL入门学习[二] 绘制简单的几何图形

    OpenGL入门学习[二] 本次课程所要讲的是绘制简单的几何图形,在实际绘制之前,让我们先熟悉一些概念. 一.点.直线和多边形 我们知道数学(具体的说,是几何学)中有点.直线和多边形的概念,但这些概念 ...

  6. 最全面的openGL 入门学习

    自己在找openGL学习资料的时候,找到此篇openGL入门学习(虽然不是移动开发,但给我提供了非常好的思路),所以转一下让更多人知道,本文来自http://www.cppblog.com/doing ...

  7. OpenGL编程入门学习

    OpenGL编程入门学习  非常详细的教程,很适合初学者 本文转自:http://www.cppblog.com/doing5552/archive/2009/01/08/71532.html === ...

  8. OpenGLGLUT入门学习

    本文为转载,原文出处:OpenGL入门学习 说起编程作图,大概还有很多人想起TC的#include <graphics.h>吧? 但是各位是否想过,那些画面绚丽的PC游戏是如何编写出来的? ...

  9. OpenGL入门学习 (转)

    OpenGL入门学习 (转) 说起编程作图,大概还有很多人想起TC的#include <graphics.h>吧? 但是各位是否想过,那些画面绚丽的PC游戏是如何编写出来的?就靠TC那可怜 ...

最新文章

  1. 3、python中的字符串
  2. springboot配置Filter的两种方法
  3. ClickOnce 部署概述
  4. C语言hello work的编译过程分解
  5. 男人最佳的生育年限,程序猿们,看看吧!!!
  6. oracle数据库十六进制转字符串,Oracle中各种进制相互转换
  7. php warning: directive,安装Composer PHP Warning: copy(): SSL operation failed with code
  8. 由input type=file /获取的file.type为空字符串引申浏览器是如何获取文件的MIME类型...
  9. web前端开发技术(第3版)储久良著课后实验
  10. 一些易被忽视且难度较高的Web前端面试题汇总
  11. 如何让微软Onedrive同步其他硬盘的文件
  12. Springboot入门手册
  13. ubuntu磁盘分区与挂载
  14. Python修改图片分辨率
  15. halcon之屌炸天的自标定(1)
  16. 微信公共平台 首次关注 自动回复消息
  17. 电脑从硬盘启动计算机,BIOS怎么设置成从硬盘启动?开启计算机或重新启动
  18. 1080p、1080i
  19. 三表左连接(LEFT JOIN) — 两表之间的关系
  20. 计算机软件投资所得税减免,个人以计算机软件著作权增资可以享受延迟纳个税的优惠吗...

热门文章

  1. python编程基础(二)~python安装设置 和 pip packages安装与使用
  2. ubantu使用apt安装时出现: xxx is not found 的解决方法
  3. 机器学习笔记 时间序列预测(最基本的方法【benchmark】)
  4. osmnx 补充笔记:get_edge_colors_by_attr get_node_colors_by_attr
  5. 数据仓库建设从0到1-一文带你深入建设金融数仓体系
  6. 深度学习核心技术精讲100篇(四十三)-人工智能新技术-知识普及篇:一文带你深入认识下联邦学习的前世今生
  7. 淘宝拼多多之争,从宏观的角度看拼多多是如何实现商业逆袭的?
  8. 数据挖掘之聚类k-means
  9. 【图像处理opencv】_图像边缘
  10. QT利用lamda正则表达式取出字符串中的浮点数与整数