温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
Python
编程
基础
HTTP
接口
测试
Python 编程基础 与 HTTP 接口测试 阿奎 编著 内 容 简 介 本书主要包含四大部分内容,第一部分概括介绍了 Python 语言流行的原因,以及测试人员如何学习接口测试与自动化测试;第二部分为 Python 编程基础;第三部分是 HTTP 协议;第四部分是 HTTP 接口测试实战。前三部分让读者可以从零开始,逐步掌握 Python 语言,具备基本的 Python编程基础。通过练习的方式了解 HTTP 协议中常用的概念和机制。最后,第四部分将两者相结合,使读者学会用 Python 进行 HTTP 接口测试,主要采用 Python 的单元测试方法进行 HTTP 接口测试工作。通过一步一步的练习,读者可掌握 Unittest 单元测试框架的使用,掌握测试数据的外部化(到文件和到 Excel 等),掌握 HTTP 接口的发现和探测。本书亦学亦练,学练结合,每个章节分为多个主题小节。小节的前半部分会对本小节的知识点主题进行详细的介绍,后半部分会启动一个练习,让读者边阅读边练习,在练习中检验学习的成果。本书适合所有对 Python 语言和测试感兴趣的程序员、编程者、测试人员,也适合高校计算机专业学生补充学习、扩充视野。未经许可,不得以任何方式复制或抄袭本书之部分或全部内容。版权所有,侵权必究。图书在版编目(CIP)数据 Python 编程基础与 HTTP 接口测试/阿奎编著北京:电子工业出版社,2018.1 ISBN 978-7-121-32995-1.P.阿.软件工具程序设计计算机网络通信协议.TP311.56TN915.04 中国版本图书馆 CIP 数据核字(2017)第 264345 号 策划编辑:张瑞喜 责任编辑:张瑞喜 印 刷:中国电影出版社印刷厂 装 订:中国电影出版社印刷厂 出版发行:电子工业出版社 北京市海淀区万寿路 173 信箱 邮编 100036 开 本:7101000 1/16 印张:14.5 字数:252 千字 版 次:2018 年 1 月第 1 版 印 次:2018 年 1 月第 1 次印刷 定 价:45.00 元 凡所购买电子工业出版社图书有缺损问题,请向购买书店调换。若书店售缺,请与本社发行部联系,联系及邮购电话:(010)88254888,88258888。质量投诉请发邮件至 ,盗版侵权举报请发邮件至 。本书咨询联系方式:。III 序 1 身处软件开发这个颇具颠覆性的行业,又恰逢智能技术的爆发期,很多认知都在被刷新着。和阿奎相识源于组织的敏捷转型合作,初几次见面印象是此人技术问得很细,聊了很多关于代码重构和自动化测试的观点,这可能也是敏捷圈子里最能够试探彼此是否为圈内人士的方法。那个时候关于“测试已死”的观点还是颇为流行的,当然意思是传统的人肉测试最终都会被自动化测试所取代,而开发人员通过测试驱动开发这样的技术实践自然就能生成自动化测试集,那专职测试还留着作甚?前两周圈子里的人工智能专家给我转来一篇论文,快速扫描后大意是一组科研人员正通过语义和图形分析的技术对算法类论文进行直接算法生成,也就是说给这程序一个算法描述,它就还你一个真正的算法实现。当然现实中给一个高保真网页图片,还你一个真实网站的在线服务已经存在了。稍加思索你会得出一个具有讽刺意味的推论:是不是“开发已死”?具备一定智能的程序已经可以自己产生相应的程序了。而测试却好像并没有死,反而这两年从探索性测试到针对新交互渠道的感知测试还越来越火了。看到这本书的时候,很高兴当年和阿奎讨论的一个观点现在仍然是对的,那就是“测试人员必须写代码”。不管是现代的分布式互联网应用,还是即将到来的物联网设备,其测试的难度都提升了很多,甚至可以说如果不采用自动化的程序是不可能进行有效测试的。想像一下把应用商城刷积分的人肉模式复制到未来一平米可能有上万个物联网设备接入的场景下,你可能需要一个 Alpha Go 来完成这样的“人肉”测试。有幸的是我认识了几位把测试人员写代码真正贯彻和执行下去的管理者,阿奎就是其中一位。Python作为编程语言自不用多讲,曾经在测试领域因为其灵活性大受欢迎,积累了不少有用的测试库,即使现在很多项目上我们还会日常使用。而大数据 IV 时代的来到更催生了这门语言的学习热潮,不少业务人员开始学习 Python 作为数据分析的编程语言。时下的大数据分析不同于之前既定规则的数据处理,更多是在大数据中去挖掘和探索,某种意义上我们又何尝不可以说是在进行“数据测试”呢?所以学习 Python 应该是符合时代背景高投入产出比的事情。从互联网到移动互联网,再到物联网,很多技术都会被改变,最有可能持续发光发热的“组件”可能就是我们的应用通信协议 HTTP 了。针对 HTTP 通信的接口测试也是最常见的,经常也是最繁琐的。学习如何进行有效的自动化是避免自己被机器人取代的必备技能。最后,很感谢阿奎把自己的学习心得和方法也融汇到了此书中。刻意练习是技术学习的不二窍门,如何坚持确是相当有难度的一件事情。和广大读者一样,阿奎并非身处一个纯粹的技术公司,日常有很多的管理会议和业务需求,所以他的学习经验分享更值得大家借鉴和试验。肖然 精益敏捷专家 ThoughtWorks 咨询与设计总监 V 序 2 转眼,阿奎工作已经 13 个年头了,先后做过程序员、软件工程师、团队经理,现在是一名系统分析师和内部敏捷教练,积极地参与组织中的敏捷实践和推广工作。在担任团队经理期间,阿奎先后带过 C/C+、Cobol 和 Java 为开发语言的开发团队,多年来一直保持对技术研发工作的热爱。最有意思的是,多年以前他还在一个以主机 Cobol 为开发语言的部门的时候,竟然会去参加以 Java 为语言栈的编程大赛。接触最多的是 2013 年调到新技术实验室的时候,那个时候互联网金融风头正盛,敏捷开发方法作为一种新的软件开发方法,正在被各个大型企业所认可和尝试。那是他接触敏捷的缘起,甚至可以说也是这本书的缘起。阿奎自 2013 年开始从事敏捷实践和推广工作,他将自己定位为一名技术性管理者,在从事团队管理的同时,一直保持着对各种新技术的关注,在工作中对于如何提升团队的工作效率也多有思考。众所周知,敏捷开发转变的核心在于人的转变,而在人的转变过程中,人员能力的提升和对新的开发模式的适应又是尤为重要的。随着敏捷、精益、DevOps 等新的软件开发理念的盛行,软件测试的从业人员也正在经历工作环境和工作要求的改变。这种改变需要软件测试从业者成为真正的 IT 人,具备计算机基础理论知识和网络知识,掌握一门编程语言,熟悉一个操作系统和一个数据库。环顾业内,很多软件测试从业者都正在经历从“点点点”工程师到自动化测试工程师的转变,这个转变是痛苦的,也是迷茫的。阿奎就是看到了这样一个需要,利用一年的业余时间,写了这本书,其中的每一个练习都是他精心设计的,并且都自己进行了实战和解答。这本书是他专门针对没有编程基础的软 VI 件测试工程师如何快速、高效地学会编程这一课题的一次实践和有益的尝试。书中提到的“闯关式学习”实际上就是“刻意练习”的学习思想,在编程语言学习上的实地应用,并且经过他的一些实验,取得了非常好的学习效果。特别祝贺阿奎,能够将自己长期工作、学习的收获和心得,通过一本书的形式进行一次总结,特别是这样一本帮助大家学习编程的书。薛勇 主任工程师 中国银行软件中心 VII 前言 每个人都应该花每个人都应该花 1 年时间学习编程年时间学习编程。史蒂夫乔布斯 我一直以来有一个观点,对于希望从事自动化测试工作或者希望掌握自动化测试技能的人士,掌握一门计算机语言是绕不过去的一个坎。就是这个坎,让很多从事手工测试的工程师对于自动化测试工作望而却步,也让很多人不由自主地退而求其次,转向去学习一些自动化测试的工具,来回避语言学习的困难。看到身边很多的测试工程师对待编程语言的学习畏之如虎,谈之无力,让我产生了“为希望转型成为自动化测试工程师的软件测试从业者提供一本靠谱的编程语言学习指导书为希望转型成为自动化测试工程师的软件测试从业者提供一本靠谱的编程语言学习指导书”的想法。这也是促成这本书初稿形成的原始动力。随着信息技术的发展,计算机办公技能成为一名现代白领工作者的必备技能,我们日常工作中有很多的时间都是在与计算机进行交互。通过对计算机语言的学习,可以为你打开一扇与计算机进行深层次互动交流的大门。同时,在编程语言的学习中,你会学到一种新的思考方式并找到另一种看待问题、解决问题的视角。本书的内容包含两部分:Python编程基础和基于Python的HTTP接口测试。在 Python 编程基础部分,主要关注 Python 语言的基础知识的学习和掌握,这一部分对于每一名希望快速掌握一门计算机语言的学习者都是适用的。基于 Python 的 HTTP 接口测试部分,重点面向希望转型为自动化测试工程师的软件测试从业者,以 HTTP 接口测试为应用场景,来学习和掌握 Python 的相关知识点和使用技巧。本书以闯关式学习方法闯关式学习方法为指导进行编写,让读者通过一个一个小的关卡的 VIII 刻意练习,在不知不觉中掌握“Python 编程基础”和“HTTP 接口测试”的相关技能,完成从手工测试工程师到自动化测试工程师的转变。所谓闯关式学习方法,通俗地讲,就是通过不断的刻意练习,打通一个一个的练习关卡来进行自我提升和学习的方法。闯关式学习方法,通俗地讲,就是通过不断的刻意练习,打通一个一个的练习关卡来进行自我提升和学习的方法。闯关式学习方法首先要求有一名有经验的指导者,针对学习目标刻意设计的一个又一个的练习关卡,即挑战问题,读者通过一定的前期知识的学习和练习后,在给定的时间内对第一个关卡的问题发起挑战,即闯关。如果给定的时间内不能有效地完成挑战问题,就需要反复的刻意练习,直至轻松完成挑战问题为止,即闯关成功。此时,才可以进入下一个练习关卡。详细的关于如何使用本书进行闯关式学习的内容,请读者阅读本书的“如何阅读和使用本书”部分。我一直认为,学习软件开发、测试技能,和学习骑自行车、游泳一样,是一项技能的修炼,而非仅仅是知识或者概念的了解和掌握。要习得一项技能需要刻意地练习。编程作为一门技艺,是可以习得的,习得是有方法的!这本书为愿意学习的读者提供了习得编程技艺的方法,就是“闯关式学习”。但是,“没有任何有效的学习和精进的过程是惬意的和不需要付出努力的。”所以,这是一本针对这是一本针对 Python 编程基础和编程基础和 HTTP 接口测试技能,进行刻意练习的学习指南,这不是一本可以靠在沙发上阅读的消遣书。接口测试技能,进行刻意练习的学习指南,这不是一本可以靠在沙发上阅读的消遣书。“学习之路挖坑容易挖井难”,祝大家利用这本精心打造的“闯关之书”,挖出属于自己的“学习之路挖坑容易挖井难”,祝大家利用这本精心打造的“闯关之书”,挖出属于自己的“Python 之井”。之井”。阿奎(于洪奎)阿奎(于洪奎)IX 如何阅读和使用本书 相信很多读者都有过自学软件测试或者其他技能的经历,期间坚持与放弃的挣扎,学习方向的迷茫,学习资料的收集,学习内容的选择甘苦自知。作家格拉德威尔在 异类 一书中指出:“人们眼中的天才之所以卓越非凡,并非天资超人一等,而是付出了持续不断的努力。1 万小时的锤炼锤炼是任何人从平凡变成超凡的必要条件。”他将此称为“一万小时定律”。要成为某个领域的专家,需要 10000 小时,按比例计算就是:如果每天工作八个小时,一周工作五天,那么成为一个领域的专家至少需要五年。我并不是想用这段引用来告诉大家,成为自动化测试工程师需要五年的时间,而是希望大家看到其中“锤炼”一词的深意成就超凡技艺的过程,实际上是一个“锤炼”的过程,也就是“刻意练习”的过程。既然叫做刻意练习,有别于随意的练习。随意的练习并不能带来有效的学习和精进,并且会浪费时间,打击练习者的信心。没有任何有效的学习和精进的过程是惬意的,不需要付出努力的,要做到刻意练习有如下四个要点:有目的的练习。刻意练习一定是针对某一个既定的目的进行练习,即每一个练习都是有具体目标的。