一篇打通,pytest自动化测试框架详细,从0到1精通实战(一)

目录:导读

    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)


前言

pytest单元测试框架

1、什么是单元测试框架?
单元测试是指在软件开发当中针对软件的最小单位(函数、方法)进行正确性的检查测试

2、单元测试框架有哪些?
Java:junit 和 testing
python:unittest 和 pytest

3、单元测试框架主要做什么?
测试发现:从多个文件里面去找到我们的测试用例
测试执行:按照一定的顺序和规则去执行,并生成结果
测试判断:通过断言判断预期结果和实际结果的差异
测试报告:统计测试进度、耗时、通过率、生成测试报告

单元测试框架和自动化测试框架有什么关系

1、什么是自动化测试框架?
把在自动化测试过程中用到的一些功能或者工具,分装成各个模块,包括如何进行自动化脚本编写以及分层功能的基础模块,进行持续集成、定时任务的管理模块,发送测试报告、进行测试结果统计分析的统计模块等,将这些模块组成一套可重用的骨架

2、作用
提高测试效率,降低维护成本;
减少人工干预,提高测试的准确性,增加代码的重用性;
核心思想是:让不懂代码的人也能够通过这个框架去实现自动化测试;

3、pytest单元测试框架和自动化测试框架的关系
单元测试框架:只是自动化测试框架中的组成部分之一
pom设计模式:只是自动化测试框架中的组成部分之一
数据驱动、关键字驱动、全局配置文件的封装、日志监控、selenium,requests二次封装、断言、报告邮件等等

pytest简介

pytest是一个非常成熟的python的单元框架,比unittest更灵活,容易上手;
pytest可以和selenium、requests、appium结合实现web自动化、接口自动化、app自动化;
pytest可以实现测试用例的跳过以及reruns失败用例重试;
pytest可以和allure生成非常美观的测试报告;
pytest可以和Jenkins持续集成;
pytest有很多非常强大的插件,并且这些插件能够实现很多的使用的操作;

# 如
pytest
pytest-html             # (生成html格式的自动化测试报告)
pytest-xdist         # (测试用例分布式执行,多CPU分发)
pytest-ordering          # (用于改变测试用例的执行顺序)
pytest-rerunfailures  # (用例失败后重跑)
allure-pytest         # (用于生成美观的测试报告)

安装pytest

安装pytest:

pip install pytest 

pytest的命名规则

模块名必须以test_开头或者以test_结尾;
测试类名必须以Test开头,并且不能有init方法;
测试方法必须以test开头;

D1

pytest测试用例的运行方式和执行顺序

1、运行方式
主函数模式
运行所有:pytest.main()
指定模块:pytest.main([“test_01.py”])
指定目录:pytest.main([“./test_py”])

通过nodeid指定用例运行: nodeid有模块名、分隔符、类名、方法名、函数名组成

pytest.main(["test_01.py::Test01Class"])  # 指定到类名
pytest.main(["test_01.py::Test01Class::test003"])  # 指定到方法名

2、命令行模式
运行所有:pytest
指定模块:pytest test_01.py
指定目录:pytest ./test_py

通过nodeid指定用例运行: pytest test_01.py::Test01Class::test0033.通过读取pytest.ini配置文件来运行pytest.ini这个文件他是pytest单元测试框架的核心配置文件

位置:一般放在项目的根目录
编码:必须是ANSI,可以使用notepad++修改编码格式
作用:改变pytest默认的行为
运行规则:不管是主函数的模式运行,还是命令行模式运行,都会去读取这个配置文件

D2

3、执行顺序
unittest:根据Ascll的大小来绝对的执行的顺序
pytest:默认从上到下
改变默认执行顺序:使用mark标记

@pytest.mark.run(order=3)

Pytest生成自带的html测试报告

安装pytest-html:

pip install pytest-html

1、直接执行pytest.main() 【自动查找当前目录下,以test开头的文件或者以test结尾的py文件】

pytest.main([‘--html=./report.html’]) 

D3

2、pytest.main(“模块.py”)【运行指定模块下,运行所有test开头的类和测试用例】

pytest.main(["--html=./report.html","模块.py"])

D4

3、运行指定模块指定类指定用例,冒号分割,并生成测试报告

