Pytest与unittest区别

 🔥 交流讨论:欢迎加入我们一起学习!

🔥 资源分享耗时200+小时精选的「软件测试」资料包

🔥 教程推荐:火遍全网的《软件测试》教程  

📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!

api的编写:完整的api测试用例中,要考虑到每个测试点的初始化,测试步骤,测试断言还有清理的操作

unittest和pytest框架之间的区别:
1,unittest需要继承unitttest.TestCase类,pytest不需要继承,可以是函数也可以是类。

2,unittest参数化需要依赖第三方库比如说ddt,pytest参数化直接用内部的parametrize

3,unittest测试报告是HTMLTestRunner,pytest是Pytest-html或allure

4,unittest没有插件,pytest有丰富的插件如:pytest-cov

5,unittest不支持失败重试,pytest支持失败重试

 pytest使用规范:

 

测试用例的结果信息:

import pytest
 
 
def test_passing():
   assert  (1,2,3)==(1,2,3)
 
 
def test_failing():
   assert  1==2
 
@pytest.mark.skip() # 跳过
def test_skip():
   assert 1==1
 
@pytest.mark.xfail() # 预期失败
def test_xfail():
   assert 1==2
 
 
@pytest.mark.xpass() # 预期成功
def test_xpass():
   assert 1==1

pytest测试用例的执行顺序是按从上往下的顺序执行的 

 pytest的执行方式:
def test_login_001():
   assert 1==1
 
 '''tests包名  test_login.py:文件名'''
 
class TestBaidu(object):
   def test_baidu_001(self):
      pass
 
   def test_baidu_002(self):
      pass

 

  package级别:python -m pytest -v tests

        model级别:python -m pytest -v tests/test_login.py::test_login_001

        class级别:python -m pytest -v tests/test_login.py::TestBaidu

pytest执行命令

按分类执行测试用例

        python3 -m pytest -v  -k   "profile or register"

         添加分组:@pytest.mark.login(组名)          分组执行python -m pytest -v  -m   "login"

        执行失败立刻停止:python3 -m pytest -v -x test_login.py

        指定失败次数:--maxfail:pytest -v -x --maxfail=2 -m login

        定位错误:--lf          pytest --lf -m login

        忽略执行: -rs

        pytest -rs

import  pytest
 
@pytest.mark.login
def test_login_001():
   pass
 
@pytest.mark.skip(reason='忽略执行该测试点')
def test_login_002():
   pass

Pytest与WebDriver 

import pytest
 
 
def test_baidu_title(selenium):
    selenium.get('https://www.baidu.com/')
    assert selenium.title == '百度一下,你就知道'
 
 
def test_baidu_url(selenium):
    selenium.get('http://www.baidu.com/')
    assert selenium.current_url == 'https://www.baidu.com/'
 
'''执行命令:pytest -v pytest-selenium.py --driver Firefox'''

 

最后我邀请你进入我们的【软件测试学习交流群:785128166】, 大家可以一起探讨交流软件测试,共同学习软件测试技术、面试等软件测试方方面面,还会有免费直播课,收获更多测试技巧,我们一起进阶Python自动化测试/测试开发,走向高薪之路

作为一个软件测试的过来人,我想尽自己最大的努力,帮助每一个伙伴都能顺利找到工作。所以我整理了下面这份资源,现在免费分享给大家,有需要的小伙伴可以关注【公众号:程序员二黑】自提!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/356507.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何实现Win系统ssh连接Ubuntu使用vscode远程敲代码

最近,我发现了一个超级强大的人工智能学习网站。它以通俗易懂的方式呈现复杂的概念,而且内容风趣幽默。我觉得它对大家可能会有所帮助,所以我在此分享。点击这里跳转到网站。 文章目录 前言1、安装OpenSSH2、vscode配置ssh3. 局域网测试连接…

Unity 迭代器模式(实例详解)

