Web接口开发与自动化测试——基于Python语言
  • 推荐1
  • 收藏19
  • 浏览36.1K

Web接口开发与自动化测试——基于Python语言

胡志恒 (作者) 

  • 书  号:978-7-121-31099-7
  • 出版日期:2017-03-30
  • 页  数:288
  • 开  本:16(185*235)
  • 出版状态:上市销售
  • 维护人:安娜
本书以接口测试为主线,以Web开发为切入点,全面介绍了Web接口开发与自动化测试过程中使用的相关技术。全书分为15章,第1章介绍了Python的基础知识,解答初学Python的同学都会遇到的一些问题;第2章到第5章以开发发布会签到系统为需求,介绍了Django Web开发技术;第6章介绍了unittest单元测试框架,以及在Django中如何编写单元测试;第7章到第10章主要介绍接口的相关概念、Web接口开发、接口测试工具和接口自动化测试框架的开发;第11介绍了安全接口的开发与测试;第12章和第13章介绍了Web Services技术;第14章和第15章介绍了Django Web项目的部署和接口性能测试。
这不仅是一本接口自动化测试书,同时还是一本Django Web入门书
前 言
本书的原型是我整理的一份Django 学习文档。在从事软件测试工作的这六七年里,我
一直有整理学习资料的习惯,这种学习理解再输出的方式对我非常受用,博客和文档是我
主要的输出形式,这些输出同时也帮助到许多软件测试人员。
说回到接口测试的话题上来,根据分层自动化测试的思想,上层为UI 层。关于UI 层
的自动化测试我们已经很熟悉了,许多技术和工具都是围绕这一层来设计的,我们要想做
自动化,首先想到和尝试去做的也是这一层的自动化实现。底层为单元测试,对于单元级
别的自动化测试来说,虽然大多数测试人员并没有真正做过,但我们知道,它一般使用单
元测试框架,通过一段代码去测试另一段代码;而接口测试刚好处于中间层,不太好理解,
也不太好解释,因为在开发的项目中只有程序目录/文件、类、方法、函数这些,并没有一
个叫作“接口”的东西。但是,它却又无处不在,是一个出现频率极高的词,时刻挂在开
发人员的嘴边。
什么是接口?如何对接口进行测试呢?我曾经也有很长一段时间并不太理解什么是接
口测试。为什么没有一本讲接口测试的书呢?性能测试和UI 自动化测试的书籍每年都会出
版好几本,与之相比,几乎找不到一本专门介绍接口测试的书。现在想来可能是因为它太
简单了吧!简单到没什么可讲的,甚至接口测试比功能测试还要简单得多。但是,真的做
好接口测试又很难,或者说难点并不在于接口测试本身,而是需要有读懂接口代码处理逻
辑的能力,这就要求你必须具备一定的开发基础,因而对许多测试人员来说,已经形成了
门槛。
要写一本关于接口测试的书,一种讨巧的做法就是把目前主流的接口测试工具都介绍
一遍,这很符合主题。然而,我并不认为把这些工具都学好就可以做好接口测试。举一个
简单的例子,我的接口使用了加密,例如,用时间戳+密钥生成AES 加密字符串,再将字
符串生成base64 字符串作为接口参数传输,这其实是一种常见的加密策略,而我所了解的
IV ∣ Web 接口开发与自动化测试——基于Python 语言
大多数接口测试工具都无法做到对这种加密接口的测试。原因很简单,加密算法和加密策
略多种多样,而工具却很难模拟这种多样性的加密策略。但是,站在开发的角度上看,接
口测试就很简单了,开发怎么调用,测试就怎么调用呗!只不过测试的目的是验证在传各
种参数的情况下,接口是否可以正确地处理并返回结果。
所以,我选择另一种需要很高学习成本的方法来讲解接口测试,从Web 接口开发讲起,
理解了接口是如何开发的,再做接口测试自然就变得非常简单了。你会看到本书前几章都
是在讲Web 开发以及Web 接口开发,你可能会怀疑自己是不是买错书了,明明是要学习接
口测试的,怎么介绍的都是开发的技术。其实,如果你只是想学习Web 开发的话,那么本
书也是一本不错的入门教程。
本书共分为15 个章节,涵盖了不少话题,这也是我在写作时对自己的要求,不要讲解
太基础的东西,不要讲太多无聊的概念,要有很强的可操作性。第1 章是Python 基础,第
2~5 章是Web 开发,第6 章是单元测试,第7~10 章主要讲接口的概念、开发与测试,第
11 章介绍安全接口的开发与测试,第12~13 章讲Web Service 技术,第14~15 章介绍项目
的部署与性能测试。所以,这并不是一本单纯面向测试人员的书,同样适合开发的小伙伴
阅读。
到了感谢部分,首先,感谢身边的同事,一年多的接口自动化测试实践过程中,我收
获了很多,感谢测试经理唐亮对我们在尝试新技术时的支持,感谢开发组的蓝仕坤、陈晓
发在技术上给了我很大的帮助。其次,感谢接口自动化测试群里的小伙伴,他们给本书提
了很多建议,包括本书的名字,也是在群里投票的结果。再次,感谢我的妻子,她默默地
容忍着我每天晚睡的坏习惯,感谢她一直以来的包容与理解。最后,感谢编辑安娜,没有
她这本书也不会出版,我们合作一直很愉快。
由于作者水平有限,希望你带着怀疑的精神阅读本书,如果发现错误,欢迎批评指正。
2017 年1 月13 号凌晨
虫师

