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

【原文链接】新书上市----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.mzph.cn/news/47958.shtml

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

相关文章

(三)行为型模式:3、解释器模式(Interpreter Pattern)(C++示例)

目录 1、解释器模式(Interpreter Pattern)含义 2、解释器模式的UML图学习 3、解释器模式的应用场景 4、解释器模式的优缺点 5、C实现解释器模式的实例 1、解释器模式(Interpreter Pattern)含义 解释器模式(Interp…

python分析实战(4)--获取某音热榜

1. 分析需求 打开某音热搜,选择需要获取的热榜如图 查找包含热搜内容的接口返回如图 将url地址保存 2. 开发 定义请求头 headers {Cookie: 自己的cookie,Accept: application/json, text/plain, */*,Accept-Encoding: gzip, deflate,Host: www.douyin.com,…

陕西科技大学改考408!附考情分析

改考信息 8月14日,陕西科技大学公布了2024年硕士研究生招生目录(初稿),其中不难发现083500软件工程初试专业课由819数据结构改为408计算机学科专业基础 图片:陕西科技大学24专业目录-软件工程学硕 https://yjszs.sus…

优化指南:带宽限制的可行策略

大家好!作为一名专业的爬虫程序员,我们经常面临的一个挑战就是带宽限制。尤其是在需要快速采集大量数据时,带宽限制成为了我们提升爬虫速度的一大阻碍。今天,我将和大家分享一些解决带宽限制的可行策略,希望能帮助大家…

[C++ 网络协议编程] 域名及网络地址

1. DNS服务器 DNS(Domain Name System):是对IP地址和域名(如:www.baidu.com等)进行相互转换的系统,其核心是DNS服务器。 我们输入的www.baidu.com是域名,是一种虚拟地址,而非实际地…

C# API 文档注释规范

C# API 文档注释规范 1. 命名空间注释(namespace)2. summary3. remarks and para4. param5. returns6. example and code7. exception8. typeparam 最近在开发工作中需要实现 API 帮助文档,如果根据所写的代码直接重写 API 帮助文档将会是意见非常大的工作量&#x…

新版本Qt Creator无法提示错误、不报红

问题 更新新版本Qt Creator后无法实时提示错误,在开发中非常难受 如图,此时w后面少了;Qt Creator却只有红色横线标识,没有具体的错误。 解决方法 首先要知道,提供这个错误显示功能是ClangCodeModel插件提供的,因此…

ModaHub魔搭社区:AI Agent在操作系统场景下的AgentBench基准测试

近日,来自清华大学、俄亥俄州立大学和加州大学伯克利分校的研究者设计了一个测试工具——AgentBench,用于评估LLM在多维度开放式生成环境中的推理能力和决策能力。研究者对25个LLM进行了全面评估,包括基于API的商业模型和开源模型。 他们发现,顶级商业LLM在复杂环境中表现出…

外网连接局域网的几种方式?快解析内网穿透安全便利吗?

外网连接局域网是一项网络连接中的关键技术,它能够让远程用户通过互联网访问内部局域网中的资源和服务。外网连接局域网为企业提供了更大的灵活性和便捷性,但也需要严格的安全措施来防止未经授权的访问。 外网连接局域网的几种方式 在将外网连接到局域…

Ubuntu发布java版本

1、连接服务器 2、进入目录 cd /usr/safety/app/3、上传jar文件 4、杀掉原java进程 1. 查看当前java进程 2. ps -ef|grep java 3. ycmachine:/usr/safety/app$ ps -ef|grep java root 430007 1 6 01:11 pts/0 00:02:45 /usr/local/java/jdk1.8.0_341/bin/j…

ChatGLM2-6B、ChatGLM-6B 模型介绍及训练自己数据集实战

介绍 ChatGLM-6B是开源的文本生成式对话模型,基于General Language Model(GLM)框架,具有62亿参数,结合模型蒸馏技术,实测在2080ti显卡训练中上(INT4)显存占用6G左右, 优点:1.较低的部署门槛: FP16 半精度下,ChatGLM-6B 需要至少 13GB 的显存进行推理&a…

ARM M33架构入门

概述 Arm Cortex-M33核心处理器专为需要高效安全或数字信号控制的物联网和嵌入式应用而设计。该处理器具有许多可选功能,包括数字信号处理扩展 (DSP)、用于硬件强制隔离的TrustZone 安全性、内存保护单元 (MPU)和浮点单元 (FPU)。 Cortex-M33 的性能比 Cortex-M…

I2S/PCM board-level 约束及同步(latencyskewbitsync)

I2S/PCM是典型的低速串口,在两个方向上分别有两组信号,我们已soc为视角分为soc-adif和外设audio-codec。 那么adif输入: sclk_i, ws_i, sdi 当然并不是三个输入信号同时有效,只有adif RX slave时,三个输入都会有效…

Python爬虫(十四)_BeautifulSoup4 解析器

CSS选择器:BeautifulSoup4 和lxml一样,Beautiful Soup也是一个HTML/XML的解析器,主要的功能也是如何解析和提取HTML/XML数据。 lxml只会局部遍历,而Beautiful Soup是基于HTML DOM的,会载入整个文档,解析整…

【高危】企业微信私有化2.5-2.6.93版本后台API未授权访问漏洞

漏洞描述 企业微信私有化2.5.x版本及2.6.930000版本以下后台中存在接口未授权访问漏洞,攻击者通过访问/cgi-bin/gateway/agentinfo接口可获得Secret,从而利用开放API获取企业通讯录等敏感信息及企业微信内应用权限。 漏洞名称企业微信私有化2.5-2.6.93…

基于GPT-4和LangChain构建云端定制化PDF知识库AI聊天机器人

参考: GitHub - mayooear/gpt4-pdf-chatbot-langchain: GPT4 & LangChain Chatbot for large PDF docs 1.摘要: 使用新的GPT-4 api为多个大型PDF文件构建chatGPT聊天机器人。 使用的技术栈包括LangChain, Pinecone, Typescript, Openai和Next.js…

【C语言】位段详解

前言 上一篇文章,我们学习了结构体的相关知识,今天我们来学习和结构体很像的位段 自定义类型:结构体 位段 位:指的是二进制位 位段的声明 位段与结构体的声明有两个不同: 1.位段的成员必须是 int、unsigned int 或…

【雷达】接收和去噪L波段雷达接收到的信号研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

Linux 多线程中执行fork的情况

一、普通多线程中执行fork的情况 1.多线程中没有执行fork的情况 代码如下&#xff1a; #include<stdio.h> #include<stdlib.h> #include<unistd.h> #include<pthread.h> #include<string.h> #include<semaphore.h>void*fun(void* arg) …

4.物联网LWIP之C/S编程,实现服务器大小写转换

LWIP配置 服务器端实现 客户端实现 错误分析 一。LWIP配置&#xff08;FREERTOS配置&#xff0c;ETH配置&#xff0c;LWIP配置&#xff09; 1.FREERTOS配置 为什么要修改定时源为Tim1&#xff1f;不用systick&#xff1f; 原因&#xff1a;HAL库与FREERTOS都需要使用systi…