发表于2024-12-28
Python编程基础与HTTP接口测试 pdf epub mobi txt 电子书 下载
本书是资深互联网高级工程师阿奎结合自己多年的经验写就的一本指导初学者学习Python编程和自动化测试中的HTTP接口测试的书。通过闯关游戏式的独特学习模式,通过在线读者圈增值服务,指导读者掌握高效学习计算机编程和应用。
本书主要包含三部分内容,第一部分为Python编程基础,第二部分是HTTP协议,第三部分是HTTP接口测试实战。让读者可以从零开始,逐步掌握Python语言,具备基本的Python编程基础。通过练习的方式了解HTTP协议中常用的概念和机制。最后,将两者相结合,学会用Python进行HTTP接口测试,主要采用Python的单元测试方法进行HTTP接口测试工作,通过一步一步的练习,读者会掌握unittest单元测试框架的使用,掌握测试数据的外部化(到文件和到Excel等),掌握HTTP接口的发现和探测。 本书亦学亦练,学练结合,每个章节分为多个小节,每个小节的前半部分会对本小节的知识点主题进行详细的介绍,后半部分会启动一个练习,让读者边阅读边练习,在练习中检验学习的成果。
作者自2004年4月-至今 一直在中国银行软件中心从事银行系统软件开发工作,历任程序员,软件工程师,团队经理,系统分析师。2013-2016年度,主要从事互联网技术在银行业的应用开发工作,参与系统分析和架构设计,负责敏捷开发工艺的推广和团队管理工作。在软件开发、技术团队管理和培训方面有丰富的经验和独到的心得。
2.3 Restful接口
REST是一种互联网软件架构原则,即Representational State Transfer的缩写,由Roy Thomas Fielding在其2000年的一篇论文(Architectural Styles and the Design of Network-based Software Architectures)中提出。
The Representational State Transfer (REST) style is an abstraction of the architectural elements within a distributed hypermedia system. REST ignores the details of component implementation and protocol syntax in order to focus on the roles of components, the constraints upon their interaction with other components, and their interpretation of significant data elements. It encompasses the fundamental constraints upon components, connectors, and data that define the basis of the Web architecture, and thus the essence of its behavior as a network-based application.
表征状态转移(REST)风格是分布式超媒体系统中的架构元素的抽象。REST忽略了组件实现和协议语法的细节,以便聚焦于组件的角色,组件间交互的约束以及对重要数据元素的解释。组件、连接器和数据是定义Web架构的基础,REST涵盖了对这三要素的基本限制,从而,也涵盖了三要素作为基于网络的应用程序的行为本质。
以上内容引用、翻译自论文“5.2 REST Architectural Elements”小节,地址为:https://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm。
通俗地讲,REST风格的架构就是一种将要操作的业务数据作为资源,分配一个固定的URL地址,然后,通过HTTP的四个请求方式:POST、DELETE、PUT、GET,分别对应业务数据的增、删、改、查四种操作。
比如,我们有一个客户信息,给定一个URL为http://www.example.com/ customer,那么,可以通过对这个URL分别发送四个请求方式对应四个针对某一条业务数据的操作:
● POST请求 /customer 创建一个新的客户。
● DELETE请求 /customer/111 删除id为111的客户。
● PUT请求 /customer/111 更新id为111的客户的信息。
● GET请求 /customer/111 查询id为111的客户的信息。
虽然从原理上来说,REST架构风格是无关乎通信协议的,但是在实际使用过程中,绝大部分REST架构组件之间的通信接口,也就是所谓的Restful接口,都是采用的HTTP作为其通信接口协议的。所以,一个Restful接口的请求,实际上很多情况下与一个普通的HTTP请求并无本质的区别。
通过对Ajax和Restful的简单了解,我们可以看到,随着互联网的发展,前后台部件之间以及网络应用组件之间的新的结构风格和通信机制层出不穷,而HTTP协议在这些新的架构风格和通信机制中扮演了非常重要的基础通信协议的角色。
对于一名测试人员来说,掌握接口测试,掌握HTTP协议,进而掌握HTTP协议下的接口测试已经变得日益重要起来。
序一
身处软件开发这个颇具颠覆性的行业,又恰逢智能技术的爆发期,很多认知都在被刷新着。和阿奎相识源于组织的敏捷转型合作,初几次见面印象是此人技术问得很细,聊了很多关于代码重构和自动化测试的观点,这可能也是敏捷圈子里最能够试探彼此是否为圈内人士的方法。那个时候关于“测试已死”的观点还是颇为流行的,当然意思是传统的人肉测试最终都会被自动化测试所取代,而开发人员通过测试驱动开发这样的技术实践自然就能生成自动化测试集,那专职测试还留着作甚?
前两周圈子里的人工智能专家给我转来一篇论文,快速扫描后大意是一组科研人员正通过语义和图形分析的技术对算法类论文进行直接算法生成,也就是说给这程序一个算法描述,它就还你一个真正的算法实现。当然现实中给一个高保真网页图片,还你一个真实网站的在线服务已经存在了。稍加思索你会得出一个具有讽刺意味的推论:是不是“开发已死”?具备一定智能的程序已经可以自己产生相应的程序了。而测试却好像并没有死,反而这两年从探索性测试到针对新交互渠道的感知测试还越来越火了。
看到这本书的时候,很高兴当年和阿奎讨论的一个观点现在仍然是对的,那就是“测试人员必须写代码”。不管是现代的分布式互联网应用,还是即将到来的物联网设备,其测试的难度都提升了很多,甚至可以说如果不采用自动化的程序是不可能进行有效测试的。想像一下把应用商城刷积分的人肉模式复制到未来一平米可能有上万个物联网设备接入的场景下,你可能需要一个Alpha Go来完成这样的“人肉”测试。有幸的是我认识了几位把测试人员写代码真正贯彻和执行下去的管理者,阿奎就是其中一位。
Python作为编程语言自不用多讲,曾经在测试领域因为其灵活性大受欢迎,积累了不少有用的测试库,即使现在很多项目上我们还会日常使用。而大数据时代的来到更催生了这门语言的学习热潮,不少业务人员开始学习Python作为数据分析的编程语言。时下的大数据分析不同于之前既定规则的数据处理,更多是在大数据中去挖掘和探索,某种意义上我们又何尝不可以说是在进行“数据测试”呢?所以学习Python应该是符合时代背景高投入产出比的事情。
从互联网到移动互联网,再到物联网,很多技术都会被改变,最有可能持续发光发热的“组件”可能就是我们的应用通信协议HTTP了。针对HTTP通信的接口测试也是最常见的,经常也是最繁琐的。学习如何进行有效的自动化是避免自己被机器人取代的必备技能。
最后,很感谢阿奎把自己的学习心得和方法也融汇到了此书中。刻意练习是技术学习的不二窍门,如何坚持确是相当有难度的一件事情。和广大读者一样,阿奎并非身处一个纯粹的技术公司,日常有很多的管理会议和业务需求,所以他的学习经验分享更值得大家借鉴和试验。
肖然
精益敏捷专家
ThoughtWorks咨询与设计总监
序二
转眼,阿奎工作已经13个年头了,先后做过程序员、软件工程师、团队经理,现在是一名系统分析师和内部敏捷教练,积极地参与组织中的敏捷实践和推广工作。
在担任团队经理期间,阿奎先后带过C/C++、Cobol和Java为开发语言的开发团队,多年来一直保持对技术研发工作的热爱。最有意思的是,多年以前他还在一个以主机COBOL为开发语言的部门的时候,竟然会去参加以Java为语言栈的编程大赛。
接触最多的是2013年调到新技术实验室的时候,那个时候互联网金融风头正盛,敏捷开发方法作为一种新的软件开发方法,正在被各个大型企业所认可和尝试。那是他接触敏捷的缘起,甚至可以说也是这本书的缘起。
阿奎自2013年开始从事敏捷实践和推广工作,他将自己定位为一名技术性管理者,在从事团队管理的同时,一直保持着对各种新技术的关注,在工作中对于如何提升团队的工作效率也多有思考。众所周知,敏捷开发转变的核心在于人的转变,而在人的转变过程中,人员能力的提升和对新的开发模式的适应又是尤为重要的。
随着敏捷、精益、DevOps等新的软件开发理念的盛行,软件测试的从业人员也正在经历工作环境和工作要求的改变。这种改变需要软件测试从业者成为真正的IT人,具备计算机基础理论知识和网络知识,掌握一门编程语言,熟悉一个操作系统和一个数据库。
环顾业内,很多软件测试从业者都正在经历从“点点点”工程师到自动化测试工程师的转变,这个转变是痛苦的,也是迷茫的。阿奎就是看到了这样一个需要,利用去年下半年和今天一年的业余时间,写了这本书,其中的每一个练习都是他精心设计的,并且都自己进行了实战和解答。这本书是他专门针对没有编程基础的软件测试工程师如何快速、高效地学会编程这一课题的一次实践和有益的尝试。
书中提到的“闯关式学习”实际上就是“刻意练习”的学习思想,在编程语言学习上的实地应用,并且经过他的一些实验,取得了非常好的学习效果。
特别祝贺阿奎,能够将自己长期工作、学习的收获和所得,通过一本书的形式进行一次总结,特别是这样一本帮助大家学习编程的书。
薛勇
主任工程师
中国银行软件中心
前 言
每个人都应该花1年时间学习编程。
——乔布斯
我一直以来有一个观点,对于希望从事自动化测试工作或者希望掌握自动化测试技能的人士,掌握一门计算机语言是绕不过去的一个坎。就是这个坎,让很多从事手工测试的工程师对于自动化测试工作望而却步,这让很多人不由自主地退而求其次,转向去学习一些自动化测试的工具,来回避语言学习的困难。
看到身边很多的测试工程师对待编程语言的学习畏之如虎,谈之无力,让我产生了“为希望转型成为自动化测试工程师的软件测试从业者提供一本靠谱的编程语言学习指导书”的想法。这也是促成这本书初稿形成的原始动力。
随着信息技术的发展,计算机办公技能成为一名现代白领工作者的必备技能,我们日常工作中有很多的时间都是在与计算机进行交互。通过对计算机语言的学习,可以为你打开一扇与计算机进行深层次互动交流的大门。同时,在编程语言的学习中,你会学到一种新的思考方式并找到另一种看待问题、解决问题的视角。
本书的内容包含两部分:Python编程基础和基于Python的HTTP接口测试。
在Python编程基础部分,主要关注Python语言的基础知识的学习和掌握,这一部分对于每一名希望快速掌握一门计算机语言的学习者都是适用的。
基于Python的HTTP接口测试部分,重点面向希望转型为自动化测试工程师的软件测试从业者,以HTTP接口测试为应用场景,来学习和掌握Python的相关知识点和使用技巧。
本书以闯关式学习方法为指导进行编写,让读者通过一个一个小的关卡的刻意练习,在不知不觉中掌握“Python编程基础”和“HTTP接口测试”的相关技能,完成从手工测试工程师到自动化测试工程师的转变。
所谓闯关式学习方法,通俗地讲,就是通过不断的刻意练习,打通一个一个的练习关卡来进行自我提升和学习的方法。闯关式学习方法首先要求有一名有经验的指导者,针对学习目标刻意设计的一个又一个的练习关卡,即挑战问题,读者通过一定的前期知识的学习和练习后,在给定的时间内对第一个关卡的问题发起挑战,即闯关。如果给定的时间内不能有效地完成挑战问题,就需要反复的刻意练习,直至轻松完成挑战问题为止,即闯关成功。此时,进入下一个练习关卡。
我一直认为,学习软件开发、测试技能,和学习骑自行车、游泳一样,是一项技能的修炼,而非仅仅是知识或者概念的掌握,而要习得一项技能需要“刻意地练习”。
作家格拉德威尔在《异类》一书中指出:“人们眼中的天才之所以卓越非凡,并非天资超人一等,而是付出了持续不断的努力。1万小时的锤炼是任何人从平凡变成超凡的必要条件。”他将此称为“一万小时定律”。要成为某个领域的专家,需要10000小时,按比例计算就是:如果每天工作八个 Python编程基础与HTTP接口测试 电子书 下载 mobi epub pdf txt
刚拿到书,看目录内容不错
评分好像内容过于简单,不是我想要的。
评分这本书写的不错,思路清晰
评分非常不错 非常好的书籍啊
评分当大家看到我的评论时,说明我对产品是相当认可的,但是为什么我对产品只字不提呢?因为这个东西真好很好没有我需要吐槽的地方,如果它不好的话,这个评论肯定会出现在差评那一栏而不是这里,另一个原因应该就是因为我很懒,只能粘贴复制……
评分刚拿到书,看目录内容不错
评分这本书写的不错,思路清晰
评分非常垃圾,建议不要购买
评分这本书写的不错,思路清晰
Python编程基础与HTTP接口测试 pdf epub mobi txt 电子书 下载