pytest基础知识一
pytest基础知识一
- pytest的介绍
- pytest的作用
- pytest的安装与版本查看
- pytest的基本应用
- 编写第一个简单的pytest应用
- pytest文件和函数命令规则
- pytest文件的三种运行方式
- 命令行运行
- PyCharm界面运行
- pytest.main()运行pytesr文件
- pytest常用的命令行运行参数
- pytest的框架结构
pytest的介绍
pytest官网:http://www.pytest.org/
pytest是Python的一款单元测试框架,在学习自动化测试过程中,我们最开学习的都是线性脚本,但是当学到一定阶段以及业务复杂度和数据量上来后,我们必须需求一种全新的框架思维来管理和规范我们的测试脚本,从而实现高类聚低耦合的理念。
pytest的作用
- 单测框架,比 unittest 测试框架更灵活
- 入门难度低 第三方库丰富性
- 通用性
- 与 allure 生成的报告非常的美观
- 定制性强
pytest的安装与版本查看
安装: pip install -U pytest
版本查看: pytest --version
pytest的基本应用
编写第一个简单的pytest应用
# 被测试函数
def add(a, b):return a + b# 测试脚本
def test_add():assert 3 == add(1, 2)
运行结果:
platform win32 -- Python 3.8.7, pytest-6.2.5, py-1.10.0, pluggy-0.13.1
rootdir: E:\Home_Work\Home_Work2\pytest01
plugins: allure-pytest-2.9.43, Faker-8.10.1, cov-2.12.1, forked-1.3.0, html-2.1.1, metadata-1.11.0, rerunfailures-10.1, testconfig-0.2
.0, xdist-2.3.0
collected 1 item test\test_add.py . [100%]========================================================= 1 passed in 0.94s =========================================================E:\Home_Work\Home_Work2\pytest01>
pytest文件和函数命令规则
pytest文件必须以 test开头或者 _ _ test.py 结尾,如 test__add 或 add_test.py结尾,否则在pytest解释器运行时,文件不能够被收集到。
pytest文件中测试类命名时,必须用Test开头
pytest文件中方法与函数命名必须要用 test__ 开头,函数没有用__test结尾的说法
def div(a, b):return a / bclass TestDiv:def test_div(self):assert 1 == div(1, 1)
pytest文件的三种运行方式
命令行运行
进入需要执行的Python文件目录下,打开命令行,输入pytest 文件名 如:pytest test_add.py
PyCharm界面运行
window:
第一步先设置默认运行的框架
第二步:点击倒三角,执行脚本
pytest.main()运行pytesr文件
1.删除之前运行过的IDE缓存
2.使用pytest.mian()运行pytest文件
要将默认框架切回unittest,用Python去运行才会生效
# 测试脚本
class TestAdd:def test_add(self):assert 3 == add(1, 2)def test_add2(self):assert 5 == add(1, 4)if __name__ == '__main__':pytest.main(["TestAdd::test_add2", "-vs"])
pytest常用的命令行运行参数
在实际生产中,测试用例都会在Jenkins或服务器上运行,那么这时候运行方式都是采用命令行去运行
例如在Jenkins运行接口测试用例
- pytest -k “add” 执行所有测试用例名中含有“add”的用例
- pytest - s 打印测试用例中print语句
- pytest -v 增加打印细节
- pytest - x 一旦发现失败用例,停止运行
- pytest -maxfail=2 当测试遇到两条失败,立刻停止运行
- pytest -m “标签名” 给测试用例加标签
pytest的框架结构
模块级: setup_module/teardown_module 模块始末,全局的(优先最高)
函数级: setup_function/teardown_function 只对函数用例生效(不在类中)
类级: setup_class/teardown_class 只在类中前后运行一次(在类中)
方法级: setup_method/teardown_methond 开始于方法始末(在类中)
方法级: setup/teardown 运行在调用方法的前后
#!/usr/bin/env python
# -*- coding: utf-8 -*-
'''
模块级(setup_module/teardown_module)模块始末,全局的(优先最高)
函数级(setup_function/teardown_function)只对函数用例生效(不在类中)
类级(setup_class/teardown_class)只在类中前后运行一次(在类中)
方法级(setup_method/teardown_methond)开始于方法始末(在类中)
类里面的(setup/teardown)运行在调用方法的前后
'''# 模块级别
def setup_module():print("资源准备:setup module")def teardown_module():print("资源准备:teardown module")def test_case1():print("case1")def setup_function():print("资源准备:setup function")def teardown_function():print("资源消毁:teardown function")class TestDemo:# 执行类 前后分别执行setup_class teardown_classdef setup_class(self):print("TestDemo setup_class")def teardown_class(self):print("TestDemo teardown_class")# 每个类里面的方法前后分别执行 setup, teardowndef setup(self):print("TestDemo setup")def teardown(self):print("TestDemo teardown")def test_demo1(self):print("test demo1")def test_demo2(self):print("test demo2")class TestDemo1:# 执行类 前后分别执行setup_class teardown_classdef setup_class(self):print("TestDemo setup_class")def teardown_class(self):print("TestDemo teardown_class")# 每个类里面的方法前后分别执行 setup, teardowndef setup(self):print("TestDemo setup")def teardown(self):print("TestDemo teardown")def test_demo1(self):print("test demo1")def test_demo2(self):print("test demo2")
pytest基础知识一相关推荐
- [源码解析] PyTorch 流水线并行实现 (1)--基础知识
[源码解析] PyTorch 流水线并行实现 (1)–基础知识 文章目录 [源码解析] PyTorch 流水线并行实现 (1)--基础知识 0x00 摘要 0x01 历史 1.1 GPipe 1.2 ...
- python基础知识测试题_Python中的单元测试—基础知识
python基础知识测试题 Unit testing is the number one skill which separates people who just finished their de ...
- 嵌入式Linux的OTA更新,基础知识和实现
嵌入式Linux的OTA更新,基础知识和实现 OTA updates for Embedded Linux, Fundamentals and implementation 更新的需要 一旦嵌入式Li ...
- 计算机基础知识第十讲,计算机文化基础(第十讲)学习笔记
计算机文化基础(第十讲)学习笔记 采样和量化PictureElement Pixel(像素)(链接: 采样的实质就是要用多少点(这个点我们叫像素)来描述一张图像,比如,一幅420x570的图像,就表示 ...
- 嵌入式linux编程,嵌入式Linux学习笔记 - 嵌入式Linux基础知识和开发环境的构建_Linux编程_Linux公社-Linux系统门户网站...
注:所有内容基于友善之臂Mini2440开发板 一.嵌入式Linux开发环境的构建 嵌入式开发一般分为三个步骤: 1.编译bootloader,烧到开发板 2.编译嵌入式Linux内核,烧到开发板 3 ...
- 《计算机网络应用基础》模拟试卷(六),《计算机与网络应用基础知识1》模拟试卷...
<计算机与网络应用基础知识1>模拟试卷 (4页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 <计算机与网络应用基础知识1& ...
- python向量计算库教程_NumPy库入门教程:基础知识总结
原标题:NumPy库入门教程:基础知识总结 视学算法 | 作者 知乎专栏 | 来源 numpy可以说是 Python运用于人工智能和科学计算的一个重要基础,近段时间恰好学习了numpy,pandas, ...
- python常用变量名_python基础知识整理
Python Python开发 Python语言 python基础知识整理 序言:本文简单介绍python基础知识的一些重要知识点,用于总结复习,每个知识点的具体用法会在后面的博客中一一补充程序: 一 ...
- 计算机基础知识掌握欠缺,《计算机基础知识》实验教学改革探讨.pdf
<计算机基础知识>实验教学改革探讨.pdf Science& TechnologyVision 科 技 视 界 科技 探·索·争鸣 计<算机基础知识>实验教学改革探讨 ...
最新文章
- Awesome Projects (汇聚全球所有
- 无人驾驶油电混动牵引车_比纯电动更轻,省油率高达10%!解读首台国产非插电式混动卡车...
- Android Wifi开发之WifiConfiguration
- php 怎么将a 转成65,详细阐述PHP环境下如何将gbk编码转成utf8格式
- Android官方开发文档Training系列课程中文版:OpenGL绘图之响应触摸事件
- python邮件图片加密软件_用Python发一封图文并茂的邮件
- 打造专业人才发展链条:基于任职资格的专业人才发展与认证体系
- 黄刘生--数据结构--答案
- 神经网络不胜语__M-P模型似可寻
- office 2003 下载
- Linux实训项目——第八章:配置网络接口及远程管理
- npm 安装axios报错
- MOSEK Fusion Model
- 绕口令 - 专项练习
- 心田花开:解锁各类语文阅读理解答题技巧
- 使用telnet连接qq pop服务器拉取邮件
- 计算机常用英语(键盘符号),计算机常用英语..docx
- electron对接dll
- 网站url生成二维码
- vm-install vmware tools安装
热门文章
- 基于openssl的EVP对称加密C语言实战案例
- 我的小玩意之图片转帖工具 v1.2
- 计算机网络(自顶向下方法)-Internet概述
- GEOTRANS 3.7 用户使用手册 ------ 文件处理(坐标文件格式)
- 进程P1、P2、P3共享一个表格F,P1对F只读不写,P2对F只写不读,P3对F先读后写。进程可同时读F,但有进程写时,其他进程不能读和写。
- Qt 5.15 在线安装
- 转载:discuz代码解析(一、初始化应用的过程)
- css获取时间,改变CSS 样式,获取当前日期
- 5G NR 随机接入RACH流程(1)-- 概述
- 世界地图html效果,css3+html5世界地图区域划分高亮显示特效