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