Python接口自动化测试
  • 推荐0
  • 收藏8
  • 浏览4.8K

Python接口自动化测试

王浩然 (作者) 

  • 丛  书:测试馒头铺从0到1职业规划丛书
  • 书  号:978-7-121-35687-2
  • 出版日期:2019-05-20
  • 页  数:232
  • 开  本:16(185*235)
  • 出版状态:上市销售
  • 维护人:王静
纸质版 ¥59.00
本书主要介绍如何用Python实现接口自动化测试。全书主要内容包括接口基础、接口手工测试、编程前的准备、用Python处理MySQL数据库、用Python发送HTTP请求、用Python处理HTTP返回包、用Python导出测试数据、接口自动化起航及实际接口场景演示。
本书所介绍的方法是作者在实际项目中实践过的,拥有这本书,就拥有了整套的源码。按照本书的环境设置,整套源码是完全可运行的。本书适合初、中级测试工程师,对Python语言感兴趣的人员,以及想要提升技术、突破技术的人员。
引导测试人员攻克Python入门难点
拥有本书,就拥有整套的源码,按照本书的环境设置,整套源码是完全可运行的
前言
本书整体设计思想
自动化测试的前景
软件测试,在大多数的公司中还是处于相对弱势的地位,原因主要在软件测试本身:相比于软件开发,软件测试无论进入门槛还是编程能力,要求都低一些;而且大多数公司的软件测试还局限于手工测试。这就造成了业界对软件测试的偏见——软件测试只是随便按一按鼠标,技术含量低。
诚然,软件测试离不开手工测试,但不能只有手工测试没有编程能力。技术性测试的方法有很多,常见的有自动化测试、性能测试、白盒测试、安全性测试等,这些测试方法都需要测试人员有比较强的编程能力。其中,自动化测试的进入门槛较低,但效果最明显,所以,自动化测试可以作为广大测试人员进入技术性测试的切入点。
现阶段,薪资高一些的测试岗位,普遍要求从业人员具有自动化基础及实际操作能力。所以,从就业角度来说,自动化测试是突破测试行业薪资瓶颈的一条捷径;从测试人员的职业发展来说,学习一定的技术,有助于建立技术思维及行业内部的沟通,便于将来继续走测试技术路线,或是转到其他岗位。
本书写作目的
相信很多测试人员和我的经历很像,从最开始的手工测试开始积累经验,在这个过程中肯定想过做自动化测试、做技术。我最开始是用QTP(Quick Test Professional,一种自动测试工具)录制了登录功能,看着浏览器自动打开、自动输入网址、自动登录,那种愉悦的心情是不言而喻的。但是,真正能转型成功(或者说能有一技之长)的测试人员还是偏少的,原因就在于难以突破关键技术点。
各种编程语言本身都有相同点,只要掌握突破了一门,其他语言学起来也就没那么难了。所以,如何突破一门语言,如何跨过第一道门槛,成为制约测试人员技术能力提升的关键点,这也是本书编写的目的——引导测试人员突破Python 的入门难点。
为什么要选择Python?最主要的原因是——合适。正所谓“鞋合不合适只有脚知道”。
Python 简单易学的特点,恰好符合测试人员的要求。很多时候,我都在怀疑Python 是不
是专为测试人员量身打造的。关于Python 的更多优势,读者可以在正文中看到。
本书特点
作者在构思本书的时候,也翻阅了市面上很多同类技术书籍,发现绝大多数都有一个通病——采用教科书的写作模式。所谓“教科书模式”,即按照“语言的历史→语法→章节练习→案例讲解”的模式来展开。这种模式很经典,内容也很翔实,但是太过于死板和理论化。这样的书虽然仔细阅读后确实能收获很多,但是不利于快速上手。
读教科书模式的书时,学习者很容易半途而废,包括我自己,经常是看了不到三分之一的内容就放弃了,所有的新鲜劲都在语法和练习中被消磨殆尽了。我真正开始写脚本并不是从某本书开始的,而是从实际的项目拆分入手的,遇到问题再去翻这类教科书,纯粹将它当作工具书来使用。
所以,本书不是按照传统的教科书模式编写的,而是从实际要实现的目标着手,一步步将目标拆分成知识点,再对知识点进行突破,将每个点拆分成一个个小的突破点——类似于“拆书帮”(某个学习社区)的形式,将“Python+MySQL 处理HTTP 协议接口的过程”拆解到一个个章节中。读者在每个章节中都能学到完整的一个知识点,最后串联各个知识点,实现最终的学习目标。关于如何分解、如何逐个突破,读者可以在正文中看到。
读者通过实现每个章节的功能,逐步建立对Python 的理解,通过小篇幅的功能实现来提升成就感,激发自己继续往下看、继续往下学的信心和勇气。本书所介绍的方法是作者在实际项目中实践过的,并且也被很多业内同行所采用。读者不仅可以将其用在Python 学习中,也可以用在其他语言甚至生活中。
读者对象
? 对Python 感兴趣的人员;
? 想在项目中实现HTTP 协议接口自动化测试的人员;
? 想要提升技术的人员;
? 初、中级测试工程师。
代码下载
本书配套代码的下载地址:https://www.broadview.com.cn/ 。
有关于任何问题、建议和疑问,欢迎发邮件到:smallprocess@yeah.net
致谢
感谢Guido van Rossum 于1989 年发明了Python。
感谢电子工业出版社审校此书,以及为本书能够快速出版而付出的辛苦。
感谢何飞在本书构思和出版中所做的指导和帮助。没有他的指引就没有本书的出现。
感谢我的家人,感谢你们对我工作的理解和支持,有你们一直的付出才有今天的这本书。
作 者

