做Python自动化测试,我教你个方法还能快一倍!

如果你学过 python 进行自动化测试,你一定使用过 unittest。

今天我们要讲的 nose2 是一个高级版本的 unittest。他比 unittest 更容易理解,用起来也更加方便一些。

快速开始

nose2 在 unittest 的基础上开发的,所以如果你之前是用 unittest 做测试,但是有想使用 nose2 的新特性,你可以在不改变原有代码的情况下直接使用 nose2。

图片

安装

nose2 是第三方库,需要自己安装,直接在 cmd 运行 pip 指令安装:

图片

 

运行测试用例

在快速开始当中,我们使用了在 python 代码中用 nose2.main() 的方式去运行测试用例,这样是完全 OK 的。

还有另外一种运行方式:直接在命令行通过 nose2 命令运行。他会在python文件中查找名称以 test 开头的测试文件,并运行它发现的每个以 test 开头的测试函数名称。

比如说我的项目当中有 test_add.py, test_minus.py 这些文件,如果我想运行所有的测试用例,只需要在当前文件下输入 cmd 命令,他就会自动去查找所有的测试用例,然后去执行: 

图片

1,运行指定文件夹下的测试用例

 

图片

我把登录相关的用例都放到一个叫 login_case 的文件夹当中,当我执行 nose2 -s login_case 的时候,其他的用例是不会执行的, nose2 只会去找 login_case 文件夹下面的用例。

图片

2,运行指定的测试用例

图片

在这个例子当中:

  • login_case 是存储的文件夹

  • test_nose2_dir 是文件名称

  • test_login 是测试用例方法的名称

每一个层级之间,用 . 号隔开。

如果想测试 test_nose2_dir.py 文件下的所有用例:

图片

如果想测试 login_case 文件夹下的所有用例:

图片

 

测试用例的命名

为什么 nose2 可以自动查找用例并且执行呢?

是因为他在内部制定了规则,然后根据规则去判定。

比如首先他规定,你所有的测试用例文件名称应该以 test 开头,如果你不这么做,那这个文件就不是测试用例文件。以下的文件名都会被判定为测试用例文件:

图片

而这一些不会被判定为测试用例文件,从而被忽略:

图片

总结

本篇我们介绍了 nose2 的简单入门:

  • nose2 是在 unittest 的基础上实现的,可以和 unittest 兼容,如果你没有接触过 unittest, 建议先从 unittest 学起,很多同学在网上看到一些说 unittest 过时或者是说 unittest 不高级的言论就开始批判,不对。 unittest 是 其他 python 单元测试框架的基础,没学好 unittest , 其他的框架你也学不好。

  • nose2 可以自动发现测试用例,你只需要运行 nose2 命令就可以,用起来非常简单。

  • nose2 的测试用例名称要符合规范,以 test 开头,否则不会被判定为用例。

  • 你可以通过 -s 运行指定文件下的用例,也可以通过 . 号去运行单个用例。

 感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

 

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取 

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

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

相关文章

python 水质日历热力图

利用日历热力图可以方便的查看站点水质全年的变化情况。 接口获取站点数据 这一步根据自己实际情况,也可以读取excel、MySQL读取数据。这里把API地址已隐去。 import numpy as np import calendar import requests import json import pandas as pd import time f…

python基于GCN(图卷积神经网络模型)和LSTM(长短期记忆神经网络模型)开发构建污染物时间序列预测模型

在以往的时间序列预测建模中广泛使用的是回归类算法模型和RNN类的算法模型,相对来说技术栈会更稳定一些,最近有一个实际业务场景的需求,在建模的过程中要综合考虑其余点位的影响依赖,这时候我想到了之前做过的交通流量和速度预测相…

全国第一届学生(青年)运动会女子拳击比赛60公斤冠军载誉归来

11月16日,参加全国第一届学生(青年)运动会女子拳击比赛60公斤冠军阿依古再丽麦合苏提抵达和田。 中华人民共和国第一届学生(青年)运动会拳击比赛11月12日在广西贺州市钟山县体育馆落下帷幕,本届比赛新疆拳击…

60V降压恒流芯片 高调光比LED驱动器 SL6015B替代PT4115 电路简单

在LED照明领域,降压恒流芯片是一种非常重要的芯片,它可以将输入的电压降低并输出稳定的电流,从而为LED灯提供合适的驱动电源。其中,SL6015B是一款非常优秀的降压恒流芯片,它具有高调光比、简单的电路设计、低成本的优点…

服务案例|故障频发的一周,居然睡得更香!

医院运维有多忙? 医院运维,听起来平平无奇毫不惊艳,但其中的含金量,可不是“维持系统正常运行”就能总结的。毕竟医院对业务连续性的超高要求,让运维面对的问题都是暂时的,下一秒可能就有新问题需要发现解…

一般人用 Linux 算是找虐吗?

一般人用 Linux 算是找虐吗? 主要得看用什么Linux,毕竟Android也算是Linux,满大街一般人整天在用,也没什么人觉得自己在找虐。 最近很多小伙伴找我,说想要一些Linux的资料,然后我根据自己从业十年经验&…