目录

目 录∣ V
目 录
第1 章 Python 学习必知 ............................................................................................................ 1
1.1 Python 2.x 与Python 3.x 选择 ............................................................................... 1
1.2 Python 的安装 ........................................................................................................ 2
1.2.1 在Windows 下安装Python ....................................................................... 2
1.2.2 安装Python 2 和Python 3 两个版本 ........................................................ 3
1.2.3 “python”不是内部或外部命令 ............................................................. 5
1.3 扩展库的安装 ........................................................................................................ 6
1.3.1 pip 安装扩展库 .......................................................................................... 6
1.3.2 tar.gz 文件安装 .......................................................................................... 9
1.3.3 .whl 文件安装 ............................................................................................ 9
1.3.4 GitHub 克隆项目安装 ............................................................................... 9
1.4 开发工具选择 ...................................................................................................... 11
1.4.1 Sublime Text3 ........................................................................................... 11
1.4.2 Atom ......................................................................................................... 13
1.4.3 PyCharm ................................................................................................... 14
1.5 程序报错不要慌 .................................................................................................. 15
1.5.1 缩进错误 .................................................................................................. 15
1.5.2 引包错误 .................................................................................................. 16
1.5.3 编码错误 .................................................................................................. 16
1.5.4 学会分析错误 .......................................................................................... 17
第2 章 Django 入门 ................................................................................................................. 19
2.1 Django 开发环境 .................................................................................................. 19
2.1.1 在Windows 下安装Django .................................................................... 20
VI ∣ Web 接口开发与自动化测试——基于Python 语言
2.1.2 在Ubuntu 下安装Django........................................................................ 20
2.2 开始第一个demo ................................................................................................ 21
2.2.1 创建项目与应用 ...................................................................................... 22
2.2.2 运行项目 .................................................................................................. 25
2.2.3 Hello Django! ......................................................................................... 27
2.2.4 使用模板 .................................................................................................. 29
2.3 Django 工作流 ...................................................................................................... 30
2.3.1 URL 组成 ................................................................................................. 31
2.3.2 URLconf ................................................................................................... 32
2.3.3 views 视图 ................................................................................................ 33
2.3.4 templates 模板 .......................................................................................... 34
2.4 MTV 开发模式 .................................................................................................... 34
第3 章 Django 视图 ................................................................................................................. 36
3.1 来写个登录功能 .................................................................................................. 36
3.1.1 GET 与POST 请求 .................................................................................. 37
3.1.2 处理登录请求 .......................................................................................... 40
3.1.3 登录成功页 .............................................................................................. 42
3.2 Cookie 和Session ................................................................................................. 44
3.2.1 Cookie 的使用 .......................................................................................... 44
3.2.2 Session 的使用 ......................................................................................... 46
3.3 Django 认证系统 .................................................................................................. 49
3.3.1 登录Admin 后台 ..................................................................................... 49
3.3.2 引用Django 认证登录 ............................................................................ 50
3.3.3 关上窗户 .................................................................................................. 51
第4 章 Django 模型 ................................................................................................................. 53
4.1 设计系统表 .......................................................................................................... 53
4.2 admin 后台管理 ................................................................................................... 56
4.3 基本数据访问 ...................................................................................................... 59
4.3.1 插入数据 .................................................................................................. 60
4.3.2 查询数据 .................................................................................................. 61
目 录∣ VII
4.3.3 删除数据 .................................................................................................. 63
4.3.4 更新数据 .................................................................................................. 63
4.4 SQLite 管理工具 .................................................................................................. 64
4.4.1 SQLite Manager ....................................................................................... 64
4.4.2 SQLiteStudio ............................................................................................ 65
4.5 配置MySQL ........................................................................................................ 65
4.5.1 安装MySQL ............................................................................................ 65
4.5.2 MySQL 基本操作 .................................................................................... 67
4.5.3 安装PyMySQL ........................................................................................ 68
4.5.4 在Django 中配置MySQL ...................................................................... 69
4.5.5 MySQL 管理工具 .................................................................................... 72
第5 章 Django 模板 ................................................................................................................. 73
5.1 Django-bootstrap3 ................................................................................................ 73
5.2 发布会管理 .......................................................................................................... 74
5.2.1 发布会列表 .............................................................................................. 74
5.2.2 搜索功能 .................................................................................................. 78
5.3 嘉宾管理 .............................................................................................................. 79
5.3.1 嘉宾列表 .................................................................................................. 80
5.3.2 分页器 ...................................................................................................... 83
5.4 签到功能 .............................................................................................................. 87
5.4.1 添加签到链接 .......................................................................................... 87
5.4.2 签到页面 .................................................................................................. 88
5.4.3 签到动作 .................................................................................................. 91
5.5 退出系统 .............................................................................................................. 93
第6 章 Django 测试 ................................................................................................................. 95
6.1 unittest 单元测试框架 .......................................................................................... 95
6.1.1 单元测试框架 .......................................................................................... 95
6.1.2 编写单元测试用例 .................................................................................. 96
6.2 Django 测试........................................................................................................ 100
6.2.1 一个简单的例子 .................................................................................... 100
VIII ∣ Web 接口开发与自动化测试——基于Python 语言
6.2.2 运行测试用例 ........................................................................................ 102
6.3 客户端测试 ........................................................................................................ 104
6.3.1 测试首页 ................................................................................................ 104
6.3.2 测试登录动作 ........................................................................................ 105
6.3.3 测试发布会管理 .................................................................................... 107
6.3.4 测试嘉宾管理 ........................................................................................ 108
6.3.5 测试用户签到 ........................................................................................ 109
第7 章 接口相关概念 ............................................................................................................. 111
7.1 分层的自动化测试 ............................................................................................ 111
7.2 单元测试与模块测试 ........................................................................................ 112
7.3 接口测试 ............................................................................................................ 114
7.3.1 接口的分类 ............................................................................................ 115
7.3.2 接口测试的意义 .................................................................................... 116
7.4 编程语言中的Interface ..................................................................................... 117
7.4.1 Java 中的Interface ................................................................................. 117
7.4.2 Python 中的Zope.interface .................................................................... 119
第8 章 开发Web 接口 ........................................................................................................... 121
8.1 为何要开发Web 接口 ....................................................................................... 121
8.2 什么是Web 接口 ............................................................................................... 124
8.2.1 HTTP ...................................................................................................... 125
8.2.2 JSON 格式 .............................................................................................. 128
8.3 开发系统Web 接口 ........................................................................................... 129
8.3.1 配置接口路径 ........................................................................................ 129
8.3.2 添加发布会接口 .................................................................................... 130
8.3.3 查询发布会接口 .................................................................................... 132
8.3.4 添加嘉宾接口 ........................................................................................ 133
8.3.5 查询嘉宾接口 ........................................................................................ 135
8.3.6 发布会签到接口 .................................................................................... 136
8.4 编写Web 接口文档 ........................................................................................... 138
目 录∣ IX
第9 章 接口测试工具介绍 ..................................................................................................... 143
9.1 Postman 测试工具 .............................................................................................. 143
9.2 JMeter 测试工具 ................................................................................................ 146
9.2.1 安装JMeter ............................................................................................ 146
9.2.2 创建测试任务 ........................................................................................ 147
9.2.3 添加接口测试 ........................................................................................ 151
9.2.4 添加断言 ................................................................................................ 153
9.3 Robot Framework 测试框架 .............................................................................. 154
9.3.1 环境搭建 ................................................................................................ 155
9.3.2 基本概念与用法 .................................................................................... 157
9.3.3 接口测试 ................................................................................................ 160
第10 章 接口自动化测试框架 ............................................................................................... 165
10.1 接口测试工具的不足 ...................................................................................... 165
10.2 Requests 库 ....................................................................................................... 166
10.2.1 安装 ...................................................................................................... 167
10.2.2 接口测试 .............................................................................................. 167
10.2.3 集成unittest ......................................................................................... 168
10.3 接口测试框架开发 .......................................................................................... 169
10.3.1 框架处理流程 ...................................................................................... 169
10.3.2 框架结构介绍 ...................................................................................... 170
10.3.3 修改数据库配置 .................................................................................. 171
10.3.4 数据库操作封装 .................................................................................. 172
10.3.5 编写接口测试用例 .............................................................................. 176
10.3.6 集成测试报告 ...................................................................................... 178
第11 章 接口的安全机制 ....................................................................................................... 181
11.1 用户认证 .......................................................................................................... 181
11.1.1 开发带Auth 接口 ................................................................................ 182
11.1.2 接口文档 .............................................................................................. 184
11.1.3 接口测试用例 ...................................................................................... 185
X ∣ Web 接口开发与自动化测试——基于Python 语言
11.2 数字签名 .......................................................................................................... 187
11.2.1 开发接口 .............................................................................................. 188
11.2.2 接口文档 .............................................................................................. 191
11.2.3 接口用例 .............................................................................................. 192
11.3 接口加密 .......................................................................................................... 194
11.3.1 PyCrypto 库 .......................................................................................... 194
11.3.2 AES 加密接口开发 .............................................................................. 196
11.3.3 编写接口文档 ...................................................................................... 201
11.3.4 补充接口测试用例 .............................................................................. 202
第12 章 Web Services .......................................................................................................... 205
12.1 Web Services 相关概念 .................................................................................... 205
12.2 Web Services 的开发与调用 ............................................................................ 214
12.2.1 suds-jurko 调用接口 ............................................................................ 214
12.2.2 spyne 开发接口 .................................................................................... 219
12.3 JMeter 测试SOAP 接口 .................................................................................. 221
第13 章 REST ........................................................................................................................ 224
13.1 RPC 与REST ................................................................................................... 224
13.2 Django REST Framework................................................................................. 227
13.2.1 创建简单的API ................................................................................... 227
13.2.2 添加接口数据 ...................................................................................... 231
13.2.3 测试接口 .............................................................................................. 232
13.3 集成发布会系统API ....................................................................................... 234
13.3.1 添加发布会API ................................................................................... 234
13.3.2 测试接口 .............................................................................................. 237
13.4 soapUI 测试工具 .............................................................................................. 238
13.4.1 创建SOAP 测试项目 .......................................................................... 239
13.4.2 创建REST 测试项目 .......................................................................... 241
目 录∣ XI
第14 章 Django 项目部署 ..................................................................................................... 244
14.1 uWSGI .............................................................................................................. 244
14.1.1 uWSGI 介绍 ......................................................................................... 244
14.1.2 安装uWSGI ......................................................................................... 245
14.1.3 uWSGI 运行Django ............................................................................ 246
14.2 Nginx ................................................................................................................ 247
14.2.1 安装Nginx ........................................................................................... 247
14.2.2 Nginx+uWSGI+Django ........................................................................ 248
14.2.3 处理静态资源 ...................................................................................... 251
14.3 创建404 页面 .................................................................................................. 253
第15 章 接口性能测试 ........................................................................................................... 256
15.1 Locust 性能测试工具....................................................................................... 256
15.1.1 安装Locust .......................................................................................... 257
15.1.2 性能测试案例 ...................................................................................... 259
15.2 发布会系统性能测试 ...................................................................................... 262
15.2.1 性能测试准备 ...................................................................................... 263
15.2.2 编写性能测试脚本 .............................................................................. 266
15.2.3 执行性能测试 ...................................................................................... 267
15.3 接口性能测试 .................................................................................................. 270
15.3.1 编写接口性能测试脚本 ...................................................................... 270
15.3.2 执行接口性能测试 .............................................................................. 271
15.3.3 多线程测试接口性能 .......................................................................... 274