目录

目录
1 本书整体设计思想 . 1
1.1 为什么要做懂技术的测试人员 . 2
1.2 为什么选择这本书. 4
1.3 为什么选择Python 5
1.4 本书能给你带来什么 . 6
1.5 自动化代码的设计思路 . 6
1.5.1 由手工测试分析出哪些步骤可自动化处理 . 8
1.5.2 以可重复步骤为契机,梳理自动化测试的步骤 . 9
1.5.3 抽象自动化步骤到功能点 . 10
1.6 补充知识点 10
1.6.1 什么是面向对象编程中的对象 . 10
1.6.2 什么是面向对象编程中的类 . 11
1.6.3 什么是编程语言中的实例 . 11
1.6.4 自动化测试是不是比手工测试覆盖率高 . 12
1.6.5 什么是自动化测试 . 13
1.6.6 什么是分层自动化测试 . 14

2 接口基础 18
2.1 什么是接口 19
2.2 接口的分类 23
2.3 HTTP 接口 . 24
2.3.1 HTTP 发送请求的方式 28
2.3.2 GET 方式和POST 方式的区别 29
2.4 接口测试 30
2.4.1 什么是接口测试 . 30
2.4.2 为什么要做接口测试 . 30
2.4.3 如何开展接口测试 . 31
2.4.4 前/后端交互的“契约—接口”文档 32
2.5 接口实例 34
2.5.1 前端页面 . 34
2.5.2 数据流图 . 35
2.5.3 逻辑代码 . 39
2.6 补充知识点 40
2.6.1 名词解释 . 40
2.6.2 答疑 . 41

3 接口手工测试 . 43
3.1 HTTP 接口工具 . 44
3.2 Fiddler 工具的使用 47
3.2.1 Fiddler 工具介绍 47
3.2.2 手工调用HTTP 接口 . 48
3.2.3 获取PC 端的网络数据包 51
3.2.4 获取手机端的网络数据包 . 52
3.2.5 截包与改包 . 54
3.2.6 Fiddler 工具的其他功能 . 58
3.3 接口手工测试的用例设计 . 59
3.3.1 接口测试用例设计——总纲 59
3.3.2 接口测试用例设计——参数校验 59
3.3.3 参数校验——SQL 注入 . 62
3.3.4 接口测试用例设计——逻辑校验 63
3.3.5 接口测试用例设计——用例模板 64
3.4 补充知识点 65

4 编程前的准备 67
4.1 Python 环境准备 68
4.1.1 选择Python 2 还是Python 3 68
4.1.2 在Windows 下安装Python 3 . 69
4.1.3 Python 2 和Python 3 共存之道 70
4.2 准备本地MySQL 服务 . 71
4.3 补充知识点 74
4.3.1 Python 2 与Python 3 的语法区别 74
4.3.2 Python 解释器 . 75
4.3.3 Python 的函数 . 75

