全网超全,pytest自动化测试框架pytest.ini配置文件详细(实战)

news2024/10/6 6:53:06

目录:导读

    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)


前言

pytest配置文件可以改变pytest的运行方式,它是一个固定的文件pytest.ini文件,读取配置信息,按指定的方式去运行

非test文件
pytest里面有些文件是非test文件
pytest.ini:pytest的主配置文件,可以改变pytest的默认行为
conftest.py:测试用例的一些fixture配置
init.py:识别该文件夹为python的package包

查看pytest.ini的配置选项
cmd执行

pytest --help

找到这部分内容

[pytest] ini-options in the first pytest.ini|tox.ini|setup.cfg file found:

  markers (linelist):   markers for test functions
  empty_parameter_set_mark (string):
                        default marker for empty parametersets
  norecursedirs (args): directory patterns to avoid for recursion
  testpaths (args):     directories to search for tests when no files or directories are given in the command line.
  usefixtures (args):   list of default fixtures to be used with this project
  python_files (args):  glob-style file patterns for Python test module discovery
  python_classes (args):
                        prefixes or glob names for Python test class discovery
  python_functions (args):
                        prefixes or glob names for Python test function and method discovery
  disable_test_id_escaping_and_forfeit_all_rights_to_community_support (bool):
                        disable string escape non-ascii characters, might cause unwanted side effects(use at your own
                        risk)
  console_output_style (string):
                        console output: "classic", or with additional progress information ("progress" (percentage) |
                        "count").
  xfail_strict (bool):  default for the strict parameter of xfail markers when not given explicitly (default: False)
  enable_assertion_pass_hook (bool):
                        Enables the pytest_assertion_pass hook.Make sure to delete any previously generated pyc cache
                        files.
  junit_suite_name (string):
                        Test suite name for JUnit report
  junit_logging (string):
                        Write captured log messages to JUnit report: one of no|log|system-out|system-err|out-err|all
  junit_log_passing_tests (bool):
                        Capture log information for passing tests to JUnit report:
  junit_duration_report (string):
                        Duration time to report: one of total|call
  junit_family (string):
                        Emit XML for schema: one of legacy|xunit1|xunit2
  doctest_optionflags (args):
                        option flags for doctests
  doctest_encoding (string):
                        encoding used for doctest files
  cache_dir (string):   cache directory path.
  filterwarnings (linelist):
                        Each line specifies a pattern for warnings.filterwarnings. Processed after -W/--pythonwarnings.
  log_print (bool):     default value for --no-print-logs
  log_level (string):   default value for --log-level
  log_format (string):  default value for --log-format
  log_date_format (string):
                        default value for --log-date-format
  log_cli (bool):       enable log display during test run (also known as "live logging").
  log_cli_level (string):
                        default value for --log-cli-level
  log_cli_format (string):
                        default value for --log-cli-format
  log_cli_date_format (string):
                        default value for --log-cli-date-format
  log_file (string):    default value for --log-file
  log_file_level (string):
                        default value for --log-file-level
  log_file_format (string):
                        default value for --log-file-format
  log_file_date_format (string):
                        default value for --log-file-date-format
  log_auto_indent (string):
                        default value for --log-auto-indent
  faulthandler_timeout (string):
                        Dump the traceback of all threads if a test takes more than TIMEOUT seconds to finish. Not
                        available on Windows.
  addopts (args):       extra command line options
  minversion (string):  minimally required pytest version
  rsyncdirs (pathlist): list of (relative) paths to be rsynced for remote distributed testing.
  rsyncignore (pathlist):
                        list of (relative) glob-style paths to be ignored for rsyncing.
  looponfailroots (pathlist):
                        directories to check for changes

pytest.ini应该放哪里?
就放在项目根目录下 ,不要乱放,不要乱起其他名字

常用的配置项

marks

作用:测试用例中添加了 @pytest.mark.webtest 装饰器,如果不添加marks选项的话,就会报warnings

格式:list列表类型
写法:

[pytest]
markers =
    weibo: this is weibo page
    toutiao: toutiao
    xinlang: xinlang

xfail_strict

作用:设置xfail_strict = True可以让那些标记为@pytest.mark.xfail但实际通过显示XPASS的测试用例被报告为失败

格式:True 、False(默认),1、0

写法:

[pytest]

# mark标记说明
markers =
    weibo: this is weibo page
    toutiao: toutiao
    xinlang: xinlang

xfail_strict = True

具体代码例子
未设置 xfail_strict = True 时,测试结果显示XPASS

@pytest.mark.xfail()
def test_case1():
    a = "a"
    b = "b"
    assert a != b
collecting ... collected 1 item

02断言异常.py::test_case1 XPASS [100%]

============================= 1 xpassed in 0.02s ==============================

已设置 xfail_strict = True 时,测试结果显示failed

collecting ... collected 1 item

02断言异常.py::test_case1 FAILED                                         [100%]
02断言异常.py:54 (test_case1)
[XPASS(strict)] 

