0


pytest框架介绍

pytest框架介绍

一,pytest单元测试框架


1. 什么是单元测试框架
  • 单元测试是指在软件开发中,针对的软件的最小单位(函数,方法)进行正确性的检测
2. 单元测试框架
  • java:Junit和testng

  • python:unittest和pytest

3. 单元测试框架是做什么的?
  1. 测试发现:找执行文件

  2. 测试执行:按照一定的规则执行

  3. 测试判断:通过断言判断

  4. 测试报告:统计执行进度,好事,通过率,生成测试报告

  • - 二 、 单元测试框架和自动化测试框架的关系:

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

封装了 技术 管理等模块

  1. 作用:提高效率和维护成本,减少人工干预和增加准确性,增加代码的重用性

  2. pytest单元测试框架和自动化测试框架的关系

单元测试框架:只是自动化测试框架中的组成部分之一

pom设计模式

数据驱动

关键字驱动

全局配置文件的封装

日志监控

selenium,request二次封装

断言

报告邮件

更多都是自动化测试框架中的组成部分之一

三 、 pytest简介


  1. pytest 是非常成熟的pytest的单元测试框架,比unittest更灵活,容易上手

  2. 可以和selenlum,request,applum结合实web自动化,接口自动化,app自动化

  3. 可以实现测试用例的跳过及reruns的失败用例重试

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

  5. pytest和Jenkins持续继承

  6. 有很多插件,实现实用的操作:

  • pytest,

  • pytest-html :生成html的自动化测试报告

  • pytest-xdist:测试用例的分布式执行,多cpu分发

  • pytest-ordering:改变测试用例的执行顺序

  • pytest-rerunfailures:用例失败后重跑

  • alluer-pytest:用于生成美观的测试报告

将包名写在requirements.txt中,pip install -r equirements.txt 全部下载

四、pytest 规则和基础应用


  1. 模块名必须以test开头或者test结尾

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

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

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


  1. 主函数模式:
  • 运行所有:pytest.main()

  • 指定模块:pytest.main(['-vs','test_login.py'])

  • 指定目录:pytest.main(['-vs','/interface_testcase'])

  • 通过nodeid指定用例执行:nodeid由 模块名,分割符,类名,方法名,函数名组成

pytest.main(["-vs",'./interface_testcase/test_interface.py::test_04_func'])

pytest.main(["-vs",'./interface_testcase/test_interface.py::Test_interface::test_01'])

  1. 命令行的模式:
  • 运行所有:pytest

  • 指定模块:pytest -vs test_login.py

  • 指定目录:pytest.main -vs | /interface_testcase

  • nodeid:pytest -vs ./interface_testcase/test_interface.py::Test_interface::test_01

参数详解:

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

  • -v:显示更详细的信息

  • -vs:这两个参数一起用

  • -n:多线程或者分布式运行用例:pytest.main(["-vs","-n=3"])

  • --reruns:用例失败后,重跑的次数:pytest.main(["-vs","./testcase","-n=2","--reruns=2"])

  • -x:只要有一个用例报错,就停止

  • --maxdfail=2: 允许失败两次,不影响用例执行

  • -k:根据测试用例的部分字符串执行测试用例

  • -html:./report/report.html 生成html的测试报告

如:pytest -vs ./testcase -k "ao"

  1. 通过读取pytest.ini配置文件运行
  • pytest.ini:是pytest单元测试框架的核心配置文件

  • 位置:一般是根目录

  • 编码:必须是ANSI,推荐使用nopad++

  • 作用:更改pytest的默认行为

  • 运行的规则:启动配置

[pytest]

#命令行参数,用空格分开

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

#配置测试文件夹

testpaths= ./testcase

#测试搜索的模块文件名称

python_files=test*.py

#测试搜索的测试类名

python_classes=Test*

#测试搜索的测试函数名

python_funtions=test*

六、pytest用例的执行顺序


unittest:ascii的大小来决定执行顺序

pytest:默认是从上到下

改变默认的顺序:使用Mark标记

@pytest.mark.run(order=3)

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


smoke:冒烟用例,分布在各个模块里

pytest.main(['-m smoke or usermanger'])

markers=

smoke:冒烟用例

usermanger:用户管理模块

productmanager:商品管理模块

八、pytest跳过测试用例


  1. 无条件跳过:

@pytest.mark.skip(reason='太慢')

  1. 有条件跳过:

@pytest.mark.skipif(age>18,reason='已成年')#满足条件不执行


本文转载自: https://blog.csdn.net/weixin_55127516/article/details/128781668
版权归原作者 小磊向前冲 所有, 如有侵权,请联系我们删除。

“pytest框架介绍”的评论:

还没有评论