1、pytest介绍:基于unittest 之上的单元测试框架

  1.1、自动发现测试模块和测试用例;

    unitest 需要添加用例,(泰斯特楼贷)加载器加载测试用例

    pytest 只需要一条代码就可以

  1.2、断言使用 assert + 表达;

    unitest 定义了所有的 断言方式

    pytest  只需要使用一个关键字 assert + 表达式 就可以了,表达式为真则断言通过,表达式为假则断言失败

  1.3、pytest 可以设置测试会话级、模块级、类级、函数级的 fixtures;

  1.4、有丰富的插件库,目前在600个以上(框架库插件地址:http://plugincompat.herokuapp.com/)

2、pytest 收集测试用例规则(按照:目录-文件-函数/类)

  2.1、默认从当前目录中搜集测试用例,即在那个目录下运行pytest  命令,则从那个目录当中搜索

    2.2、搜索规则:进入目录后,在按照搜索规则搜索用例

      2.2.1、符合命名规则    test_*.py   或者   *_test.py   的文件

      2.2.2、以   test_   开头的函数名

      2.3.3、以 Test  开头的测试类(没有   _init_  函数)当中,以  test_  开头的函数

3.执行方式

第一种:cmd  中执行  pytest 命令;先进入代码所在文件,然后执行 pytest 命令

==========   testsession starts ========:代表会话开始

  • python3.7:代表那个平台
  • pytest-5.2.1 :代表pytest版本
  • rootdir:代表搜索用例的地址

第二种:同第一种方法:在 pycharm 控制台的   Terminal 功能,执行  pytest 命令

命令:pytest

pytest -h     :控制台查看命令行参数

执行标签名 aaa 的测试用例
pytest -m 标签名   :通过命令行 -m 过滤用例运行
例如:pytest -m aaa pytest -m 标签名 -s -v   :控制台搜索输出详情用例名,可以看到成功与失败提示
例如:pytest -m aaa-s -v

实例:

 

第三种:pytest 的 main 函数 (同前两种方法)

import pytest
if __name__ == '__main__':
pytest.main()

3、pytest - Mark(打标签是为了筛选测试用例:冒烟、回归)

  3.1、注册标签名

    3.1.1、注册方式:创建  pytest.ini 文件,在文件中按如下形式添加标签名

[pytest]
markers=
aaa:mao yan
bbb
ccc
ddd # 标签名冒号后面可以添加注释信息必须是英文
# 红色字段为固定模式,不能改变

    3.1.2、在测试用例/ 测试类前面加上标签:@pytest.mark.已注册的标记名

import pytest

# 单个标记
@pytest.mark.aaa
def test_aaa():
assert 100 == 100

    3.1.3、可以在一个用例上打多个标签,多次使用:@pytest.mark.已注册的标记名

import pytest

# 多个标记
@pytest.mark.aaa
@pytest.mark.ddd
def test_bbb():
assert 200 == 200

    3.1.3、在给类打标签,类里面的函数打标签

# 给测试类打标签
@pytest.mark.ddd
class TestDemo:
@pytest.mark.bbb
def test_ccc(self):
assert 300 == 300 @pytest.mark.ccc
def test_ddd(self):
assert 400 == 400 def test_0_eee(self):
assert 500 == 500

  3.2、方式二:

    3.2.1、在测试类里,使用以下申明(测试类下,所有用例都被打上该标签)

class TestDemo:
# 单个标签
pytestmark = pytest.mark.已注册标签名
# 多个标签
pytestmark = [pytest.mark.标签1, pytest.mark.标签1]

    3.2.2、在模块文件里(py文件下,所有测试函数和测试类里面的测试函数,都有会打上该标签)

import pytest
# 单个标签
pytestmark = pytest.mark.已注册标签名
# 多个标签
pytestmark = [pytest.mark.标签1, pytest.mark.标签1]

4、pytest用例执行顺序

  4.1、文件名称 按 ASCII 码排序

  4.2、文件内部按代码先后顺序排序

大佬文档:https://www.cnblogs.com/Simple-Small/p/11077123.html

*******请大家尊重原创,如要转载,请注明出处:转载自:https://www.cnblogs.com/shouhu/,谢谢!!*******

pytest框架-介绍、Mark(打标签)、命令运行用例、用例执行顺序、的更多相关文章

  1. Pytest框架介绍

    Pytest框架介绍.安装 pytest是python测试框架,与python自带的unittest测试框架类似,但是比unittest框架使用起来更简洁,功能更强大 pytest特征 1:断言提示信 ...

  2. Scrapy框架——介绍、安装、命令行创建,启动、项目目录结构介绍、Spiders文件夹详解(包括去重规则)、Selectors解析页面、Items、pipelines(自定义pipeline)、下载中间件(Downloader Middleware)、爬虫中间件、信号

    一 介绍 Scrapy一个开源和协作的框架,其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的,使用它可以以快速.简单.可扩展的方式从网站中提取所需的数据.但目前Scrapy的用途十分广泛,可 ...

  3. pytest框架之mark标签

    对测试用例打标签,在运行测试用例的时候,可根据标签名来过滤要运行的用例. 一.注册标签名 1.创建pytest.ini文件,在文件中按如下方式添加标签名: [pytest] markers = smo ...

  4. pytest一:pytest 框架介绍

    pytest 是 python 的一种单元测试框架,与python 自带的 unittest测试框架类似,但是比 unittest 框架使用起来更简洁,效率更高.根据pytest 的官方网站介绍,它具 ...

  5. pytest框架之rerunfailures失败重运行机制

    web自动化测试中,稳定性在整个测试运行中都至关重要,但不能保证测试脚本或者测试环境一直都能够稳定,它牵扯到诸多因素,在这里就不赘述,pytest框架相较于unittest的一大优势就在于拥有用例失败 ...

  6. 【pytest系列】- pytest测试框架介绍与运行

    如果想从头学起pytest,可以去看看这个系列的文章! https://www.cnblogs.com/miki-peng/category/1960108.html 前言​ ​ 目前有两种纯测试的测 ...

  7. pytest框架之命令行参数1

    前言 pytest是一款强大的python自动化测试工具,可以胜任各种类型或者级别的软件测试工作.pytest提供了丰富的功能,包括assert重写,第三方插件,以及其他测试工具无法比拟的fixtur ...

  8. 【pytest系列】- mark标记功能详细介绍

    如果想从头学起pytest,可以去看看这个系列的文章! https://www.cnblogs.com/miki-peng/category/1960108.html mark标记 ​ 在实际工作中, ...

  9. 『德不孤』Pytest框架 — 1、Pytest测试框架介绍

    目录 1.什么是单元测试框架 2.单元测试框架主要做什么 3.单元测试框架和自动化测试框架有什么关系 4.Pytest测试框架说明 5.Pytest框架和Unittest框架区别 (1)Unittes ...

随机推荐

  1. selector是在文件夹drawable中进行定义的xml文件转载 https://www.cnblogs.com/fx2008/p/3157040.html

    获取Drawable对象: Resources res = mContext.getResources(); Drawable myImage = res.getDrawable(R.drawable ...

  2. springboot-配置多数据源(AOP实现)(HikariCP + MybatisPlus + mysql + SqlServer)

    场景: springboot项目,默认使用HikariCP连接池 + MybatisPlus持久层框架 + mysql数据库等一套流程,现需求需去第三方sqlserver数据库拉取数据,直连数据库,不 ...

  3. 4_9.springboot2.x之使用外置servlet容器原理解析

    问题概述 嵌入式Servlet容器: 应用打成可执行的jar 优点:简单.便携: **缺点:**默认不支持JSP.优化定制比较复杂(使用定制器[ServerProperties.自定义WebServe ...

  4. centos zabbix4.0编译安装

    zabbix的部署原理 zabbix server需要把监控数据入sql数据库,所以得Mysql环境 zabbix的web是基于php开发的,所以得LNMP环境 部署zabbix server和zab ...

  5. System.UriFormatException: Invalid URI 解决方法

    mobox 企业网页登陆界面,sa 登陆后 提示 System.UriFormatException: Invalid URI: The URI scheme is not valid. at Sys ...

  6. thinkphp 组合查询

    组合查询的主体还是采用数组方式查询,只是加入了一些特殊的查询支持,包括字符串模式查询(_string).复合查询(_complex).请求字符串查询(_query),混合查询中的特殊查询每次查询只能定 ...

  7. IDEA Error:java: Compilation failed: internal java compiler error 解决方案

    这是由于版本不一致导致的 file => settings => 搜索找到Java Compiler 把相应jdk版本改成1.8 ctrl+alt+s

  8. display和position以及其余标签的使用

    今天主要学习了两大标签display和position:中文名字是显示和位置,这两个元素在前端的学习还是很重要的,因为在css的布局里面会经常用到这两种元素. 还有一些其余的标签例:margin,pa ...

  9. vue之vant组件下拉加载更多

    vant地址:https://youzan.github.io/vant/#/zh-CN/intro 基础用法 List 组件通过loading和finished两个变量控制加载状态,当组件滚动到底部 ...

  10. .git文件夹太大问题及解决方法

    最近我们做了自动化构建, 发现文件.git文件夹越来越大, 求后端小伙伴帮忙, 小伙伴指点了一下说周末弄了一下, 忘记命令的.大致的意思就是找到git 提交了哪些大文件. 然后重构git, 先分享给小 ...