【Linux】:进程间通信和日志模拟

进程间通信 一.基本概念二.简单的通信-管道(匿名管道)1.建立通信信道2.通信接口 三.命名管道三.模拟命名管道通信(加上日志)1.完整代码2.基本使用 一.基本概念 是什么 两个或多个进程实现数据层面的交互。 因为进程独立性的存在,导致进程间…

spark shuffle 剖析

ShuffleExchangeExec private lazy val writeMetrics SQLShuffleWriteMetricsReporter.createShuffleWriteMetrics(sparkContext)private[sql] lazy val readMetrics SQLShuffleReadMetricsReporter.createShuffleReadMetrics(sparkContext)用在了两个地方,承接的是…

禁止安装新软件怎么设置(超详细图文介绍)

很多公司的网管向我们反应,总是有员工随意下载软件,并且不去正规网站、正规官网下载,导致公司的电脑总是又卡又慢,网管的工作很难开展。 此时就需要对公司安装软件的情况,进行统一管控了。 方法一:适合个人…

Git - 版本控制系统

目录 一、概述 配置用户信息 二、Git仓库 创建 本地仓库 git的三个区域 示例 Git文件状态 举例 三、区域使用 暂存区使用 版本库使用 文件忽略 四、分支 步骤 合并与删除 步骤 合并与提交 合并冲突 五、常用指令 六、Git远程仓库 使用步骤 克隆 同步 …

一键合并多个TXT文本,将保存在TXT的快递单号进行一键合并

如果你需要处理大量的TXT文本文件,那么你可能会遇到需要将这些文件合并为一个文件的情况。这不仅涉及到文件的组织和管理,还可能涉及到文件内容的连贯性和完整性。现在,我们有一个强大的工具,可以帮助你轻松实现一键文件整理&…

身份证号码校验

根据《新版外国人永久居留身份证适配性改造要点》,公司需要把代码中对身份证的校验进行优化 就文档内容可以看到需要优化的要点是: 新版永居证号码以 9 开头 受理地区代码出生日期顺序码校验码;(共18位) eg&#xff…

2023年约特干故城夜间演艺《万方乐奏有于阗》完美谢幕

11月19日,记者走进约特干故城看到演员在欢乐地跳着刀郎舞和古典舞,庆祝今年以来夜间演艺《万方乐奏有于阗》演出200场完美谢幕。 11月19日在约特干故城,演员正在表演迎宾乐舞。阿卜力克木依卜拉依木摄 当天晚上,城楼上旌旗猎猎&am…

Transmit v5.10.3(FTP客户端)

Transmit 5是一款由Panic开发的功能强大的FTP(文件传输协议)客户端软件,专为 macOS 平台设计。它提供了简单、直观的界面和丰富的功能,使用户能够轻松地管理和传输文件。 在文件传输和同步方面,Transmit 5提供了强大的文件同步功能&#xff…

18张值得收藏的高清卫星影像

这里分享的18张高清卫星影像,由吉林一号卫星拍摄。 原图来自长光卫星嘉宾在直播中分享的PPT演示文档。 18张高清卫星影像 吉林一号高分04A星,于2022年05月21日拍摄的北京紫禁城高清卫星影像。 北京紫禁城 云南昆明滇池国际会展中心高清卫星影像&…

【STM32外设系列】JW01三合一空气质量检测模块

🎀 文章作者:二土电子 🌸 关注公众号获取更多资料! 🐸 期待大家一起学习交流! 文章目录 一、JW01模块简介二、数据格式介绍三、程序设计3.1 串口初始化3.2 串口接收中断服务函数3.3 数据解析函数 四、其他…

思福迪 运维安全管理系统 test_qrcode_b 远程命令执行漏洞

思福迪 运维安全管理系统 test_qrcode_b 远程命令执行漏洞 一、漏洞描述二、漏洞影响三、网络测绘四、漏洞复现1.手动复现2.自动化复现3.python源代码 免责声明:请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任…

OOM问题排查+Jvm优化

OOM问题排查: 1、top命令:查看cpu和内存的使用情况。 2、jstat命令:查看YGC和FGC情况,一般都是老年代不够用。导致OOM 3、jmap命令: 查看哪个类的实例过多,以每个类占用多少了内存。4、jstack 查看线程与线程之间的阻…

【广州华锐互动】昆虫3D虚拟动态展示:探索神奇的微观世界

在这个充满科技魅力的时代,我们可以通过各种方式去了解和探索自然界的奥秘。而昆虫作为地球上最为丰富多样的生物群体之一,其独特的生活习性和形态特征一直吸引着人们的目光。 由广州华锐互动开发的昆虫3D虚拟动态展示系统,成为了一种全新的科…

原始类型 vs. 对象(基本类型 vs. 引用类型)

原始类型 首先我们先看一段代码: let age 30; let oldAge age; age 31; console.log(age); console.log(oldAge);在 JavaScript 中,原始类型的赋值是通过值复制的方式进行的,而不会相互影响。只有对象类型的值才是通过引用复制的方式进行…