pytest.main([--html=./report.html’,‘模块.py::::test_a_001'])

D5

4、Pytest调用语句

pytst.main(['-x','--html=./report.html','t12est000.py'])

-x:出现一条测试用例失败就退出测试
-s:显示print内容
-v:显示更详细的信息
-vs:这两个参数一起使用
-n:支持多线程或者分布式运行测试用例
-reruns NUM:失败用例重跑
-x:只要有一个用例报错,那么测试停止
–maxfail=2:出现两个用例失败就停止
-k:根据测试用例的部分字符串指定测试用例

5、使用@pytest.mark.skip()跳过该用例(函数)

class Test01Class():@pytest.mark.skip  # 跳过test001def test001(self):assert 5 == 4  # 断言

D6

6、pytest运行结果字符意义
.:点号,表示用例通过
F:表示失败 Failure
E:表示用例中存在异常 Error
S:表示跳过 skipped

下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

在人生的舞台上,奋斗是最美的旋律。不畏困难,放飞梦想,用汗水浇灌成长的花朵。坚持信念,砥砺前行,只有不停奋斗,才能赢得属于自己的荣耀与成功。

付出不一定有回报,但不付出却一定没有收获。勇敢面对困难,坚持努力,无畏失败。奋斗的热血将点亮未来的路,只要你不停歇地前行,成功的曙光必将照耀你的人生。

每天都是一次重生的机会,勇往直前,追逐梦想吧!不管前方有多少艰难险阻,只要心怀信念,努力拼搏,你将绽放出耀眼的光芒,让世界为你而改变。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JavaWeb_总体介绍

文章目录 1.总括2.JavaWeb项目架构 1.总括 2.JavaWeb项目架构

js设置css变量控制页面一行展示指定个数的元素

前置知识: CSS变量之var()函数的应用——动态修改样式 & root的使用 flex相关知识 场景: 动态设置给父元素内子元素设置每行排列几个 通过 document.body.style.setProperty(--itemNum, 5)设置样式变量,然后通过给父元素设置display: f…

RocketMQ发送消息失败:error CODE: 14 DESC: service not available now, maybe disk full

在执行业务时,发现MQ控制台没有查询到消息,在日志中发现消息发送失败,报错error CODE: 14 DESC: service not available now, maybe disk full 分析报错应该是磁盘空间不足,导致broker不能进行正常的消息存储刷盘,去查…

IntelliJ IDEA Bookmark使用

1 增加 右键行号栏 2 查看 从favorite这里查看 参考IntelliJ IDEA 小技巧:Bookmark(书签)的使用_bookmark idea 使用_大唐冠军侯的博客-CSDN博客

neo4j的CQL命令实例演示

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

07-2_Qt 5.9 C++开发指南_二进制文件读写(stm和dat格式)

文章目录 1. 实例功能概述2. Qt预定义编码文件的读写2.1 保存为stm文件2.2 stm文件格式2.3 读取stm文件 3. 标准编码文件的读写3.1 保存为dat文件3.2 dat文件格式3.3 读取dat文件 4. 框架及源码4.1 可视化UI设计4.2 mainwindow.cpp 1. 实例功能概述 除了文本文件之外&#xff…

pve和openwrt以及我的电脑中网络的关系和互通组网

情况1 一台主机 有4个口,分别eth0,eth1,eth2,eth3 pve有管理口 这个情况下 ,没有openwrt 直接电脑和pve管理口连在一起就能进pve管理界面 情况2 假设pve 的管理口味eth0 openwrt中桥接的是eth0 eth1 eth2 那么电脑连接eth3或者pve管理口设置eth3&#xf…

MySQL库的操作

文章目录 MySQL库的操作1. 创建数据库2. 字符集和校验规则(1) 查看系统默认字符集以及校验规则(2) 查看数据库支持的字符集和校验规则(3) 案例(4) 校验规则对数据库的影响 3. 查看数据库4. 修改数据库5. 删除数据库6. 数据库的备份和恢复(1) 备份(2) 还原 7. 查看连接情况 MySQ…

在 Windows 中恢复数据的 5 种方法

发生数据丢失的原因有多种。无论是因为文件被意外删除、文件系统或操作系统损坏,还是由于软件或硬件级别的存储故障,数据都会在您最意想不到的时候丢失。今天我们重点介绍五种数据恢复方法,以应对意外情况的发生。 1.从另一台机器启动硬盘 如…

分享一组天气组件

先看效果&#xff1a; CSS部分代码&#xff08;查看更多&#xff09;&#xff1a; <style>:root {--bg-color: #E9F5FA;--day-text-color: #4DB0D3;/* 多云 */--cloudy-background: #4DB0D3;--cloudy-temperature: #E6DF95;--cloudy-content: #D3EBF4;/* 晴 */--sunny-b…

Https、CA证书、数字签名

Https Http协议 Http协议是目前应用比较多应用层协议&#xff0c;浏览器对于Http协议已经实现。Http协议基本的构成部分有 请求行 &#xff1a; 请求报文的第一行请求头 &#xff1a; 从第二行开始为请求头内容的开始部分。每一个请求头都是由K-V键值对组成。请求体&#xf…

【C++入门到精通】C++入门 —— vector (STL)

阅读导航 前言一、vector简介1. 概念2. 特点 二、vector的使用1.vector 构造函数2. vector 空间增长问题⭕resize 和 reserve 函数 3. vector 增删查改⭕operator[] 函数 三、迭代器失效温馨提示 前言 前面我们讲了C语言的基础知识&#xff0c;也了解了一些数据结构&#xff0…

软件测试基础篇——Docker

1、docker技术概述 docker描述&#xff1a;docker是一项虚拟化的容器技术&#xff08;类似于虚拟机&#xff09;&#xff0c;docker技术给使用者提供一个平台&#xff0c;在该平台上可以利用提供的容器&#xff0c;对每一个应用程序进行单独的封装隔离&#xff0c;每一个应用程…

计算机竞赛 opencv python 深度学习垃圾图像分类系统

0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; opencv python 深度学习垃圾分类系统 &#x1f947;学长这里给一个题目综合评分(每项满分5分) 难度系数&#xff1a;3分工作量&#xff1a;3分创新点&#xff1a;4分 这是一个较为新颖的竞…

Monkey测试真的靠谱吗?

Monkey测试&#xff0c;顾名思义&#xff0c;就是模拟一只猴子在键盘上乱敲&#xff0c;从而达到测试被测系统的稳定性。Monkey测试&#xff0c;是Android自动化测试的一种手段&#xff0c;Monkey测试本身非常简单&#xff0c;Android SDK 工具支持adb Shell命令&#xff0c;实…

208、仿真-51单片机脉搏心率与心电报警Proteus仿真设计(程序+Proteus仿真+配套资料等)

毕设帮助、开题指导、技术解答(有偿)见文未 目录 一、硬件设计 二、设计功能 三、Proteus仿真图 四、程序源码 资料包括&#xff1a; 需要完整的资料可以点击下面的名片加下我&#xff0c;找我要资源压缩包的百度网盘下载地址及提取码。 方案选择 单片机的选择 方案一&a…

ElasticSearch 7.4学习记录(基础概念和基础操作)

若你之前从未了解过ES&#xff0c;本文将由浅入深的一步步带你理解ES&#xff0c;简单使用ES。作者本人就是此状态&#xff0c;通过学习和梳理&#xff0c;产出本文&#xff0c;已对ES有个全面的了解和想法&#xff0c;不仅将知识点梳理&#xff0c;也涉及到自己的理解&#xf…

行业追踪,2023-08-09

自动复盘 2023-08-09 凡所有相&#xff0c;皆是虚妄。若见诸相非相&#xff0c;即见如来。 k 线图是最好的老师&#xff0c;每天持续发布板块的rps排名&#xff0c;追踪板块&#xff0c;板块来开仓&#xff0c;板块去清仓&#xff0c;丢弃自以为是的想法&#xff0c;板块去留让…

linux学习——Redis基础

目录 一、noSQL 类型 特点及应用场景 二、Redis 三、安装方式 编译安装 rpm安装 四、目录结构 /etc/redis.conf 五、Redis命令 六、本地登录和远程登录 本地登录 远程登录 七、数据库操作 帮助信息 库操作 数据操作 八、Redis持久化 一、RDB类型 二、AOF模式 一…

伪类和伪元素有何区别?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 伪类&#xff08;Pseudo-class&#xff09;⭐ 伪元素&#xff08;Pseudo-element&#xff09;⭐ 区别总结⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前…