【day1】pytest

发布时间 2023-03-27 20:22:35作者: 是谁用了我的昵称

一、pytest单元测试框架

 
0

二、单元测试框架与自动化测试框架

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

单元测试框架、pom设计模式、数据驱动、关键字驱动、全局配置文件的封装、日志监控等只是自动化测试框架的组成部分之一。
0

2.pytest简介

  • pytest是一个非常成熟的python单元框架,灵活,容易上手。
  • pytest可以和selenium,requests,appium结合实现web自动化、接口自动化
  • pytestk可以实现测试用例的跳过以及reruns失败测试用例的重试。
  • 可以和allure生成非常美观的测试报告
  • 可以和Jenkins持续集成
  • 有很多非常强大的插件,能够实现很多实用的操作。例如:
pytest-html(生成html格式的自动化测试报告)
pytest-xdist 测试用例分布式执行,多cpu分发
pytest-ordering 用于改变测试用例的执行顺序
pytest-rerunfailures 用例失败后重重跑
allure-pytest 用于生成美观的测试报告
 
0
放到requirements.txt中,通过pip install -r requirements.txt
默认的测试用例的规则
  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由模块名,分隔符,类名,方法名,函数名组成。
0
 
 
0

2.命令行模式:

  • 运行所有:pytest
  • 运行指定模块:pytest -vs test_login.py
  • 运行指定目录;pytest -vs ./interface_testcase
  • 指定目录:pytest -vtest_04_funcs ./interface_testcase/test_interface.py::test_04_func

2.1参数详解

-s:表示输出调试信息,包括输出调试打印信息
-v:表示详细的方式,类名 测试名
-vs:这两个参数可以合并
-n:支持多线程或者分布式运行测试用例
如:pytest -vs ./testcase/test_login.py -n 2
--reruns NUM:失败用例重跑
-x:表示只要一个用例报错,那么测试停止
--maxfail=2 允许的最大失败次数
-k:根据测试用例的部分字符串指定测试用例
如:pytest -vs ./testcase -k "ao"
0
 
 

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

pytest.ini是pytest单元测试框架的核心配置文件。 文件位置一般放在项目的根目录,编码必须是ANSI,作用可以改变pytest的默认行为。运行的规则不管是主函数模式运行,命令行模式运行,都会去读取这个默认配置文件。
0
[pytest] addopts= -vs #命令行的参数,用空格分开 testpaths = ./testcase #测试用例的路径 python_files = test_*py #模块名的规则 python_classes = Test* #类名的规则 python_functions = test #方法名的规则

四、pytest执行测试用例的顺序是怎样的呢?

默认从上到下。还可以通过标记方式改变默认执行顺序,试用mark标记@pytest.mark.run(order=)
0