首页 > 其他分享 >Pytest自动化测试框架常用参数

Pytest自动化测试框架常用参数

时间:2023-04-28 17:01:26浏览次数:30  
标签:框架 -- pytest assert 用例 Pytest 自动化 test tb

一、常用参数

1.指定执行文件/用例

不带参数,仅带文件名/文件相对路径/文件绝对路径

测试文件::测试类:执行指定类

测试文件::测试类::用例:执行指定用例


2.短命令选项

-v:输出详细信息

-q:简化输出信息

-k:根据关键字表达式执行

-x:失败则退出执行

-m 别名:只执行被标记的用例、

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


3.长命令选项

--durations=n:统计执行速度最慢的用例,值为0时,统计后由大到小排序

--maxfail=num:指定执行失败最大次数,超过则停止执行

--reruns n:失败用例重跑n次

--tb=no/line/short/long/native/auto:设置输出失败时打印的信息的显示

 

二、指定执行文件/用例

01指定文件执行

指定文件执行语法:pytest 文件名注:执行文件两种方式,进入文件所在的目录,或者带上文件的绝对或相对路径

# 已在test.py文件所在目录,指定执行test_1.py的文件
pytest test_1.py

# 带上文件的相对路径
pytest /xxx/test_1.py

#带上文件的绝对路径
pytest D:/xxx/test_1.py

  


02测试文件::测试类:执行指定类

测试文件::测试类:执行指定类

class TestClass:
    def test_1(self):
        assert 2 == 2
        
    def test_2(self):
        assert 3 == 3



pytest test_1.py::TestClass

   

03测试文件::测试类::用例:执行指定用例

测试文件::测试类::用例:执行指定用例

class TestClass:
    def test_1(self):
        assert 2 == 2
        
    def test_2(self):
        assert 3 == 3



pytest test_1.py::TestClass::test_2

   

三、短命令选项

01 -v

-v:输出详细的信息

class TestClass:
    def test_1(self):
        assert 1 == 2

    def test_2(self):
        assert 2 == 2


pytest -v

  

02-q

-q:与-v正好相反,简化输出信息

class TestClass:
    def test_1(self):
        assert 1 == 2

    def test_2(self):
        assert 2 == 2


pytest -q

  

03-k

-k:执行用例包含某个关键字

语法:pytest -k "类名/方法名/类名 and not 方法名"

备注:这里的类名和方法名可模糊匹配,包含该类名的关键字和方法名的关键字符合规则即可

class TestClass:
    def test_1(self):
        assert 1 == 2

    def test_2(self):
        assert 2 == 2



# 执行TestClass测试类下的所有方法
pytest -k "TestClass"


# 执行test_2测试用例
pytest -k "test_2"


# 匹配类名或方法名包含关键字“test”的用例执行
pytest -k "test"


# 执行TestClass测试类下的方法,除了test_1
pytest -k "TestClass and not test_2"

  

04-x
-x:失败则退出执行
执行t包含两个用例,执行test_1用例失败后退出,不再执行test_2用例

class TestClass:
    def test_1(self):
        assert 1 == 2

    def test_2(self):
        assert 2 == 2


pytest -x

  

05-m

-m 别名:只执行被标记的用例

import pytest

class TestClass:
    def test_1(self):
        assert 1 == 2

    # 用例标记为“base”
    @pytest.mark.base
    def test_2(self):
        assert 2 == 2


pytest -m base


备注:运行有告警信息,什么原因呢?
原因:主要是我们设置的标签没有注册,虽然可以运行,但是会报告警信息。
前面我们有说过pytes的执行规则,默认执行test_开头的用例,但是如果不想要根据默认的规则来执行,我们可以通过注册标签,并且在用例上打标签,然后再运行指定标签相关的用例执行。
解决方案:将标签通过pytest.ini的配置文件注册下即可,新建一个pytest.ini的文件,按以下的格式注册标签:
注意:pytest.ini 文件中只能用纯英文字符,不能使用中文,包括中文格式的冒号和空格

[pytest]
markers = 
        base:冒号后添加可选描述,这里的描述用英文描述,禁止使用中文描述

  

06-s

-s:表示输出调试信息,包括print打印信息

import pytest

class Test1:
    def test_1(self):
        assert 1 < 2
        print("这是打印信息")


pytest -s

  

四、长命令选项

01--duration

--durations=n:统计执行速度最慢的n条用例,值为0时,显示所有用例的执行时间,统计后由大到小排序

class TestClass:
    def test_1(self):
        assert 1 == 2

    def test_2(self):
        assert 2 == 2


# duratons值为1时,统计执行速度最慢的1条用例
pytest --durations=1

  

02--maxfail

--maxfail=num:指定执行失败最大次数,超过则停止执行

class TestClass:
    def test_1(self):
        assert 1 == 2

    def test_2(self):
        assert 2 == 3

    def test_3(self):
        assert 3 == 4


pytest --maxfail=2

  

03--tb

--tb=no/line/short/long/native/auto:设置失败时打印的信息的显示方式

  • --tb=no:不显示失败时的回溯信息,也就是没有FAILURES片段内容
  • --tb=auto:默认值,仅打印第一个以及最后一个测试用例的回溯信息
  • --tb=line:隐藏失败时其他的回溯信息,只显示用例执行失败的位置
  • --tb=short:简化输出失败时的回溯信息,仅显示报错的代码,不显示非报错代码
  • --tb=long:输出失败时更为详细的回溯信息
  • --tb=native:只显示python标准库的回溯信息
