新書推薦:
《
中国古代北方民族史丛书——东胡史
》
售價:HK$
87.8
《
巨人传(插图珍藏本)
》
售價:HK$
705.6
《
地下(村上春树沙林毒气事件的长篇纪实)
》
售價:HK$
76.7
《
偿还:债务与财富的阴暗面
》
售價:HK$
80.2
《
清华大学藏战国竹简校释(壹):《命训》诸篇
》
售價:HK$
94.4
《
封建社会农民战争问题导论(光启文库)
》
售價:HK$
68.4
《
虚弱的反攻:开禧北伐
》
售價:HK$
92.0
《
中华内丹学典籍丛书:古书隐楼藏书汇校(上下)
》
售價:HK$
257.2
|
編輯推薦: |
随着软件开发速度的加快,新技术的出现,DevOps在各企业落地成为现实。测试自动化技术成为必须和紧俏技术。本书详细讲解如何实现软件测试环节的自动化,配有示例及综合实战项目,帮助初学者按步骤实现自动化测试。
|
內容簡介: |
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篇。
|
目錄:
|
第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执行指定deid的测试用例
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.fail标记用例
2.7.2使用pytest.fail标记用例
2.7.3fail标记如何失效
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中闪亮的fiture功能
3.1fiture介绍
3.2fiture目标
3.3fiture基本的依赖注入功能
3.4fiture应用在初始化设置
3.5fiture应用在配置销毁
3.5.1使用yield代替return
3.5.2使用with写法
3.5.3使用addfinalizer方法
3.5.4yield与addfinalizer的区别
3.6fiture方法源码详细讲解
3.7不同层级scope使用fiture实例
3.7.1模块(module)级别使用fiture实例
3.7.2类(class)级别使用fiture实例
3.7.3会话(session)级别使用fiture与conftest.py配合
3.7.4session级别实例
3.8使用params 传递不同数据
3.8.1测试方法使用两个简单测试数据
3.8.2二(多)个测试方法共用两个简单测试数据
3.8.3有效测试数据与预期失败fail的测试数据
3.8.4params与ids的应用
3.8.5params综合实例
3.9自动调用fiture
3.9.1使用fiture中参数autouse=True实现
3.9.2使用@pytest.mark.usefitures
3.9.3数据库自动应用的实例
3.10三方插件通过文件夹共享测试数据
3.11fiture的并列与嵌套调用
3.11.1并列使用fiture
3.11.2嵌套调用fiture
3.11.3多个fiture的实例化顺序
3.11.4fiture返回工厂函数
3.11.5高效地利用fiture实例
3.12在不同的层级上重写fiture
3.12.1在文件夹(conftest.py)层级重写fiture
3.12.2在模块层级重写fiture
3.12.3在用例参数中重写fiture
3.12.4参数化的fiture可重写非参数化的fiture,反之亦然
3.13本章小结
4章pytest的数据驱动和参数传递
4.1参数化介绍
4.2参数化的应用
4.2.1单一参数化应用
4.2.2多参数应用
4.2.3多个参数化
4.2.4参数化与fiture的结合
4.2.5pytestmark实现参数化
4.3parametrize源码详细讲解
4.4argnames参数
4.4.1argnames与测试方法中的参数关系
4.4.2argnames调用覆盖同名的fiture
4.5argvalues参数
4.5.1argvalues来源于Ecel文件
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.18pytestdist测试并发执行
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在Linu环境下安装
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.5fiture的依赖接口需要测试,也需要参数化
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安装和验证de.js
10.2.3安装Android SDK
10.2.4安装模拟器或连接真机
10.2.5安装appiumdesk
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开发
|
內容試閱:
|
在整个开发过程中,由于市场变化频繁导致需求变化频繁,公司层面需要尽快知道做出的各种决策的结果和反馈,也就是希望在整个产品开发的生命周期中各个环节都能快速跟上这种变化,迅速做出正确响应。
以前环境的自动化和测试的自动化是整个过程的难点,现在有了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月
本书源代码下载
|
|