================================== FAILURES ===================================
_________________________________ test_case1 __________________________________
[XPASS(strict)] 
=========================== short test summary info ===========================
FAILED 02断言异常.py::test_case1
============================== 1 failed in 0.02s ==============================

addopts

作用:addopts参数可以更改默认命令行选项,这个当我们在cmd输入一堆指令去执行用例的时候,就可以用该参数代替了,省去重复性的敲命令工作

比如:想测试完生成报告,失败重跑两次,一共运行两次,通过分布式去测试,如果在cmd中写的话,命令会很长

pytest -v --rerun=2 --count=2 --html=report.html --self-contained-html -n=auto

每次都这样敲不太现实,addopts就可以完美解决这个问题

[pytest]

# mark
markers =
    weibo: this is weibo page
    toutiao: toutiao
    xinlang: xinlang

xfail_strict = True

# 命令行参数
addopts = -v --reruns=1 --count=2 --html=reports.html --self-contained-html -n=auto

加了addopts之后,我们在cmd中只需要敲pytest就可以生效了。

norecursedirs

作用:pytest 收集测试用例时,会递归遍历所有子目录,包括某些你明知道没必要遍历的目录,遇到这种情况,可以使用 norecursedirs 参数简化 pytest 的搜索工作。

默认设置:

norecursedirs = .* build dist CVS _darcs {arch} *.egg 

正确写法:多个路径用空格隔开

[pytest]

norecursedirs = .* build dist CVS _darcs {arch} *.egg venv src resources log report util

更改测试用例收集规则:

pytest默认的测试用例收集规则
文件名以 test_*.py 文件和 *test.py
以 test
开头的函数
以 Test 开头的类,不能包含 init 方法
以 test_ 开头的类里面的方法

我们是可以修改或者添加这个用例收集规则的;当然,是建议在原有的规则上添加的,如下配置

[pytest]

python_files =     test_*  *_test  test*
python_classes =   Test*   test*
python_functions = test_*  test*
下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

只有不断超越自己的勇气,才能在追逐梦想的路上绽放璀璨;只有坚持不懈的努力,才能创造属于自己的辉煌。相信自己,拥抱每一次挑战,奋斗不止,未来必将壮丽!

只有经历风雨,才能见彩虹;只有磨砺自己,才能成钻石。坚持奋斗,勇往直前,追逐梦想的旅程中,每一步都是成功的催化剂。相信自己,你可以战胜一切困难,成就非凡的人生!

只有拼尽全力,才能看到未来的光芒;只有坚持不懈,才能抵达成功的彼岸;只有敢于奋斗,才能创造出自己的辉煌。相信自己,勇往直前,你就是无敌的!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/704641.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java 实现word、excel、ppt、txt等办公文件在线预览功能!

如何用 Java 实现word、excel、ppt、txt等办公文件在线预览功能?本文告诉你答案! java 实现办公文件在线预览功能是一个大家在工作中也许会遇到的需求,网上些公司专门提供这样的服务,不过需要收费。 如果想要免费的,…

【ISO26262】汽车功能安全:以汽车安全完整性等级为导向和以安全为导向的分析

关于 ASIL剪裁的要求分解 表 A.1 以汽车安全完整性等级为导向和以安全为导向的分析的概览

Android Binder通信原理(五):Java 端的service 注册和获取

源码基于:Android R 0. 前言 在阐述相关的知识点,先整理个框架图,后面带着框架图来分析过程: Java 端对于binder 使用大致分为: Java client Java serviceJava client native service Java 端service 的注册使用 Se…

前端如何进行页面优化_如何优化前端页面

优化前端页面 1 .前期准备 1.1 首页命名为index.html / index.htm / index.php等。 1.2 需要制作404页面。 1.3 文件夹结构合理。 1.4 命名使用英文且有语义性的单词,并提供参考文档。 2 .结构 2.1 文件头部分 2.1.1 需要提供文档声明 2.1.2 设置utf-8的编…

虚拟机创建linux系统并使用SSH工具连接

安装VMware Workstation 创建新的虚拟机或从别人那里拷贝虚拟机文件,下面是我从别人那里拷贝的 虚拟机存在后,点击播放按钮启动虚拟机 启动成功后,长这个样子 虚拟机启动成功后,不想用linux指令操作,而是用windows的可…

报错:Information:java: javacTask: 源发行版 8 需要目标发行版 1.8

1.背景 编译项目或启动项目报错 2.解决方法 设置为对应的版本 3.完美

DOM编程实现动态时钟

文章目录 第一种&#xff1a;第二种&#xff1a;第三种&#xff1a; 以下是一个使用 JavaScript 和 DOM 编程实现的动态实时的时钟应用&#xff1a; 第一种&#xff1a; HTML&#xff1a; <!DOCTYPE html> <html><head><meta charset"UTF-8"…

想知道PDF转高清图片软件哪个好?

