首页>参考读物>计算机科学与技术>软件与程序设计

Python自动化测试入门与进阶实战
作者 : 唐文 编著
出版日期 : 2021-01-21
ISBN : 978-7-111-67401-6
定价 : 79.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 292
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD : 无CD
绝版 : 未绝版
图书简介

本书从Python自动化测试的概念讲起,逐步深入自动化测试的进阶知识,最后通过两个复杂的项目案例,重点介绍如何使用unittest+Requests+Selenium进行RESTful API和跨终端自动化测试。本书共10章,涵盖的内容有自动化测试思想;Python HTTP接口编程;Selenium基础知识;Mock模块的使用;通过Python进行爬虫测试;性能测试和压测工具实战;多线程压力测试;基于Appium的移动端测试;基于pytest的单元测试;通过编写代码测试RESTful API;Tarven相关测试接口;Selenium对百度网盘测试操作实战;lettuce语义化编程;Selenium Server的安装、部署和实战;poium和autoTest框架入门与实践。本书适合有Python编程基础而想要学习Python自动化测试技术的人员阅读,也适合对自动化测试感兴趣的相关从业人员和技术爱好者阅读。另外,本书还可以作为相关院校和培训机构的教材。

图书特色

叫叫学院CTO彭守长、字节跳动高级工程师黄豪杰等4位大咖力荐!结合典型测试场景介绍Python自动化测试的核心技术,搭建一个自研自动化测试平台,提高测试效率,降低测试成本


编辑推荐:
叫叫学院CTO彭守长、字节跳动高级工程师黄豪杰等4位大咖力荐
结合典型的测试场景,全面介绍Python自动化测试涉及的核心技术
搭建一个自研的自动化测试平台,提高测试效率,降低项目测试的成本
80多个实例,2个综合项目案例,提高读者的动手能力
内容全面:涵盖Web测试和App测试涉及的核心技术及典型场景。
讲解详细:详解每个重要的知识点,并给出每个实例和项目案例的详细实现步骤。
由浅入深:从概念讲起,逐步深入核心技术,最后通过项目案例进行实践。
实用性强:从实际的测试场景出发,结合多个典型实例与综合案例进行讲解。
技术前瞻:引入测试驱动开发和行为驱动开发等新技术和编程模式。

图书前言

  如今,随着软件的复杂度越来越高,人工测试大型软件变得越来越困难,越来越多的公司开始使用Python进行自动化测试,即用程序和自动化工具来代替人工测试。因此,人工测试人员越来越无法满足市场需求,而基于Python的自动化测试工程师越来越受到市场的青睐。掌握Python测试技术,能让一个只会用测试工具的初中级测试工程师进阶到高级测试工程师之列,从而提高职业竞争力。
  目前,由于自动化测试人才的紧缺,该领域的薪酬有了不小的涨幅。从主流招聘网站的统计数据可以看出,一线和准一线测试从业人员的收入差异较大:初级测试工程师和人工测试人员月薪为5000~12?000元人民币;精通Python测试技术及自动化测试技术的高级测试工程师月薪为20?000~45?000元人民币;测试团队的管理人员月薪不低于50?000元人民币。这样的薪资水平正在吸引着越来越多的技术人员进入测试领域,一些开发人员开始转行做测试或者做高级质量管理。特别是以BAT为代表的一些大公司和新崛起的IT公司,也在加大力度招聘精通Python测试和自动化测试技术的人才。
  Python语言简单易学,拥有良好的灵活性和丰富的第三方库,能给开发和测试工作带来极大的便利,能对日常测试工作进行脚本化和程序化改进,用程序解决测试中的重复性工作,从而提高测试效率和质量。自动化测试可以解放生产力,通过预设的测试数据来批量测试功能清单上的功能点,可以完全覆盖所有的测试用例,并有效收集结果,给出测试结果的可视化报告,这比传统的人工测试效率高出很多。总体而言,通过测试手段来优化项目是自动化测试技术的一大优势所在。
  目前,国内已经出版了一些相关图书,但比较系统地介绍Python自动化测试技术的图书还不多。基于这个原因,笔者编写了本书,意在帮助那些想系统学习Python自动化测试的人员高效学习。相信通过阅读本书,读者可以较为全面地掌握Python自动化测试技术,从而能够使用他人封装好的工具,也能自己动手开发适合自身业务的工具,甚至还能搭建可视化测试平台。