import pytest

class Test:
    def test_1(self):
        assert 1 > 2

--tb=no:不显示失败时的回溯信息,也就是没有FAILURES片段内容
pytest --tb=no

--tb=auto:默认值,仅打印第一个以及最后一个测试用例的回溯信息
pytest --tb=auto

--tb=line:隐藏失败时其他的回溯信息,只显示用例执行失败的位置
pytest --tb=line

--tb=short:简化输出失败时的回溯信息,仅显示报错的代码,不显示非报错代码
pytest --tb=short

--tb=long:输出失败时更为详细的回溯信息
pytest --tb=long

--tb=native:只显示python标准库的回溯信息
pytest --tb=native

  

标签:框架,--,pytest,assert,用例,Pytest,自动化,test,tb
From: https://www.cnblogs.com/pywen/p/17362635.html

相关文章

  • 动力节点老杜Vue框架教程【五】Vuex
    Vue.js是一个渐进式MVVM框架,目前被广泛使用,也成为前端中最火爆的框架Vue可以按照实际需要逐步进阶使用更多特性,也是前端的必备技能动力节点老杜的Vue2+3全家桶教程已经上线咯!学习地址:https://www.bilibili.com/video/BV17h41137i4/视频将从Vue2开始讲解,一步一个案例,知识点......
  • 2023面试自动化测试面试题【含答案】,建议收藏
    1、你做了几年的测试、自动化测试,说一下selenium的原理是什么?我做了五年的测试,1年的自动化测试;selenium它是用http协议来连接webdriver,客户端可以使用Java或者Python各种编程语言来实现;2、什么项目适合做自动化测试?关键字:不变的、重复的、规范的第一点,需求变化不能......
  • Spring理解及源码框架
    1、容器与Bean容器理解从这张图能看到重要容器有BeanFactoryConfigurableApplicationContext它们的关系是ConfigurableApplicationContext间接继承了ApplicationContext然后间接继承了BeanFactoryBeanFactory从侧面看到Spring有在用工厂模式。除此之外spring还用了单例模式、......
  • Mybatis总体框架设计
    Mybatis架构概览Mybatis架构整体设计如下:接口层和数据库交互的方式Mybatis和数据库的交互方式有两种使用传统的MyBatis提供的API;使用Mapper接口使用传统的MyBatis提供的API这是传统的传递StatementId和查询参数给SqlSession对象,使用SqlSession对象完成和数据库的交......
  • pytest---增加log日志(pytest.ini)
    前言在自动化操作过程中,我们可以通过增加log日志的情况进行更加直观的了解我们测试用例的执行情况,包括执行状态,方便排查问题和分析问题,前面有简单介绍pytest.ini这个文件,他可以帮助我们更加方便的执行测试用例,pytest.ini中有单独为log日志增加的一些信息log_clilog_cli:表示在执......
  • 展现AI与自动化测试技术之间的神奇化学反应
    目录零:前言一、介绍1.1、什么是自动化测试技术1.2、痛点1.3、几款优秀的自动化测试工具介绍1.3.1、Selenium1.3.2、龙测AI-TestOps云平台1.3.3、TestCafe二、实操2.1、主要功能模块介绍2.2、实战演练2.2.1、创建web项目2.2.2、录制流程图2.2.3、创建测试计划任务2.2.4、查看测试报......
  • 【0基础学爬虫】爬虫基础之自动化工具 Playwright 的使用
    大数据时代,各行各业对数据采集的需求日益增多,网络爬虫的运用也更为广泛,越来越多的人开始学习网络爬虫这项技术,K哥爬虫此前已经推出不少爬虫进阶、逆向相关文章,为实现从易到难全方位覆盖,特设【0基础学爬虫】专栏,帮助小白快速入门爬虫,本期为自动化工具playwright的使用。概述......
  • Selenium自动化测试面试题
    Selenium自动化测试面试题一、目录1、什么是自动化测试、自动化测试的优势是什么?2、什么样的项目比较适合做自动化测试,什么样的不适合做自动化测试?3、说一下开展自动化工作的主要流程是怎样的?4、在制定自动化测试计划的时候一般要考虑哪些点?5、编写自动化脚本时的一些规范?6、......
  • 物联网开源框架
    物联网(IoT)微服务是将物联网应用程序拆分为一组独立、可复用和可组合的服务,以简化开发和部署过程。学习物联网微服务时,你可以参考以下一些经典的开源框架:1.EclipseIoT开源项目:EclipseIoT提供了一系列物联网相关的开源项目,包括协议实现、设备管理和数据分析等。一些重要的项目......
  • Langchain框架 prompt injection注入
    Langchain框架promptinjection注入PromptInjection是一种攻击技术,黑客或恶意攻击者操纵AI模型的输入值,以诱导模型返回非预期的结果Langchain框架LangChain是一个基于大语言模型进行应用开发的框架。所谓大语言模型(LargeLanguageModels,LLMs),是指基于海量语料训练、......