IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> pytest基础知识点汇总 -> 正文阅读

[开发测试]pytest基础知识点汇总

一、pytest 默认约定:

(1)pytest将在当前目录及其子目录中运行所有格式为test_*.py和*_test.py的文件
    如果发现只执行当前文件,可能是设置问题:
    file---setting---tools---python integrated tools---test---default test runner中设置为unittests即可
(2)测试方法|函数必须是test开头
(3)测试类必须是Test开头
(4)assert 直接添加至测试用例后面,失败测试结果是F,成功就是.
(5)pytest测试类中一定不能有构造方法__init__(self):,pytest不允许使用构造方法

二、pytest常见应用汇总:

1、断言机制 pytest的断言就是应用python的运算符号和assert关键字来实现

测试相等: ==
测试不相等: !=
测试大于等于: >=
测试小于等于: <=
测试包含: in
测试不包含: not in
测试是否为True: is True
测试是否不为True: is not True / is False

2、常用运行参数

(1)-s 用于关闭捕捉,从而输出打印信息,
    如果没有-s而是输入pytest.main(['--html=./report.html'])则会将测试结果输出到html文件中
    如果有了-s 则不会输出到html,而是输出到终端
    注:前提是安装pytest-html插件 pip install pytest-html
(2)-v 用于显示具体的信息
(3)-k 用于执行用例名称中包含某字符段的用例,比如pytest(['-k','abc'])执行测试用例名称中包含abc字符的用例
(4)-q 简化输出信息 输出结果就是简单的F和.(F代表用例失败,.代表用例成功通过)
(5)-x 一旦出现测试用例失败,后面的用例就不执行
(6)精准选择执行的用例 pytest.main(['-s',"文件名.py::用例名称"])
(7)生成JUnit XML测试报告  pytest.main(['--junit-xml=./report/junit_report.xml'])
(8)设置失败两次就结束所有测试 pytest.main(['--maxfail=2'])
(9)通过标记表达式来选择执行的测试用例
    1)首先写一个测试配置文件.ini文件,格式大概是
    [pytest]
    markers =
        标签名: 描述信息
        slow: mark tests as slow
        smoke: mark tests as smoke            
    2)在测试用例添加标记装饰器@pytest.mark.slow(slow是标签名)
    3)main函数写作:pytest.main(['-m', 'slow'])
(10)多进程运行用例:运行失败
    1)安装插件 pip install pytest-xdist
    2)运行模式 pytest -n NUMCPUS,pytest.main(['-n', '2'])

(11)失败用例重新运行
    1)安装插件 pip install pytest-rerunfailures,是一个可以使pytest 重新运行的插件,消除间歇性故障
    2)pytest.main(['reruns', '3', '--reruns-delay', '2', 'test*.py'])
       失败用例重新运行 '3'是重新运行次数,--reruns-delay 设置重跑延迟时间 '2'就是延迟时间 最后是运行测试文件
        
(12)setUp和tearDown
    1)测试用例中没有类时
    第一批次:setup_module和teardown_module 在当前文件中在所有测试用例执行之前和之后执行
    第二批次:setup_function和teardown_function 在每个测试函数之前和之后执行
    第三批次:setup和teardown 在每个测试函数之前和之后执行,这个可以作用于类方法
    PS:执行顺序按照批次顺序来,即使更改方法位置,执行顺序不变
    2)测试用例中有类时
    第一批次:setup_class和teardown_class 在当前文件中在所有测试用例执行之前和之后执行,必须有@classmethod装饰器
    第二批次:setup_method和teardown_method 在每个测试函数之前和之后执行
    第三批次:setup和teardown 在每个测试函数之前和之后执行,这个可以作用于类方法
    
(13)pytest配置文件 可以在配置文件中设置默认参数,还有执行文件,执行类名,执行测试方法名等
    1)配置文件大概格式
    [pytest]
    # 01 命令行参数默认加到执行过程中
    addopts = -s -v --html=./report/html_report.html
    # 02 指定要运行的测试目录
    testpath = ./scripts
    # 03 指定要运行的文件规则
    python_files = auto*.py
    # 04 指定要运行的类的名称规则
    python_classes = Auto* B*
    # 05 指定要运行的测试方法的名称规则
    python_functions = auto_*
    
(14)pytest插件 pytest-html插件
    1)安装 pip install pytest-html
    2)--html=用户路径/html_report.html
    ps:生成报告的同时还有一个asset的css文件
    
(15)pytest获取用例执行性能数据以及pytest禁用插件
    查看最慢的10个用例 pytest --durations=10 
    关闭插件,比如关闭doctest pytest -p no:doctest

3、pytest跳过用例机制

1.有条件跳过测试函数 根据特定的条件,跳过某些测试函数. 
方法:
	skipif(condition, reason=None) 
参数:
	condition:跳过的条件,必传参数 
	reason:标注原因,必传参数 
使用方法: 
	@pytest.mark.skipif(condition, reason="xxx")装饰测试用例 
2.无条件跳过测试函数
 @pytest.mark.skip(reason="no reason") 可传入一个非必须参数reason表示原因

4、pytest函数数据参数化

(1)单个数据参数化
@pytest.mark.parametrize(argnames,argvalues)
有多少个values就会执行多少次用例
@pytest.mark.parametrize('a', ['aaa', 'bbb', 'ccc'])
a 是形参,后面aaa,bbb,ccc是实参
(2)多个数据参数化
@pytest.mark.parametrize('user, password', [('xuzhu', '123456'), ('zhanzhao', '123456'), ('simple', '123456')])
user和password是形参,中括号里的实参
  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2022-02-28 15:56:11  更:2022-02-28 15:57:03 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 2:46:41-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码