本书特色
* 内容全面:对Web测试、App测试及性能测试涉及的相关技术进行详细介绍,全面覆盖Python自动化测试的核心技术与典型场景。
* 讲解详细:对每个重要的知识点都进行详细介绍,并对每个测试实例和项目案例都给出详细的实现步骤。
* 由浅入深:从Python自动化测试的概念开始,逐步深入讲解自动化测试的进阶知识,最后通过较为复杂的项目案例让读者从实战中学会项目分析,编写高质量和高复用性的测试代码。
* 实用性强:从实际的测试场景出发讲解核心技术,对每个知识点都配合典型实例进行讲解,并在最后两章给出两个完整的项目实战案例,以提高读者的实战水平。
* 技术前瞻:在讲解过程中适当引入一些新技术和编程模式,如TDD(测试驱动开发)和BDD(行为驱动开发)等,以拓展读者的知识。
本书内容
  第1篇 Python自动化测试基础
  第1章介绍自动化测试的定义和应用场景,并对比分析自动化测试和UI测试的不同之处。
  第2章介绍如何使用Python的requests库发起HTTP请求,并处理服务器返回的结果。
  第3章介绍Selenium的基础知识及对象定位的方法,并在此基础上介绍如何综合应用相关技术对页面目标进行自动化测试。
  第4章介绍如何使用Python的Mock库进行模拟数据测试,并给出一个模拟登录案例。
  第5章介绍如何使用爬虫技术进行接口测试,其中重点介绍urllib和BeautifulSoup库的使用,并对Scrapy框架做了初步介绍。
  第6章介绍性能测试的概念和重要性,并重点介绍常用的压力测试工具的使用,以及如何用多线程提高性能和如何用JMeter进行压力测试。
  第7章介绍App自动化测试的背景知识,以及Appium自动化测试框架从安装、部署到测试实践的相关知识。
  第8章介绍单元测试的概念,并重点介绍如何使用pytest框架进行单元测试,还对conftest的使用方法做了必要介绍。
  第2篇 Python自动化测试实战
  第9章给出一个RESTful API项目案例,其中重点介绍如何使用unittest库进行单元测试和断言,并介绍如何使用Tavern工具进行接口测试。
  第10章从零开始搭建一个自研测试框架并编写测试用例代码,其中重点介绍如何使用Lettuce进行行为驱动开发,以及如何使用Selenium实现跨浏览器测试。
配书资源获取
  本书涉及的源代码等相关资源需要读者自行下载。请在机工新阅读网站(www.cmpreading.com)上搜索到本书,然后单击“资料下载”按钮,即可在本书页面上找到下载链接。
读者对象
* Python自动化测试初学者;
* 想提高自动化测试水平的工程师;
* 想转岗从事自动化测试的开发人员;
* 高等院校相关专业的学生;
* 相关培训机构的学员。
售后支持
  本书涉及的内容比较庞杂,加之作者水平和成书时间所限,书中可能还存在一些疏漏和不当之处,敬请指正。阅读本书时若有疑问,请发E-mail到hzbook2017@163.com以获得帮助。

上架指导

计算机/程序设计/Python

封底文字

本书赞誉

在竞争日益激烈的互联网领域,产品的品质和企业的服务水平已经成为用户做决策的重要抓手。测试是保障软件品质的关键环节之一,也是提高软件质量的最后关口,对于相关企业而言尤为重要。企业对测试工作的要求是既要好又要快,但是因为每次都需要对各个功能点逐一进行测试,因此传统的测试方法已经无法满足企业的实际需求。本书立足于测试工作的需求,结合多个典型测试案例,介绍如何运用自动化测试技术提升软件测试的效率,值得软件测试领域的相关从业者和爱好者阅读。
——叫叫学院CTO与合伙人 彭首長