文章目录 简介**实例1:遍历数组****实例2:自定义迭代器类****实例3:异步加载资源****实例4:游戏关卡序列****实例5:无限生成敌人** 简介 在Unity中,虽然不直接使用迭代器模式的原始定义(即设计…

EasyExcel通用导入 | 简单封装

0. 前言:1. 基本思路:2. 调用代码: 0. 前言: 之前做了好几个导入,用EasyExcel每次都要定义监听器去处理,就想能不能做个通用的方式,如下 1. 基本思路: 导入无非主要就是参数校验和数…

代码随想录刷题笔记-Day14

1. 对称二叉树 101. 对称二叉树https://leetcode.cn/problems/symmetric-tree/给你一个二叉树的根节点 root , 检查它是否轴对称。 示例 1: 输入:root [1,2,2,3,4,4,3] 输出:true 示例 2: 输入:root […

深度解析指针与数组:探索内存管理的艺术

目录 1.数组名的理解 sizeof(数组名),sizef中单独放数组名,这里的数组名表示整个数组,计算的是整个数组的大小,单位是字节 &数组名,这里的数组名表示整个数组,取出的是整个数组的地址 (整个数组的地…

【Java程序设计】【C00179】基于SSM的电影在线购票管理系统(论文+PPT)

基于SSM的电影在线购票管理系统(论文PPT) 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于ssm的电影在线购票管理系统 本系统分为前台用户和后台管理员2个功能模块。 前台用户:当游客打开系统的网址后,首先看到…

AR眼镜_ar智能眼镜显示方案|光学方案

AR眼镜是一种智能眼镜,能够将虚拟现实和现实世界相结合,使人们能够在日常生活中体验和参与虚拟现实。然而,AR智能眼镜的制造成本高,开发周期长。要实现AR眼镜的各项功能,需要良好的硬件条件,而AR智能眼镜的…

Mac忘记本机MySql密码怎么办?

Mac忘记本机MySql怎么办? 1.打开系统偏好设置 2.打开Mysql 3.停止服务 4.直接初始化服务上图有一个初始化数据库 5.输入8位密码确认 6.重启服务

如何使用docker compose安装APITable并远程访问登录界面

文章目录 前言1. 部署APITable2. cpolar的安装和注册3. 配置APITable公网访问地址4. 固定APITable公网地址 正文开始前给大家推荐个网站,前些天发现了一个巨牛的 人工智能学习网站, 通俗易懂,风趣幽默,忍不住分享一下给大家。 …

Java RC4加密算法

一、RC4加密算法 在密码学中,RC4(来自Rivest Cipher 4的缩写)是一种流加密算法,密钥长度可变。它加解密使用相同的密钥,因此也属于对称加密算法。 百度百科 - RC4:https://baike.baidu.com/item/RC4/34545…

DS:经典算法OJ题(1)

创作不易,友友们给个三连呗!! 本文为经典算法OJ题练习,大部分题型都有多种思路,每种思路的解法博主都试过了(去网站那里验证)是正确的,大家可以参考!! 一、移…

数据写入HBase(scala)

package sourceimport org.apache.hadoop.hbase.{HBaseConfiguration, TableName} import org.apache.hadoop.hbase.client.{ConnectionFactory, Put} import org.apache.hadoop.hbase.util.Bytesobject ffff {def main(args: Array[String]): Unit {//hbase连接配置val conf …

扫雷游戏(C语言)

目录 一、前言: 二、游戏规则: 三、游戏前准备 四、游戏实现 1、打印菜单 2、初始化棋盘 3、打印棋盘 4、布置雷 5、排雷 五、完整代码 一、前言: 用C语言完成扫雷游戏对于初学者来说,难度并不是很大,而且通…

Linux的优先级说明

一、背景 在工作中,不少同学对nice,priority,schedue策略,实时优先级,普通进程优先级的概念混淆,导致最后的代码可能引入bug,本文将统一进行说明,部分内容参考网络大佬的文章 &…

有趣的css - 第一个字符串自动生成文字图标

在设计 app 界面的时候,要展示一部分最新的资讯入口,然后出了一张下面的 UI 稿。 UI稿截图如下: 列表设计比较简单,就是列表前面的圆形图标这块,我个人觉得还是有点意思的。 一般的话,大概率都是用js限制…

MYSQL基本查询(CURD:创建、读取、更新、删除)

文章目录 前言一、Create1.全列插入2.指定列插入3.插入否则更新4.替换 二、Retrieve1.SELECT列2.WHERE条件3.结果排序4.筛选分页结果 三、Update四、Delete1.删除数据2.截断表 五、插入查询结果六、聚合函数 前言 操作关系型数据库的编程语言,定义了一套操作关系型…

OJ_糖果分享游戏

题干 c实现 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<vector> using namespace std;void ShareCandy(vector<int>& student) {int size student.size();vector<int> share(size); //保存每个同学交换前&#xff0c;糖果数量…

[机器学习]简单线性回归——梯度下降法

一.梯度下降法概念 2.代码实现 # 0. 引入依赖 import numpy as np import matplotlib.pyplot as plt# 1. 导入数据&#xff08;data.csv&#xff09; points np.genfromtxt(data.csv, delimiter,) points[0,0]# 提取points中的两列数据&#xff0c;分别作为x&#xff0c;y …

【hcie-cloud】【23】容器编排【k8s】【Kubernetes常用工作负载、Kubernetes调度器简介、Helm简介、缩略词】【下】

文章目录 单机容器面临的问题、Kubernetes介绍与安装、Kubernetes对象的基本操作、Kubernetes YAML文件编写基础Kubernetes常用工作负载Kubernetes常用工作负载简介创建一个无状态nginx集群无状态工作负载Deployment说明无状态工作负载Deployment常见操作创建一个有状态的MySQL…

单链表实现通讯录(增删查改)

前言 之前写了很多次通讯录&#xff0c;一次比一次复杂&#xff0c;从静态到动态&#xff0c;再到文件操作&#xff0c;再到顺序表&#xff0c;今天要好好复习一下单链表&#xff0c;于是乎干脆用单链表再写一遍。 首先我们之前已经用单链表写过他的增删查改了&#xff0c;于…