读者评论

  • 买了看不了

    l84222780发表于 2020/5/8 16:29:07
  • 有没有PDF格式之类的文件呀,这个电子档不方便阅读

    mwy发表于 2018/6/21 16:28:40
  • PC 没法看?

    mwy发表于 2018/6/20 15:18:54
  • 已经购买了电子版 请问该怎么看

    maojs发表于 2018/4/10 0:15:59
    • epub用京东阅读器就能打开,MObi格式的是用kindle看

      陈晓猛发表于 2018/4/10 8:04:53
    • @陈晓猛 用手机不能看吗

      maojs发表于 2018/4/10 9:29:32

下载资源

电子书版本

  • Epub
  • Mobi

推荐用户

相关图书

亿级流量系统架构设计与实战

李琛轩 (作者)

本书涵盖了亿级用户应用后台通用的技术和系统架构设计思路,在内容结构上分为三大篇:架构知识篇(第1~3章),作为全书的基础知识篇,首先介绍后台的关键组件构成以及机...

 

软件架构设计:大型网站技术架构与业务架构融合之道

余春龙 (作者)

本书系统化地阐述了技术架构与业务架构的方法论与实践。本书内容分为5大部分,第1部分从行业背景出发定义架构的概念与范畴;第2部分细致讨论架构所需的计算机功底,包括...