自动化测试是CI(持续集成)和CD(持续交付)中的重要组成部分,用好了能大大提高整个产品的迭代效率,提升交付产品的质量。自动化测试是一名优秀测试从业者应该具备的基本技能。本书结合大量测试用例,系统地介绍了自动化测试涉及的各个重要知识点,非常适合入门与进阶读者阅读。
——字节跳动高级工程师 黄豪杰

当前,很多软件公司都开始用程序和自动化工具来替代人工测试,其中,Python自动化测试技术备受青睐。本书对Python自动化测试的各个典型场景都有非常详细的介绍,并对涉及的工具也给出了详细的使用说明和独特的见解,非常值得自动化测试领域的入门人员和初中级测试工程师阅读。
——上上上智能科技技术总监 曾圣国

本书涵盖Python自动化测试的方方面面知识,讲解时理论与实践并重,结合丰富的案例帮助读者理解重要的知识点和相关的测试流程。对于刚接触自动化测试的读者而言,本书可以夯实基础,对于相关从业人员而言,本能能够提高测试技能。
——腾讯应用工程师 kiwifan

图书目录

前言
第1篇 Python自动化测试基础
第1章 自动化测试概述 2
1.1 测试方式分类 2
1.2 自动化测试的概念和优点 4
1.3 为什么用Python进行自动化测试 5
1.4 接口测试和UI测试的比较 6
1.5 小结 10
第2章 Python HTTP接口编程 11
2.1 发起HTTP请求示例 11
2.1.1 HTTP请求原理解析 11
2.1.2 利用Python发起HTTP请求 13
2.1.3 利用Python处理响应对象 14
2.2 HTTP简介 14
2.2.1 HTTP状态码 15
2.2.2 利用Python处理业务码 18
2.3 GET和POST请求 19
2.3.1 HTTP请求方式 20
2.3.2 利用Python发起GET请求 20
2.3.3 利用Python发起POST请求 22
2.3.4 利用Python完成自动登录示例 24
2.4 小结 25
第3章 Selenium基础知识 26
3.1 Selenium概述 26
3.2 Selenium环境搭建 27
3.2.1 安装Selenium包 27
3.2.2 安装不同浏览器的驱动包 27
3.3 在Selenium中选择元素对象 28
3.3.1 根据id和name选择元素对象 28
3.3.2 根据link text选择元素对象 29
3.3.3 根据XPath选择元素对象 29
3.3.4 CSS选择器 30
3.4 使用Selenium完成自动登录 33
3.4.1 自动登录百度网盘 34
3.4.2 自动登录QQ空间 36
3.5 鼠标事件 36
3.6 键盘事件 39
3.7 对一组对象定位 40
3.8 对层级对象定位 43
3.9 iframe中的对象定位 46
3.10 调试方法 48
3.11 对话框处理 49
3.12 跨浏览器的窗口处理 50
3.13 分页处理 51
3.14 控制浏览器的滚动条 53
3.15 小结 54
第4章 Python模拟数据测试 55
4.1 模拟测试简介 55
4.1.1 模拟测试的定义和使用场景 55
4.1.2 安装Mock库 56
4.1.3 Mock对象简介 56
4.1.4 简单用例 57
4.2 测试留言板功能 58
4.2.1 测试新增功能 59
4.2.2 对测试失败的情况进行处理 62
4.3 Mock库的高级用法 63
4.3.1 Patch简介 63
4.3.2 Patch的简单用例 63
4.3.3 利用Patch测试购物车类 64
4.4 模拟登录 68
4.4.1 登录的完整用例 68
4.4.2 通过面向对象的方式实现登录 70
4.5 小结 70
第5章 Python爬虫测试接口 72
5.1 爬虫测试简介 72
5.1.1 爬虫测试的思路和流程 72
5.1.2 urllib库的使用 73
5.1.3 urllib 3简介 78
5.1.4 BeautifulSoup的使用 79
5.1.5 使用BeautifulSoup爬取BOSS直聘网站上的信息 82
5.1.6 正则表达式简介 90
5.1.7 封装一个强大的爬虫工具类 93
5.2 Scrapy基础 94
5.2.1 Scrapy简介 94
5.2.2 Scrapy的基本用法 96
5.2.3 Scrapy爬虫实践 99
5.3 测试商品列表页面的完整用例 102
5.4 多线程爬虫用例 106
5.5 反爬虫安全策略 108
5.5.1 tesserocr库简介 109
5.5.2 图片滑块验证码 112
5.5.3 IP限制 115
5.6 小结 116
第6章 性能测试 118
6.1 性能测试简介 118
6.2 Locust工具的使用 119
6.2.1 环境搭建 120
6.2.2 Locust快速入门 124
6.2.3 Locust和其他工具集成 129
6.3 常用的压力测试工具 130
6.3.1 轻量级http_load工具的使用 131
6.3.2 webbench工具的使用 132
6.3.3 AB工具的使用 133
6.3.4 利用Python操作AB工具 137
6.4 利用多线程实现性能提升 141
6.5 使用JMeter对Selenium自动化代码进行压力测试 146
6.6 小结 152
第7章 App自动化测试 154
7.1 App自动化测试简介 154
7.2 测试计划设计 157
7.3 Appium自动化测试框架 159
7.3.1 Appium工具简介 159
7.3.2 环境搭建 160
7.3.3 Android Studio的简单使用 165
7.3.4 自动化测试手机计算器 169
7.3.5 Appium的常用API 172
7.4 小结 175
第8章 使用pytest进行单元测试 176
8.1 单元测试简介 176
8.1.1 单元测试的重要性 177
8.1.2 单元测试框架简介 178
8.1.3 安装pytest 179
8.1.4 pytest的简单用例 180
8.2 pytest的基本用法 189
8.2.1 断言 190
8.2.2 异常处理 192
8.2.3 执行测试和参数设置 193
8.2.4 对测试结果进行分析和处理 198
8.3 pytest进阶之conftest的使用 202
8.4 其他单元测试框架 206
8.5 小结 208
第2篇 Python自动化测试实战
第9章 基于RESTful API的自动化测试案例 210
9.1 RESTful API简介 210
9.2 接口分析 211
9.3 编写配置 214
9.4 数据准备 221
9.5 新增文章接口测试代码用例 222
9.6 修改文章接口测试代码用例 225
9.7 删除文章接口测试代码用例 226
9.8 查询文章接口测试代码用例 227
9.9 API测试工具 229
9.9.1 Tavern简介 229
9.9.2 Tavern的基本用法 229
9.9.3 使用Tavern测试文章的所有接口 231
9.10 小结 232
第10章 基于Selenium的Web自动化测试案例 233
10.1 自研自动化测试框架 233
10.2 使用Selenium自动化操作网盘 242
10.2.1 基本操作封装 242
10.2.2 发送通知邮件 247
10.3 使用Lettuce进行测试 250
10.3.1 TDD和BDD简介 251
10.3.2 使用pytest-bdd进行测试 252
10.3.3 Lettuce初体验 255
10.3.4 编写Lettuce程序 258
10.3.5 Aloe的使用 260
10.4 Selenium跨浏览器测试实战 262
10.4.1 Selenium Server的安装 262
10.4.2 Selenium数据驱动测试 267
10.4.3 poium测试库 274
10.4.4 pyautoTest Web UI自动化项目 275
10.5 小结 277

教学资源推荐
作者: 刘燕君,刘振安,孙忱
作者: (美)Richard Johnsonbaugh;Martin Kalin 著
作者: Frank L. Friedman;Elliot B. Koffman
作者: (美)Y. Daniel Liang 著
参考读物推荐
作者: (美)Vlada Matena Beth Stearns
作者: (美)John Lakos 著
作者: 常建功