pytest框架

一、pytest默认测试用例规则

  1. 模块名必须以test_或_test结尾
  2. 类名必须以Test开头
  3. 测试用例名必须以test_开头

二、pytest和unittest

pytest和unittest都是自动化框架,与selenium、requests、appium结合分别实现web自动化,接口自动化,APP自动化,主要执行如下操作

  1. 发现用例
  2. 执行用例
  3. 判断结果
  4. 生成报告

具有非常强大的插件

  • pytest      #本身
  • pytest-html   #生成html报告
  • pytest-xdist   #多线程执行用例
  • pytest-ordering   #控制测试用例的执行顺序
  • pytest-rerunfailures   #失败用例重跑
  • allure-pytest     #生成美观的Allure报告

批量执行插件:将插件放在txt文件下,如上(建议不要有中文),在控制台Terminal执行pip  install  -r requirement.txt

 三、pytest运行方式

  • 通过main方式运行
import pytest
if __name__ == '__main__':
pytest.main()
  • 通过命令行运行
pytest
参数:
-vs -v输出详细信息,-s输出调试信息
-n 多线程执行
--reruns 失败用例重跑
--html 生成HTML测试报告
  • 通过pytest.ini文件执行
不管是主函数运行还是命令行运行,都是通过pytest.ini全局配置文件执行,文件配置如下
[pytest]
addopts=-vs -m smoke #smoke是冒烟测试,在需要冒烟测试的函数上方增加装饰器@pytest.mark.smoke,smoke是标签名称,可以用多个标签,addopts=-vs -m "smoke or mm",
testpaths=./testcase     #测试用例的路径,只执行这个目录下的用例
python_files=test_*py
python_classes=Test*
python_functions=test*
markers=

四、pytest前后置

第一种:

def setup_class(self):
print("类之前执行的操作")
def teardown_class(self):
print("类之后执行的操作")

def setup(self):
print("用例之前执行的操作")
def teardown(self):
print("用例之后执行的操作")

第二种

fixture(实现指定用例执行前后置),完全可以替换上面的方法

装饰器

@pytest.fixture(scope="作用域",params="参数化",autouse="自动执行",ids="参数名别名",name="fixture别名")

scope: 

function 用例

class 类

module 模块

package/session   会话级别

 五、接口关联封装

  1. 中间变量统一管理
  2. 查看中间变量的值

 

 

 

端到端

posted @ 2022-07-22 00:01  稻草人&梦想  阅读(75)  评论(0)    收藏  举报