张琳是一名设计师&#xff0c;她经常需要将自己的设计作品整理成PDF文档&#xff0c;以便向客户展示和交付。然而&#xff0c;有时客户需要对设计进行更详细的审查&#xff0c;而PDF格式的文件并不方便进行缩放和查看细节。这一问题让张琳感到非常困扰&#xff0c;她希望能够找…

HttpWatch用于界面单页性能测试

HttpWatch是强大的网页数据分析工具&#xff0c;作为插件可集成在IE工具栏&#xff0c;包括网页摘要、Cookies管理、缓存管理、消息头发送/接受、字符查询、POST 数据和目录管理功能、以及报告的输出。今天笔者就介绍HttpWatch的安装及使用。一、HttpWatch的安装 1、在百度下载…

UNI-APP前端项目开发实战

一、创建项目 1.创建项目分为通过HBuilderX可视化界面和vue-cli命令行两种方式创建 2.官方推荐使用HBuilderX可视化界面方式创建,主要是编译器跟随开发工具升级,vue-cli是跟在项目中的,需要手动通过 npx @dcloudio/uvm 命令升级。 3.使用HBuilderX有一个弊端就是无…

【雕爷学编程】Arduino动手做(135)---W5100 网络扩展板模块

37款传感器与执行器的提法&#xff0c;在网络上广泛流传&#xff0c;其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块&#xff0c;依照实践出真知&#xff08;一定要动手做&#xff09;的理念&#xff0c;以学习和交流为目的&am…

中小企业怎么轻松搭建产品发行说明文档?

发行说明是产品上线必备的文档&#xff0c;它包含了项目进度的跟踪和产品版本的基础信息以及新增功能的介绍。 以下是为什么您需要发行说明的几个原因&#xff1a; 1.通知用户新功能&#xff1a;发行说明是向用户传达团队正在进行的工作和产品更新的重要途径。定期更新发行说明…

Selenium系列(三) - 详细解读针对元素常见的简单操作

针对元素有哪些常见的简单操作&#xff1f; 点击输入内容、清除内容返回元素尺寸、坐标获取元素标签文本获取元素属性值检查元素&#xff1a;是否可见、是否可点击、是否已被选择表单提交 点击右边目录即可跳转哦&#xff01; -------------->>>>>>>>…

服务器压力测试

目录 一、磁盘性能测试安装fio磁盘性能测试工具测试内容为顺序读、随机读、顺序写、随机写、随机读写结果分析 二、CPU性能测试安装sysbench性能测试工具结果分析 三、内存性能测试结果分析 四、网络性能测试测试iperf3工具测试结果分析1.测试TCP吞吐量2 . 测试UDP丢包和延迟 此…

EasyExcel读文件详解和源码分析

读取文件导入的话&#xff0c;我们经常看到下面这些方法。 //同步的返回&#xff0c;不推荐使用 EasyExcel.read(file).sheet(sheetNo).head(Class.class).headRowNumber(headRowNum)..doReadSync(); //异步的&#xff0c;通过监听器处理读到的数据。 EasyExcel.read(file).sh…

VMware Tools安装“保熟“技巧

网上关于如何安装VMware Tools也有很多帖子,但是基本很难对症下药。下面笔者给出两种情况&#xff0c;读者可根据自己概况定位自己的问题&#xff0c;从而进行解决。 如果读者安装操作系统时是如笔者如下截图 那么读者可参考这个解决方案 安装VMware Tools选项显示灰色的正确解…

【算法与数据结构】151、LeetCode反转字符串中的单词

文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引&#xff0c;可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析&#xff1a;本题的主要思路是先处理多余的空格&#xff0c;这个处理方法可以参考博主的这篇文章【算法与数据结构】…

PNP三极管开关电路注意事项

这个是一个NPN三极管的开关电路。 有时候我们也会用PNP的三极管搭建三极管开关电路。 当MCU输出低电平时&#xff0c;三极管BE间的电压小于开启电压&#xff0c;这时三极管饱和导通。 当MCU输出高电平&#xff0c;很多同学认为三极管BE间的电压大于开启&#xff0c;这时三极管截…

在IDEA中使用groovy脚本生成POJO

步骤1&#xff1a;打开Database窗格&#xff0c;新建数据库连接 数据库连接默认只是当前工程使用&#xff0c;想要所有IDEA窗口共享 步骤2&#xff1a;编辑groovy脚本 步骤3&#xff1a;选择一张或多张表&#xff0c;生成代码 生成效果 附&#xff1a;groovy脚本 import com.i…

POI合并单元格设置单元格样式

文章目录 设置居中设置背景颜色设置边框设置字体合并单元格实际使用运行效果 设置居中 CellStyle centerStyle wb.createCellStyle();centerStyle.setAlignment(HorizontalAlignment.CENTER); // 居中centerStyle.setVerticalAlignment(VerticalAlignment.CENTER);//垂直居中设…