5 用Python 操作MySQL 数据库 77
5.1 提前工作 78
5.2 操作MySQL 数据库 . 80
5.2.1 用Python 操作MySQL 数据库的流程 . 80
5.2.2 用Python 操作MySQL 代码 . 81
5.3 本章所涉及的Python 语法 . 95
5.3.1 模块与包 . 95
5.3.2 类 . 99
5.3.3 条件判断 . 104
5.3.4 异常处理 . 106
5.3.5 Python 3 代码注释 107
5.4 PyCharm 使用基础 109
5.4.1 为什么选择PyCharm . 109
5.4.2 PyCharm 使用基础 . 110
5.5 补充知识点 113
5.5.1 MySQLdb 与PyMySQL. 113
5.5.2 Python 命名规则 . 113
5.5.3 self.cur.scroll 源码分析 113
5.5.4 主流数据库的分类 . 115
5.5.5 MySQL 的基本语法 . 117

6 用Python 发送HTTP 请求 120
6.1 准备工作 121
6.2 发送HTTP 请求实例 123
6.2.1 用Python 发送HTTP 请求的流程 123
6.2.2 用Python 操作HTTP 请求的代码 125
6.3 本章所涉及的Python 语法 . 135
6.3.1 数据类型 . 135
6.3.2 方法与函数 . 137
6.3.3 切片 . 140
6.3.4 日志模块logging 141
6.4 补充知识点 142
6.4.1 Python 的循环机制 . 142
6.4.2 logging . 143

7 用Python 处理HTTP 返回包 144
7.1 提前工作 145
7.2 处理HTTP 返回包实例 . 145
7.2.1 用Python 处理HTTP 返回包的基础 145
7.2.2 用Python 处理HTTP 返回包的流程 148
7.2.3 用Python 处理HTTP 返回包的代码 150
7.3 本章所涉及的Python 语法 . 161
7.3.1 json 方法 . 161
7.3.2 字典的两个方法 . 162
7.3.3 eval()与instance()方法 . 163
7.3.4 set()方法与issubset()方法 163
7.4 补充知识点 164
7.4.1 Python 的垃圾回收机制 . 164
7.4.2 字符串的startswith()和endswith()方法 166

8 用Python 导出测试数据 168
8.1 提前工作 169
8.2 用Python 导出测试数据 170
8.2.1 导出测试数据的基础知识 170
8.2.2 导出测试数据实例 171
8.3 整体业务流程图 176
8.4 补充知识点 178
8.4.1 Python 时间戳 178
8.4.2 Excel 的操作178

9 接口自动化起航 179
9.1 提前工作 180
9.2 代码之外 180
9.2.1 初始化数据 180
9.2.2 代码结构图181
9.3 接口自动化起航代码 182
9.3.1 业务逻辑梳理 182
9.3.2 代码实例 183
9.4 代码操作步骤 188
9.5 补充知识点 190
9.5.1 用print 格式化输出 190
9.5.2 数据驱动和关键字驱动 191

10 实际接口场景演示 192
10.1 提前工作 193
10.2 接口举例 193
10.3 准备与执行 193
10.3.1 设计接口测试用例193
10.3.2 按照接口用例设计准备测试数据 193
10.3.3 在config_total 表中增加执行与导出配置项 193
10.3.4 执行main.py 195

附录A 本书用到的Python 代码清单 196

