新书上市----Pytest企业级应用实战 新书上市

news2025/2/25 4:39:41

【原文链接】新书上市----Pytest企业级应用实战 新书上市

《Pytest企业级应用实战》

京东购书链接

当当购书链接

天猫购书链接

作者简介

本书作者本硕毕业于哈尔滨工业大学,曾先后就职于中兴通讯和华为,现任职于中科南京软件技术研究院,其自工作以来一直致力于测试开发研究工作,先后负责过多个项目的自动化测试和CICD流水线的设计开发工作,在DevOps领域有着丰富的实战经验。

内容简介

Pytest是非常广泛的基于Python语言的应用自动化测试框架,《Pytest企业级应用实战》首先从实战的角度层层递进地讲解了Pytest框架使用方法,然后从企业级应用实战的角度讲解了如何利用Pytest自动化测试企业测试框架,并结合Jenkins以及Allure工具,演示在企业中是如何应用的。
  第1章介绍运行环境以及Pytest快速体验,第2章介绍Pytest测试脚本的组成结构和测试脚本默认的命名规则以及脚本执行,第3章介绍断言的使用方法,第4章介绍了标签的使用方法,第5章详细介绍了自动化脚本各种常用的执行策略,第6~8章介绍了fixture的基础和高级应用以及常见的fixture的使用方法,第9章介绍了参数化以及数据驱动的使用方法,第10章介绍了告警,第11章介绍了Pytest中丰富的日志和打印功能,第12章介绍了Allure测试报告,第13章从设计角度介绍如何设计封装自动化测试框架,以及Pytest、Allure与Jenkins的集成,第14章介绍了常用的第三方插件,第15章解读了Pytest的核心即Pluggy的源码分析。
  《Pytest企业级应用实战》既可以作为自动化测试人员、测试开发人员的工具书,也可以作为Pytest技术相关培训教材。

目录

第1章 Pytest概述
1.1 Pytest简介
1.1.1 Pytest的特点
1.1.2 Pytest发展历程
1.1.3 为什么要选用Pytest
1.2 开发环境的安装
1.2.1 Python安装
1.2.2 同时安装多个Python版本
1.2.3 彻底卸载Python
1.2.4 Pycharm的下载安装
1.3 虚拟环境管理工具Pipenv的应用
1.3.1 安装Pipenv
1.3.2 Pipenv工具的使用方法
1.3.3 配置Python解释器
1.4 Pytest快速体验
1.4.1 Pytest安装与升级
1.4.2 创建并执行第一个测试脚本
1.4.3 Pytest命令的默认行为
1.4.4 对产生的异常进行断言
1.4.5 在类中编写测试脚本
1.4.6 测试脚本请求,创建一个临时目录

第2章 Pytest脚本规则、组成与运行
2.1 Pytest脚本的规则
2.1.1 测试脚本文件命名规则
2.1.2 测试函数的测试类命名规则
2.1.3测试脚本目录的约束条件
2.1.4 自定义测试文件名、测试类、测试函数命名规则
2.2 Pytest脚本的组成
2.2.1 自动化脚本组成简介
2.2.2 测试类中各个层级的setup和teardown
2.2.3 测试文件中各个层级的setup和teardown
2.2.4 测试文件中测试函数和类中测试方法混合时各个层级的setup与teardown
2.2.5 各个层级的setup和teardown在自动化实践中的应用
2.3 Pytest脚本的运行
2.3.1 指定目录或文件
2.3.2 指定测试函数或测试方法
2.3.3 通过——k参数对文件类名及函数名进行模糊匹配和挑选
2.3.4 通过——ignore参数挑选用例,忽略执行
2.3.5 通过——ignore-glob参数支持正则挑选用例忽略
2.3.6 通过——deselect参数挑选用例不执行,并显示未执行数量
2.3.7 通过重复指定文件路径,实现用例重复执行
2.3.8 通过——collect-only参数不执行脚本而统计脚本总数
2.3.9 通过Pytest.ini设置用例默认的搜索目录
2.3.10 在IDE中通过右键执行当前文件用例
2.4 Pytest脚本的加载原理
2.4.1 prepend模式
2.4.2 append模式
2.4.3 prepend和append模式存在的问题
2.4.4 importlib模式

第3章 Assert断言
3.1 使用Assert断言
3.1.1 Python中为False的数值断言均失败
3.1.2 Python逻辑表达式为False的断言均失败
3.2 自定义断言报错信息
3.3 对捕获的异常进行断言
3.3.1 对异常类型进行断言:
3.3.2 对捕获的异常信息进行断言
3.3.3 同时对捕获的异常类型和异常信息进行断言
3.3.4 对一个函数可能产生的异常进行断言
3.4 重写断言Assert语句的报错信息
3.4.1 默认的报错信息
3.4.2 重写判断是否相等的断言报错信息
3.4.3 重写常见的判断逻辑报错信息
……
第4章 mark标签的用法
第5章 Pytest测试用例的执行策略
第6章 fixture的基础应用
第7章 fixture的高级应用
第8章 常见内置fixture的应用
第9章 parameterize参数化及数据驱动
第10章 告警
第11章 日志和控制台输出管理
第12章 Allure测试报告
第13章 与jenkins持续集成
第14章 其他常用的用例插件
第15章 Pytest核心即Pluggy源码解读

