由于此商品库存有限,请在下单后15分钟之内支付完成,手慢无哦!
100%刮中券,最高50元无敌券,券有效期7天
活动自2017年6月2日上线,敬请关注云钻刮券活动规则更新。
如活动受政府机关指令需要停止举办的,或活动遭受严重网络攻击需暂停举办的,或者系统故障导致的其它意外问题,苏宁无需为此承担赔偿或者进行补偿。
[正版]pytest框架与自动化测试应用 房荔枝 清华大学出版社 自动化测试pytest自动化验证
¥ ×1
书名: | pytest框架与自动化测试应用 |
出版社: | 清华大学出版社 |
出版日期 | 2021 |
ISBN号: | 9787302587156 |
pytest 是 Python 的第三方测试框架,可以实现软件测试各层次自动化。本书系统讲述pytest的主要技术及在各层次自动化测试的应用。 第1章介绍pytest框架。第2章讲解框架运行管理及对测试用例、断言的管理,运行管理中包括各种形式和层次的执行,展示框架的灵活性和全面性。第3章详细介绍框架的核心技术fixture,fixture使用依赖注入技术完成方法、类、文件级、会话级关联、数据关联和共享,可完美解决各种情况耦合和共享。第4章结合测试中最重要的数据驱动技术产生的参数化技术,并配合fixture技术实现一组代码多组数据的数据与代码分离技术。第5章系统讲解各种实用插件。第6~10章是实践,从单元自动化测试、接口自动化测试、Web端自动化测试及App自动化测试计划开始,讲解设计、实现到执行的全流程。第11章介绍BDD,让非技术人员也能参与测试的全过程。第12章介绍pytest一些相关配置。 本书可作为从事软件自动化测试的技术人员的参考书籍,也可作为高等院校,高职类软件工程中质量保证的参考书籍。 |
房荔枝 51testing资深讲师,具有十几年中、大型公司软件测试、测试自动化及测试管理的一线经验。 梁丽丽 哈尔滨职业技术学院讲师,院生态电商专业创新团队成员,院电子商务专业工程技术教育认证(TAC)成员,院优秀班主任,长期从事网页设计、无线传感器网络研究应用、计算机应用技术领域的教学和研究工作。先后开设商务网页设计与制作、电子商务网站建设与管理、计算机应用技术、人工智能等多门课程。主持省规划办重点课题1项,参与省级及校级课题4项,获国家发明专利2项,发表论文6篇。
|
|
随着软件开发速度的加快,新技术的出现,DevOps在各企业落地成为现实。测试自动化技术成为必须和紧俏技术。本书详细讲解如何实现软件测试环节的自动化,配有示例及综合实战项目,帮助初学者按步骤实现自动化测试。
|
|
第1章pytest框架介绍
1.1pytest框架引入
1.1.1测试框架能为我们解决什么问题
1.1.2测试框架的分类
1.1.3什么是pytest
1.2技术前提要求
1.2.1技术前提
1.2.2适合人群
1.3环境准备及资料准备
1.3.1Python的环境验证
1.3.2安装pytest
1.4pytest初体验
1.4.1在终端建立测试方法及执行过程
1.4.2在PyCharm建立测试方法及执行过程
1.4.3pytest的框架结构
1.4.4在PyCharm中配置运行工具
1.4.5右击以pytest方式执行代码
1.4.6去掉main方法执行测试
1.4.7PyCharm中执行某个测试方法
1.4.8运行窗口的工具栏含义
1.5执行的查找原则和测试类及测试方法的命名
1.6本章小结
第2章pytest的测试用例管理及运行管理
2.1测试用例的命名管理
2.2用例执行顺序
2.3测试用例的断言管理
2.3.1什么是断言
2.3.2断言的时机
2.3.3断言的分类与使用
2.3.4触发一个指定异常的断言
2.3.5为失败断言添加自定义的说明
2.3.6Assert各种类型断言
2.4测试用例的运行管理
2.4.1获取帮助信息
2.4.2最常用运行测试用例方式
2.4.3通过python m pytest 调用pytest
2.4.4在Python代码中调用pytest
2.4.5pytest执行结束时返回的状态码
2.4.6输出代码中的控制台信息
2.4.7显示详细信息
2.4.8不显示详细信息
2.4.9显示简单总结结果
2.4.10执行指定的测试用例
2.4.11执行指定目录下所有的测试用例
2.4.12k参数执行包含特定关键字的测试用例
2.4.13执行指定nodeid的测试用例
2.4.14m参数执行指定标记的用例
2.4.15执行指定包中的测试用例
2.4.16修改回溯信息的输出模式
2.5运行的失败管理
2.5.1最多允许失败的测试用例数
2.5.2失败运行管理的原理
2.6跳过skip测试用例的执行
2.6.1@pytest.mark.skip装饰器
2.6.2pytest.skip方法
2.6.3@pytest.mark.skipif装饰器
2.6.4pytest.importorskip方法
2.6.5跳过测试类
2.6.6跳过测试模块
2.6.7跳过指定文件或目录
2.6.8各种跳过小结
2.7标记用例为预期失败
2.7.1@pytest.mark.xfail标记用例
2.7.2使用pytest.xfail标记用例
2.7.3xfail标记如何失效
2.8中断调试及错误处理
2.8.1失败时加载PDB环境
2.8.2开始执行时就加载PDB环境
2.8.3设置断点
2.8.4使用内置的中断函数
2.8.5错误句柄
2.9结果分析及报告
2.9.1分析测试执行时间
2.9.2创建及定制JUnitXML格式的测试报告
2.10不稳定测试用例处理
2.10.1为什么不稳定测试是个问题
2.10.2潜在的根本原因是什么
2.10.3pytest为我们提供的解决策略
2.10.4pytest_CURRENT_TEST
2.10.5可以重新运行的插件
2.10.6测试人员采用的解决策略
2.11本章小结
第3章pytest中最闪亮的fixture功能
3.1fixture介绍
3.2fixture目标
3.3fixture基本的依赖注入功能
3.4fixture应用在初始化设置
3.5fixture应用在配置销毁
3.5.1使用yield代替return
3.5.2使用with写法
3.5.3使用addfinalizer方法
3.5.4yield与addfinalizer的区别
3.6fixture方法源码详细讲解
3.7不同层级scope使用fixture实例
3.7.1模块(module)级别使用fixture实例
3.7.2类(class)级别使用fixture实例
3.7.3会话(session)级别使用fixture与conftest.py配合
3.7.4session级别实例
3.8使用params 传递不同数据
3.8.1测试方法使用两个简单测试数据
3.8.2二(多)个测试方法共用两个简单测试数据
3.8.3有效测试数据与预期失败xfail的测试数据
3.8.4params与ids的应用
3.8.5params综合实例
3.9自动调用fixture
3.9.1使用fixture中参数autouse=True实现
3.9.2使用@pytest.mark.usefixtures
3.9.3数据库自动应用的实例
3.10第三方插件通过文件夹共享测试数据
3.11fixture的并列与嵌套调用
3.11.1并列使用fixture
3.11.2嵌套调用fixture
3.11.3多个fixture的实例化顺序
3.11.4fixture返回工厂函数
3.11.5高效地利用fixture实例
3.12在不同的层级上重写fixture
3.12.1在文件夹(conftest.py)层级重写fixture
3.12.2在模块层级重写fixture
3.12.3在用例参数中重写fixture
3.12.4参数化的fixture可重写非参数化的fixture,反之亦然
3.13本章小结
第4章pytest的数据驱动和参数传递
4.1参数化介绍
4.2参数化的应用
4.2.1单一参数化应用
4.2.2多参数应用
4.2.3多个参数化
4.2.4参数化与fixture的结合
4.2.5pytestmark实现参数化
4.3parametrize源码详细讲解
4.4argnames参数
4.4.1argnames与测试方法中的参数关系
4.4.2argnames调用覆盖同名的fixture
4.5argvalues参数
4.5.1argvalues来源于Excel文件
4.5.2使用pytest.param为argvalues赋值
4.6indirect参数
4.7ids参数
4.7.1ids的长度
4.7.2ids相同
4.7.3ids中使用中文
4.7.4通过函数生成ids
4.7.5ids的覆盖
4.7.6ids的作用
4.8scope参数
4.8.1module级别
4.8.2未指定scope
4.9pytest_generate_tests钩子方法
4.10本章小结
第5章pytest的相关插件及插件管理
5.1pytest的插件安装
5.2常见插件介绍
5.3常用插件的使用
5.3.1pytestassume断言报错后依然执行
5.3.2pytestcov 测试覆盖率
5.3.3pytestfreezegun 冰冻时间
5.3.4pytestflakes静态代码检查
5.3.5pytesthtml生成HTML报告
5.3.6pytesthttpserver 模拟HTTP服务
5.3.7pytestinstafail用于用例失败时立刻显示错误信息
5.3.8pytestmock 模拟未实现的部分
5.3.9pytestordering调整执行顺序
5.3.10pytestpep8自动检测代码规范
5.3.11pytestpicked运行未提交git的用例
5.3.12pytestrerunfailures 失败重试
5.3.13pytestrepeat 重复运行测试
5.3.14pytestrandomorder 随机顺序执行
5.3.15pytestsugar 显示彩色进度条
5.3.16pytestselenium 浏览器兼容性测试
5.3.17pytesttimeout 设置超时时间
5.3.18pytestxdist测试并发执行
5.4插件管理
5.4.1在测试模块或conftest文件中加载插件
5.4.2找出哪些插件处于活动状态
5.4.3通过名称停用/注销插件
5.5本章小结
第6章与Allure框架结合定制测试报告
6.1Allure框架介绍
6.2Allure如何生成测试报告
6.3Allure报告组成
6.3.1总览
6.3.2类别
6.3.3测试套件
6.3.4功能
6.3.5图形
6.3.6时间轴
6.3.7包
6.4Allure的初体验
6.4.1Allure在Windows 系统下安装
6.4.2Allure在Linux环境下安装
6.4.3Allure在Mac OS系统下安装
6.4.4Allure的简单用法
6.4.5Allure的帮助说明
6.5定制测试报告
6.5.1定制详细的步骤说明
6.5.2不同类型的附件补充测试说明
6.5.3定制各种类型内容描述
6.5.4定制测试标题
6.5.5各种链接
6.5.6自定义各种标签
6.5.7严重性标记
6.5.8重试信息展示
6.6本章小结
第7章单元自动化测试实践
7.1什么是单元测试
7.2pytest测试框架是单元测试的框架
7.3单元测试与质量
7.4单元测试一个函数
7.5单元测试一个类
7.5.1类的说明
7.5.2开发的调用
7.5.3类持续开发: 功能的增加及修改
7.5.4类的单元测试
7.6本章小结
第8章API自动化测试实践
8.1测试微信公众号接口
8.1.1熟悉接口文档以便获取信息
8.1.2接口测试用例设计
8.2执行测试
8.2.1使用get()、post()方法发送请求,返回响应
8.2.2使用conftest共享数据
8.2.3读取yaml数据文件进行parametrize
8.2.4关联接口数据传递及更新删除接口测试
8.2.5fixture的依赖接口需要测试,也需要参数化
8.3使用Allure定制报告
8.4使用pytest进行各种执行
8.5本章小结
第9章Web自动化测试持续集成实践
9.1Web自动化测试及持续集成源起
9.2被测试系统的安装和介绍
9.2.1人力资源管理系统安装
9.2.2人力资源管理系统介绍
9.3Web项目自动化原理及Web测试框架
9.3.1自动化测试要达到的目标和涉及的技术
9.3.2Web自动化测试框架Selenium介绍
9.3.3Selenium框架技术简述
9.4整合Web自动化测试框架
9.4.1自动化测试准备
9.4.2创建工程目录
9.4.3页面元素定位
9.4.4页面元素操作
9.4.5提高代码的复用性和灵活性——封装
9.4.6编写测试用例
9.4.7测试执行
9.4.8生成Allure报告
9.5Web自动化测试本地环境持续集成
9.5.1Jenkins 2实现自动化执行测试及持续集成流程
9.5.2使用自由风格配置Python自动化测试
9.5.3使用pipeline配置Python自动化测试
9.5.4使用BlueOcean配置Python自动化测试
9.6本章小结
第10章App自动化测试项目实践
10.1App自动化测试框架选择
10.2App自动化测试环境的搭建
10.2.1安装和验证Java JDK——Windows系统
10.2.2安装和验证Node.js
10.2.3安装Android SDK
10.2.4安装模拟器或连接真机
10.2.5安装appiumdesktop
10.2.6安装appiumclient
10.2.7appiumdoctor环境检查
10.3使用pytest和Allure建立App自动化混合框架
10.3.1安装所需要的包和插件
10.3.2建立目录结构
10.3.3连接App的配置及启动App
10.3.4使用各种工具进行元素定位
10.3.5使用PO方式建立元素定位locators类
10.3.6使用PO方式建立元素操作方法基类
10.3.7使用PO方式建立每个页面或功能的元素操作方法类
10.3.8结合pytest的特性建立公共数据共享文件conftest.py
10.3.9使用PO的方式建立测试类
10.3.10使用yaml文件及pytest中的parametrize作为数据驱动程序
10.3.11使用Allure标签定制报告
10.3.12封装的一些公共的方法
10.3.13在文件中读取配置文件数据
10.3.14在测试用例中添加log日志
10.3.15组织测试用例(添加运行标记)
10.3.16实现持续集成——在Jenkins运行测试代码
附: 本次运行的部分appium日志翻译
第11章行为驱动开发(BDD)实现自动化测试
11.1什么是BDD
11.2BDD开发过程
11.3BDD的功能和作用
11.4中国BDD现状
11.5pytestbdd实现BDD开发
11.5.1pytestbdd安装
11.5.2pytestbdd的项目结构
11.5.3BDD的标准语法
11.5.4BDD实现步骤
11.5.5BDD单元测试实践: 添加功能(单一数据)
11.5.6BDD单元测试实践: 添加和删除功能(数据通过参数传递)
11.5.7BDD单元测试实践: 数据参数化
11.5.8BDD接口测试实践: requests和pytestbdd实现bing的 搜索接口
11.5.9BDD UI自动化测试实践: selenium和pytestbdd实现 搜索功能
11.5.10BDD UI自动化测试实践: selenium和pytestbdd实现 搜索功能参数化
11.6本章小结
第12章pytest.ini配置及其他配置
12.1pytest中的各种配置
12.1.1@pytest.marker标记用例
12.1.2添加测试用例路径
12.1.3指定pytest忽略哪些搜索目录
12.1.4usefixtures的默认配置
12.1.5修改测试用例的搜索匹配规则
12.1.6ids中解决中文显示乱码问题
12.1.7console_output_style输出样式配置
12.1.8xfail_strict不是预期的失败显示FAILED
12.1.9cache_dir缓存目录设置
12.1.10filterwarnings警告过滤
12.1.11log相关配置
12.1.12添加pytest执行默认参数选项
12.1.13minversion的设置及限制
12.1.14required_plugins需要的插件
12.2警告相关配置
12.2.1警告信息的默认捕获行为
12.2.2命令行配置警告是否捕获
12.2.3将警告转换成异常失败
12.2.4通过pytest.ini设置filterwarnings实现
12.2.5使用@pytest.mark.filterwarnings装饰器实现警告忽略
12.2.6设置pytestmark变量实现添加警告
12.2.7命令行选项参数去掉警告信息
12.2.8通过触发警告自定义失败时的提示消息
12.3内置fixture之临时目录
12.3.1tmp_path
12.3.2tmp_path_factory
12.3.3tmpdir
12.3.4tmpdir_factory
12.4输出及捕获级别配置
12.4.1标准输出/标准错误输出/标准输入的默认捕获行为
12.4.2修改和去掉捕获行为
12.4.3在测试用例中访问捕获到的信息
12.5Mock
12.5.1使用 Mock 对象模拟测试情景
12.5.2Mock类的原型
12.5.3MonkeyPatching返回的对象: 临时修改全局配置
12.5.4修改MonkeyPatching函数功能或者类属性
12.5.5修改MonkeyPatching环境变量
12.5.6修改MonkeyPatching字典
12.6钩子——Hook方法的作用
12.6.1pytest_runtest_makereport 修改测试报告内容
12.6.2pytest_collection_modifyitems改变用例执行顺序
12.6.3pytest_terminal_summary
12.7本章小结
|
在整个开发过程中,由于市场变化频繁导致需求变化频繁,公司层面需要尽快知道做出的各种决策的结果和反馈,也就是希望在整个产品开发的生命周期中各个环节都能快速跟上这种变化,迅速做出正确响应。 以前环境的自动化和测试的自动化是整个过程的难点,现在有了Docker和k8s,可以快速实现环境的部署。基于质量的原因,编写测试自动化脚本时需分层(单元层测试、服务层测试、UI层测试)实现,能否在不同层使用同一框架测试,决定自动化脚本的开发效率。pytest框架可以实现各分层和各质量特性的测试。 Python语言在数据采集、人工智能等技术中被广泛使用,因此基于这些技术实现的产品中的测试使用Python语言的占比 会越来越大。本书介绍的pytest框架是基于Python的,满足上述编程语言和提升开发效率的要求。相信pytest框架在未来一定会火起来,无论是开发、测试、运维人员,还是运用DevOps模型的公司或是希望降低开发成本的公司,都必然会使用pytest这个框架。 本书主要介绍pytest框架的核心知识,从框架技术开始, 对每项实用技术进行详细阐述,并有练习和示例,之后系统讲解实用插件,尤其是Allure框架。 Allure框架可以让测试报告内容更丰富。本书的重点是教读者在各层次测试自动化中如何运用pytest框架进行测试自动化设计 。实践章节的思路和技术是编者多年测试经验的缩影。本书有细节、有深度、有实践,按技术成长路线为读者量身定做 案例,帮助读者快速掌握自动化测试。通过学习本书,读者可以设计并开发自动化测试框架和脚本。本书也可以作为工具书,从三级目录查找某些功能的实现方法。
建议读者先将前几章重点技术掌握熟练,再通过后几章的实践来理解思路并自己编写代码,在示例 中实践。在工作中可首先进行接口测试自动化,再结合Jenkins部署执行,实现公司层面持续集成(CI)的落地,以及根据工作需要进行UI层测试自动化实践及持续部署交付(CD)的落地,最后可加入单元层面测试自动化,达成整个DevOps的落地。 本书所涉及的非测试专业技术,例如接口层测试所涉及的网络方面的知识、Web测试中所涉及的前端技术、App测试中 所涉及的Android相关技术知识等,读者可自行学习。 由于编者水平有限,书中难免存在不妥之处,请读者见谅,并提宝贵意见。最后感谢在本书写作过程中帮助我们的每个人。 编者 2021年8月
|
亲,大宗购物请点击企业用户渠道>小苏的服务会更贴心!
亲,很抱歉,您购买的宝贝销售异常火爆让小苏措手不及,请稍后再试~
非常抱歉,您前期未参加预订活动,
无法支付尾款哦!
抱歉,您暂无任性付资格