读者评论

  • 书感觉不怎么样,例子不通用,API交互方面都没怎么讲。前面说循序渐进的教学方法不好,可后面只是贴出一大段代码然后讲个思路,也算是快餐书通病了,这方法对我这种习惯看循序渐进的教科书的人来说感觉不是很好。而且样例不清晰,结果显示没有把api请求的内容与数据库里呈现的数据进行对比,我看的是一头雾水。跟接口自动化测试这个主题关联性不强,我是个新手,没有我最想看到的如何把任何一个json、multipart/form-data等类型的content-type解析出来他们的请求体,并发送数据这个过程。可能也是因为我是个新手,所以可能看不到更深层的,比如设计层面的东西,故说出来的全是自己觉得书里不到位的地方,触犯众怒或者作者的话,我在此道歉了。

    LTisme发表于 2021/1/10 16:35:20
    • 我同意,代码格式都不改

      小男孩发表于 2022/9/13 21:47:47
  • 作者勘误:源码中提供的SQL有部分错误一直没更新,请从该地址下获取最新的sql语句文件,给你造成的困惑是否抱歉
    https://pan.baidu.com/s/14cge4Mo6ygmk04XWXKVC5A
    提取码:xctt

    大婶N72发表于 2020/6/19 1:15:48
  • config_total SQL文件不能直接运行

    李浩.py发表于 2020/5/29 16:53:43
    • 源码中提供的SQL有部分错误一直没更新,请从该地址下获取最新的sql语句文件,给你造成的困惑是否抱歉
      https://pan.baidu.com/s/14cge4Mo6ygmk04XWXKVC5A
      提取码:xctt

      大婶N72发表于 2020/6/19 1:15:58
  • 运行request库

    “C:\Program Files\Python36\python.exe” E:/Autotest_inte**ce/common/request.py
    Traceback (most recent call last):
    File “E:/Autotest_inte**ce/common/request.py”, line 114, in <module>
    url_inte**ce=params_inte**ce[‘data’][‘url_inte**ce’]
    TypeError: list indices must be integers or slices, not str

    xiaofeng111发表于 2020/5/25 14:10:48
    • 对对对,自己也不运行一下,类型都不对

      3@444发表于 2023/11/20 20:22:10
  • 作者勘误:源码compare.py中方法:__recur_params的第一个if条件替换成下面,否则会出现异常,导致结果为空。源码压缩包暂未修改,请注意!
    if isinstance(result_inte**ce, str) and result_inte**ce.startswith('{'):

    大婶N72发表于 2020/3/1 23:16:23
    • 我也发现了,请问他们顺序相反有什么问题吗,求解

      李浩.py发表于 2020/6/2 22:55:46

下载资源

同系列书

  • Python接口自动化测试

    王浩然 (作者)

    本书主要介绍如何用Python实现接口自动化测试。全书主要内容包括接口基础、接口手工测试、编程前的准备、用Python处理MySQL数据库、用Python发送H...

    ¥59.00
  • 软件测试进阶之路——测试路上你问我答

    何飞 (作者)

    现如今,众多的互联网产品企业不再仅仅重视用户交互体验和运营推广渠道,也开始越来越重视产品的质量,所以软件测试岗位的受重视程度自然也就水涨船高了,越来越多的同学正...

    ¥49.00

相关图书

Python编程与3D物理学仿真(视频版)

张继春 (作者)

本书将Python编程和物理力学知识同步结合起来,通过编程将物理概念和物理过程进行3D可视化展 现,帮助读者在3D场景下加深对物理知识的理解和掌握,从而培养读者...

¥89.90

Photoshop设计师精通之道:摄影+平面+UI+网店实战全解

委婉的鱼 (作者)

近些年,Photoshop软件在平面设计、广告摄影、影像创意、网页制作、后期修饰、视觉创意及界面 设计中的重要地位越来越不可被撼动,学好Photoshop是一个...

¥62.30

利用Python轻松学数学

蹇 彤 (作者)

本书将Python编程的基本知识和中小学数学知识紧密结合起来,在介绍Python知识的同时穿插数学趣题和难题的讲解,以引导读者从一个全新的角度来看待编程、体验编...

¥69.00

Python编程之美:最佳实践指南

Reitz,Schlusser (作者) 夏永锋 (译者)

本书是Python用户的一本百科式学习指南,由Python社区数百名成员协作奉献。<br>全书内容分为三大部分。第一部分是关于如何配置使用Python编辑工具的...

¥89.00

Lua程序设计(第4版)

Roberto Ierusalimschy (作者) 梅隆魁 (译者)

本书由 Lua 语言作者亲自撰写,针对 Lua 语言本身由浅入深地从各个方面进行了完整和细致的讲解。作为第 4 版,本书主要针对的是 Lua 5.3,这是本书撰...

¥89.00

Python网络安全教科书

胡松涛 (作者)

本书是一本黑客技术的入门实战书籍,从最初的工具选择,一直到最后的攻击演示,由浅入深地引导读者全面系统地掌握网络安全防范技术,借助Python打造更安全的网络。<...

¥69.00