序言

目前,软件自动化测试在整个IT行业或者说在软件测试领域正占据越来越重要的位置,当前整个IT行业都在提倡降本增效,而自动化测试则是降本增效的一个非常重要的手段。此外,从个人成长角度来看,测试开发将是未来测试人员的职业发展趋势,而自动化测试是测试开发最容易入手的方向。那么想要做好自动化测试,至少需要对一种自动化测试框架非常熟悉,在众多自动化测试框架中,Pytest可以说是独领风骚。本书从实战的角度,详细介绍Pytest自动化测试框架的使用方法,同时融入了一些在企业中的实战应用经验。
  本书共分15章,其中第1章主要内容为快速体验Pytest,第2~11章让读者循序渐进地了解Pytest,第12~14章则从设计自动化测试框架的角度介绍Pytest,第15章从源码的角度介绍了Pytest自动化测试框架的核心原理。
  为了更好地满足技术类读者的需求,本书不过多地介绍理论,而是采用实例演示的方式,与读者一同学习和总结Pytest的用法,进而能让读者达到更好的学习效果。此外,本书还可以作为查询工具书,书中各章节标题采用解决实际问题类型的方式来命名,以便读者可以迅速定位到自己喜欢的或需要的章节进行阅读。
  本书的特点如下:
  (1)以实战为主,尽量减少过多文字理论层面的分析,展示实战代码,即从实战中总结出Pytest的使用方法,通过引入实际问题激发读者深入分析并解决问题的兴趣。
  (2)章节安排上循序渐进,先让读者快速体验Pytest,然后逐渐介绍Pytest各个方面的特性以及使用方法,接下来介绍在企业级实战中如何将Pytest与其他工具结合,从而设计出自动化测试团队真正需要的实际可执行、可落地的自动化测试框架,最后又详细解读Pytest最核心的源码,进而满足了一些进阶学习读者的需求。
  (3)本书在介绍Pytest各个方面特性和使用方法的内容中,既有基础内容的讲解,也有一些进阶内容,让读者既能迅速地掌握Pytest的基础内容,同时也能很快地体会学习Pytest带来的成就感。
  (4)设置大量的代码示例,让读者通过实战来总结和研究Pytest的用法,这也是学习技术最佳的途径。

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

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

相关文章

职业学院物联网实训室建设方案

一、概述 1.1专业背景 物联网(Internet of Things)被称为继计算机、互联网之后世界信息产业第三次浪潮,它并非一个全新的技术领域,而是现代信息技术发展到一定阶段后出现的一种聚合性应用与技术提升,是随着传感网、通…

Educational Codeforces Round 62 (Rated for Div. 2) C. Playlist

一开始肯定要排个序,b相同时t大的在前边,不同时b大的在前面。 然后想最多只能选k个的限制,可以这样想,每次用到的b只能用已选到的最小的值,那可以把每个b都枚举一遍,然后每一次选时长最长的,且…

YOLOv5复现过程出现的问题(关于图片后缀不统一如包含大写的JPG)

