新書推薦:
《
家书中的百年史
》
售價:HK$
79.4
《
偏爱月亮
》
售價:HK$
45.8
《
生物安全与环境
》
售價:HK$
56.4
《
泥土:文明的侵蚀(城市与生态文明丛书)
》
售價:HK$
84.0
《
医用化学(第三版)
》
售價:HK$
57.3
《
别怕,试一试
》
售價:HK$
67.9
《
人才基因(凝聚30年人才培育经验与智慧)
》
售價:HK$
103.4
《
深度学习详解
》
售價:HK$
114.8
|
編輯推薦: |
作者本着在实践中学习,在学习中实践的思维模式,设计了每一个章节的例子,从实战中学,用Python实现UI自动化测试,用Python实现接口自动化测试,值得一读。
|
內容簡介: |
本书结合大量实际应用的案例,重点讲解了自动化测试在企业级的应用技术和实战。本书帮助读者系统地学习UI自动化测试和接口自动化测试的技能。
本书分为两大部分:第1部分UI自动化测试,包括第1~8章,以新的视角介绍了Selenium的知识体系,结合具体的案例讲解了Selenium的API在UI自动化测试的不同场景下的应用,典型问题的解决思路,主要内容包括Selenium的API、单元测试框架unittest、Jenkins、数据驱动、页面对象设计模式和UI自动化测试实战。第2部分接口自动化测试,包括第9~13章,介绍了HTTP应用层的协议,序列化与反序列化的知识,以及主流的测试工具PostMan、JMeter和Requests库在接口自动化测试中的应用和案例。
相信本书能够帮助想学习自动化测试的读者,以及准备带领团队进行自动化测试转型的测试管理者学习和掌握自动化测试实战技能。
|
關於作者: |
作者:无涯
国内某物联网公司测试总监。
资深测试工程师,从事软件测试工作8年。Python自动化测试公众号(wuya-python),专注测试技术分享,粉丝过万。
|
目錄:
|
目录
第1部分UI自动化测试
第1章自动化测试概述2
1.1自动化测试的价值2
1.2自动化测试的应用3
第2章Selenium元素定位实战5
2.1Selenium简述5
2.2Selenium结合浏览器实战5
2.3元素定位实战6
第3章Selenium与页面的交互24
3.1WebDriver浏览器的属性24
3.2WebElement类的方法29
3.3下拉框实战35
3.4弹出框实战39
3.5WebDriverWait类实战44
3.6ActionChains类实战50
3.7键盘事件实战54
3.8JavaScript的处理55
3.9获取截图60
第4章单元测试框架unittest62
4.1unittest简述62
4.2测试固件63
4.3测试执行67
4.4构建测试套件70
4.5分离测试固件76
4.6测试断言78
4.7断言的注意事项82
4.8批量执行测试用例84
4.9生成测试报告87
4.10代码覆盖率统计实战89
第5章Jenkins实战92
5.1Jenkins简述及部署92
5.2Jenkins实战92
第6章数据驱动105
6.1ddt实战105
6.2Txt实战108
6.3Csv实战111
6.4Excel实战114
6.5Xml实战119
6.6MySQL实战123
第7章Page Objects实战131
7.1Page Objects的实现131
7.2Page Objects中引入wait140
7.3Page Objects引入工厂设计模式142
第8章UI自动化测试实战149
8.1Web产品的实战149
第2部分接口自动化测试
第9章HTTP协议162
9.1HTTP简述162
9.2HTTP的状态码163
9.3Cookie的请求流程175
9.4Session的请求流程178
9.5Token的请求流程180
第10章序列化与反序列化183
10.1JSON库的应用183
10.2JSON库的实例实战185
第11章PostMan的应用190
11.1PostMan简述190
11.2PostMan实战191
11.3PostMan接口测试实战219
第12章JMeter接口测试应用226
12.1JMeter简述226
12.2JMeter的语言切换226
12.3JMeter的插件安装226
12.4WebServices的请求227
12.5HTTP的请求229
12.6JMeter断言实战232
12.7HTTP请求默认值234
12.8用户定义的变量235
12.9Token的获取实战237
12.10HTTP Cookie管理器实战240
12.11生成测试报告实战244
12.12自动发送邮件实战248
12.13引入CI252
12.14JMeter接口测试实战256
第13章Requests实战263
13.1Requests简述263
13.2Requests发送请求264
13.3URL参数实战266
13.4请求头的添加267
13.5data参数实战268
13.6JSON参数实战270
13.7Token实战272
13.8Session实战276
13.9Session会话对象281
13.10Requests鉴权实战286
13.11超时处理287
13.12文件下载289
13.13文件上传293
13.14Requests接口测试实战296
主要参考文献314
|
內容試閱:
|
序1
技术赋能未来,推进个人成长
从人类第一次工业革命开始,技术就成为推进革新的原始驱动力之一,蒸汽机的出现促使了手工业到机器工业的转变,这是一场以机器替代人工的革命。在信息技术发展飞速的今天,技术更是变成了提高工程生产率的加速剂。测试是一个技术性的行业,投资自己的技术,赋能自己的未来。
当今行业内推崇测试的技术和技术的测试,其中,测试的技术就是各种可以提高测试可靠性、可持续性、可重复性和可复现性的技术手段,这其中包含了IT行业都在做的自动化测试、持续集成、持续交付、DevOps;而技术的测试是指在上述过程中通过技术手段完成具体工作内容的技术方法或者落地技术手段,既可以是测试辅助工具,也可以是为了测试而撰写的测试脚本。但是无论是哪一种,都是为了能够将测试工程师的时间释放出来,让机器完成重复可循环的工作内容,将时间还给测试工程师去完成创造性的工作内容。在任何一个团队,降低成本、提高效率都是一个永恒的话题,在测试行业里,自动化测试技术无疑是一个提高效率很好的工具。通过自动化将模式化、重复化的人类劳动变成机器的逻辑复现,释放人工,提高生产率。
近些年来,自动化测试、测试脚本的编写、测试框架的使用或者打造几乎变成公司招聘测试工程师的标配职位要求。但是,在实际操作过程中,测试工程师大量时间又被人工的重复工作内容所占据。这就变成了一对矛盾体。矛盾是由两个方面决定的,矛盾的一个方面如果不存在,另外一个就自然而然也不存在了。测试工作者通过学习和实践,将工作中繁重的手工劳动变成自动化的机器循环,就从根本上解决了上述矛盾,提升了效率,提升了自我。
随着自动化测试技术逐渐变成测试工程师的基础性要求,越来越多的IT技术从业者都开始着手学习自动化的测试技术,无论是UI的自动化,还是API的自动化,所有人都希望通过自动化的方式来完成枯燥乏味的、无限循环的手工测试劳动,这时需要先选择一门语言。尽管Java语言在研发领域占领主要地位,但是对于测试来说,并不一定要选择Java。这是因为Java入门门槛较高,入门和掌握这门语言需要花费更多的时间。
现在中小学教育已经加入了Python的课程,这也预示了Python的学习门槛会比较低,入门简单、容易掌握。那么通过Python入手开始学习编程技术,对于绝大部分行业新人来说是一个明智的开始。
技术赋能未来,推进个人成长。任何时候开始学习都为时不晚。如果您对任何一门编程语言都不是很熟悉,那么选择Python会让您更快速地走上自动化测试的道路。对于测试工程师,选择Python会大大缩短您从第一行代码到自动化脚本的学习时间。
本书由浅入深地介绍基于Python的自动化测试,从基础框架讲解、基础API使用,到框架设计、模式引入、持续集成等。通过本书的学习,您既可以掌握基于Python语言的自动化测试的技术解决方案,以及相关的工程化解决思路,同时还可以快速搭建出属于您自己的测试平台。
作者本着在实践中学习,在学习中实践的思维模式,设计了每一个章节的例子,并提供了案例的相关源代码,这对于初学者的学习是非常有帮助的。
对于不想被技术创新的时代车轮丢下的测试工程师和测试管理者,这本书值得一读。
陈磊(测者)
京东商城测试架构师
2018年11月于北京
序2
我已经连续两年组织了QA Intelligence发布《软件测试行业现状报告》的中文翻译工作,在2018年的报告中,有两段话让我印象深刻:
越来越多的人从公司的IT和非IT部门转行测试,这表明测试似乎已经成为一个令人感兴趣的职业发展方向。
测试人员做的不仅仅是测试应用程序,76%的人还会进行自动化测试和脚本编写。
相信这与大部分业内人士对当前软件测试行业的看法是一致的:
越来越多的人进入软件测试行业,越来越多的公司开展自动化测试。
同时,我们也看到软件测试行业面临如下问题:
? 越来越多的人进入软件测试行业,但是,软件测试人员的IT技能却普遍不高;
? 越来越多的公司开展自动化测试,但是,自动化测试的成效却难以显现。
一个很有意思的现象是,几乎每一个测试人员在应聘的时候都会被要求具备自动化测试的相关技能,笔试或者面试的时候也会被问及自动化测试的相关问题,但是,入职后,却发现日常的工作依然是点点点,说好的自动化测试在巨大的交付压力和频繁的业务变化面前,常常因难以实施,不见成效,而无人提及。
有一些公司就更有意思了,组织大家写了很多自动化测试用例,最后,由于维护成本高昂,默默地丢弃了;还有的公司,写了一堆自动化测试案例,每月甚至每几个月才运行一次,每次都要几日甚至数周的时间才能磕磕绊绊地运行完毕,并且需要由专门的开发测试人员照看着这些资产,稍有应用修改就需要大量调整案例和脚本,投入与产出严重不成比例。
以上,我称之为软件测试中之怪现象。
究其原因,在于从业者的技能不高,在于管理者的推进方法不当。
说到自动化测试,对于测试人员来说,接触最多的就是功能自动化测试和接口自动化测试了。从近几年与不少测试从业者的交流中可以看出,这的确也是当前很多测试人员提升自身技能的一个不错的切入点。
本书作者无涯从事软件测试工作多年,在功能和接口自动化测试方面多有心得,并且乐于分享,笔耕不辍,其公众号Python自动化测试帮助了很多软件测试学习者,很多学习者反馈其公众号中的文章对自身技能提升助益良多。
与无涯的相识,还是源于一年前张瑞喜老师的引荐。日后多有交流,日渐熟稔。受邀为其新书作序,有幸得其新作书稿先睹为快。作者的文字平实,重干货,少浮华摘录,内容更偏重在功能和接口自动化测试的实战讲解。全书从Selenium到unittest,从PostMan到JMeter,中间还穿插持续集成和数据驱动等相关话题,内容翔实,图文并茂,相信本书能够帮助多年一直在做测试并想转型做自动化测试的读者,以及准备带领团队进行自动化测试转型的测试管理者学习和掌握自动化测试实战技能。
相信此书对于希望提升自身自动化技能水平的软件测试学习者一定会大有裨益。
阿 奎
《Python编程基础与HTTP接口测试》作者
2018年11月7日
前 言
学海无涯苦作舟是我特别喜欢的一句话,所以我的网名叫无涯。因为自认为没有出众的天赋和才华,所以需要不断地鞭策自己。学习是一个痛苦的过程,某些时候感觉就像西西弗斯一样日复一日地干着同样一件事,明知很累但是还要不断地重复。
写书是一件很偶然的事。开始在百度阅读平台写文章,后来在公众号上不断地更新文章,把自己这几年学到的知识记录下来并分享给网友。出这本书,并不是说自己有多么专业,恰恰相反,我始终感觉像在无边的大海中一样,自己掌握的知识可以忽略不计。但我还是希望这些点点滴滴的记录能够帮助业界的同仁,帮助读者更深入地理解功能自动化测试和接口自动化测试的知识体系,掌握自动化测试的实战技能。
一直以来,很多测试人员想学习自动化测试技术但是又感到比较迷茫。一方面许多公司要求测试人员掌握自动化测试的技术;另外一方面,一些人虽然已经具备自动化测试技术,但是却感觉自动化测试在实际工作中的应用和推广比较艰难,很难取得测试效率的提升并得到管理层的认可。
工作中一路走来,我深知自动化测试技术对测试人员的重要性,以及在产品测试中的重要性。公司对产品的迭代速度越来越快,而且要求以更快的速度、更高的质量把产品推向市场,给客户带来价值。在这个层面上,测试是不能马虎的,产品上线后,一旦出现产品质量上的问题,则不仅没有给用户带来应有的价值,还会影响产品的口碑。
技术应该为人服务,同理,测试技术应该为测试人员服务。所以我们应该应用开源的测试工具和主流的开发语言,结合相关的测试技术来提高测试效率,从而提高工程效率,这是测试价值的一个很重要的体现方面。目前,测试的核心是手工测试,但自动化测试是测试人员的未来。技术是无法取代人的,但技术可以代替大量的人工。自动化测试技术可以很好地协助我们做回归测试,以及应用接口自动化测试的技术来提高产品质量测试的效率。测试人员应该更加关注应用层程序的交互和产品之间的业务流程的调用,而不是花费大量的精力在浅显的功能测试中。另外一个方面,当测试技术的维护成本高于我们自己能力的控制范围时,则测试人员和技术管理者需要思考针对测试技术的策略是否存在问题。自动化测试技术是一种能力,同时也是提高工程效率很重要的一部分。
我一直认同零缺陷的思想,它倡导我们做有价值的事。要体现出自动化测试技术的价值,就要使之确确实实地帮助团队提高产品测试效率,解决测试团队中人力投入过大的问题,让测试团队把更多的心思来放在测试设计和测试策略上来。
本书面向的读者
本书特别适合如下读者:
(1) 想转自动化测试的测试工作者;
(2) 已有一定Python基础知识想学习自动化测试者;
(3) 已有一定自动化测试的基础知识并想系统地了解自动化测试的读者;
(4) 想系统了解接口自动化测试在企业级的实战案例的读者;
(5) 测试团队管理者。
如何阅读本书
首先很感谢您阅读我写的第一本书。在本书中,系统完整地介绍了Python语言在功能自动化测试和接口自动化测试中的应用。本书要求读者具备一定的Python语言基础和测试方面的基本知识背景。书中对很多代码都增加了注释,方便理解。在功能自动化测试部分中,详细地介绍了Selenium的API在Web自动化测试中各个场景下的应用,也增加了一些产品的实战来说明Selenium的框架在Web自动化测试中的实战应用。在接口自动化测试部分,主要知识点包含了HTTP协议,主流测试工具PostMan和JMeter在接口自动化测试中的实例应用和实战案例,最后书中还介绍了Python语言结合第三方的库(Requests)在接口自动化测试中的应用,以及接口测试框架的设计、接口测试在企业级的实战。
建议读者跟着书中的案例一步一步地进行练习,举一反三地把学习到的知识应用到具体的测试实践中,并在不断的总
|
|