¥49.00

MySQL 8 Cookbook(中文版)

(美) 卡西克·阿皮加 特拉 (Karthik Appigatla) (作者) 周彦伟 孟治华 王学芳 (译者)

MySQL 8.0 的发布是MySQL 发展历史上的一个重要里程碑,也是开源数据库领域内的一个大事件。针对这个版本,MySQL 官方团队做了太多的工作,从查询优...

 

iOS和macOS性能优化:Cocoa、Cocoa Touch、Objective-C和Swift

[德] Marcel Weiher (作者) 李俊阳 马超 程伟 孙莹 译 (译者)

随着应用功能的日益增加,性能问题也逐渐浮出水面,进入我们的视野之中。本书作者Marcel Weiher在性能调优领域有着丰富的经验,在他的带领下,你将会了解如何...

¥99.00

Scala编程(第3版)

Martin Odersky;Lex Spoon;Bill Venners (作者) 高宇翔 (译者)

本书由直接参与Scala开发的一线人员编写,因而对原理的解读和应用的把握更加值得信赖。本书面向具有一定编程经验的开发者,目标是让读者能够全面了解和掌握Scala...

¥144.00

质量全面管控——从项目管理到容灾测试

葛长芝 (作者)

本书专门为有志于软件测试的工程师打开软件测试的大门,笔者结合案例讲解测试实践技术,主要内容有:项目管理、项目需求管理、代码质量控制、自动化部署、软件测试、安全测...

¥49.00