划分训练集测试集时,出现有些图片后缀名不统一的问题,在资源管理器看着是jpg,但是程序中读着的时候是大写的JPG,因此需要将JPG修改为jpg。 这里采用的方式使用cmd。 在相应文件夹目录下打开cmd,然后输入for /R %i in (…

2023-8-18 区间合并

题目链接&#xff1a;区间合并 #include <iostream> #include <vector> #include <algorithm>using namespace std;const int N 100010;typedef pair<int, int> PII; int n; vector<PII> segs;void merge(vector<PII> &segs) {vector…

【业务功能篇69】Springboot 树形菜单栏功能设计

业务场景: 系统的界面&#xff0c;前端设计的时候&#xff0c;一般会给一个菜单栏&#xff0c;顶部横向以及左侧纵向的导航栏菜单&#xff0c;这里后端返回菜单栏的时候&#xff0c;就涉及层级父子项的问题&#xff0c;所以返回数据的时候&#xff0c;我们需要按照树化形式返回…

【水文学法总结】河道内生态流量计算方法(含MATLAB实现代码)

生态流量&#xff08;Ecological Flow, EF&#xff09; 是指维持河道内生态环境所需要的水流流量。生态流量计算方法众多&#xff0c;主要分为水文学方法、栖息地模拟法、水力学方法、整体法等&#xff0c;各方法多用于计算维持河道生态平衡的最小生态流量&#xff08;Minimum …

容斥原理 博弈论(多种Nim游戏解法)

目录 容斥原理容斥原理的简介能被整除的数&#xff08;典型例题&#xff09;实现思路代码实现扩展&#xff1a;用DPS实现 博弈论博弈论中的相关性质博弈论的相关结论先手必败必胜的证明Nim游戏&#xff08;典型例题&#xff09;代码实现 台阶-Nim游戏&#xff08;典型例题&…

STM32/AT32 MCO管脚输出时钟配置

前言&#xff1a;最近在学以太网通讯&#xff0c;发现RMII接口配置的时钟管脚有MCU自己输出&#xff0c;想要看看是怎么输出的&#xff0c;对此进行记录 1、交接项目项目上使用的是PA8管脚来输出时钟50MHZ&#xff0c;提供给上面refclk。 先看手册 PA8的复用功能具备将MCU时钟…

控制方法笔记

基于模型的控制&#xff1a;LQR&#xff0c;模型建立如果不准确&#xff0c;会给控制带来不确定性。 运动学和动力学&#xff1f; 大货车很多参数不了解的话&#xff0c;有时候不如用运动学。所以说&#xff0c;建模不精准不如用运动学。 LQR 模型是状态空间线性的。目标函…

SpringBoot + Vue 微人事(十)

职位管理前后端接口对接 先把table中的数据展示出来&#xff0c;table里面的数据实际上是positions里面的数据&#xff0c;就是要给positions:[] 赋上值 可以在methods中定义一个initPosition方法 methods:{//定义一个初始化positions的方法initPositions(){//发送一个get请求…

GB28181设备接入侧如何对接外部编码后音视频数据并实现预览播放

技术背景 我们在对接GB28181设备接入模块的时候&#xff0c;遇到这样的技术诉求&#xff0c;好多开发者期望能提供编码后&#xff08;H.264/H.265、AAC/PCMA&#xff09;数据对接&#xff0c;确保外部采集设备&#xff0c;比如无人机类似回调过来的数据&#xff0c;直接通过模…

《Go 语言第一课》课程学习笔记(八)

基本数据类型 Go 原生支持的数值类型有哪些&#xff1f; Go 语言的类型大体可分为基本数据类型、复合数据类型和接口类型这三种。 其中&#xff0c;我们日常 Go 编码中使用最多的就是基本数据类型&#xff0c;而基本数据类型中使用占比最大的又是数值类型。 整型 Go 语言的…

MVCC 是否彻底解决了事物的隔离性 ?

目录 1. 什么是 MVCC 2. MVCC 是否彻底解决了事物的隔离性 3. MySQL 中如何实现共享锁和排他锁 4. MySQL 中如何实现悲观锁和乐观锁 1. 什么是 MVCC MVCC&#xff08;Multi-Version Concurrency Control&#xff0c;多版本并发控制&#xff09;是一种多版本并发控制机制&…

QGraphicsItem 实例4 图元的旋转、缩放、切变和位移

实现图元的旋转、缩放、切变和位移 效果&#xff1a; mainwindow.h #ifndef MAINWIDGET_H #define MAINWIDGET_H #include <QWidget> #include <QGraphicsView> #include <QGraphicsScene> #include <QFrame> #include <QGraphicsView> #inclu…

部门用户权限应用设计及创建&一些实用小细节

前言 之前边做应用程序边完善数据库表&#xff0c;应用程序做出来了&#xff0c;但是数据库表也面目全非了&#xff0c;很多数据库字段都要重新设计&#xff0c;踩了个坑但是也是一种学习&#xff1a;每次代码开发也好&#xff0c;应用程序搭建也好&#xff0c;先做好数据库表…

深入探究 Java 8 新特性:Optional 类允许为空的对象类

深入探究 Java 8 新特性&#xff1a;Optional 类 概念说明 ​ 在 Java 8 中&#xff0c;引入了许多令人兴奋的新特性&#xff0c;其中之一就是 Optional 类。这个类主要用于解决空指针异常&#xff08;NullPointerException&#xff09;的问题&#xff0c;提供了一种更安全和…

kali换源之后更新

kali换源之后更新 1.更新索引 apt-get update 2.更新软件 apt-get upgrade 3.删除缓存包 apt-get clean

【网络教程】如何创建/添加钉钉机器人以及如何获取机器人的Token/Secret

文章目录 创建钉钉机器人添加钉钉机器人获取机器人的Token/Secret相关网站创建钉钉机器人 这里以PC端的操作为例,按照如下操作进行 访问 钉钉开放平台选择机器人选项卡,点击右上角的创建应用,这里会有一个弹窗,我这里选择的是继续使用旧版,如图按照要求填写相关信息创建自…

【Influxdb数据迁移,从windos移到linux】

前提——保证两边的版本不要相差太多 1、windows的导出G:\influxdb\2为暂存的目录 D:\influxdb-1.8.3_windows_amd64\influxdb-1.8.3-1>influxd backup -portable -database mydb G:\influxdb\2导出之后会有一堆文件 全部上传到/var/lib/influxdb这个目录下。这个应该是默…

vue3中使用第三方插件mitt实现任意组件通讯

vue3中使用第三方插件mitt实现任意组件通讯 组件通讯是vue3组合式开发的核心之一&#xff0c;现在我在写代码时&#xff0c;一个组件的代码超过了200行&#xff0c;基本都会拆分组件。组件拆分后&#xff0c;组件之间的通讯就很重要&#xff0c;总结了一下&#xff0c;目前有这…