【推荐者序】
序 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 日
51Testing软件测试网将在近期对本书部分章节进行连载,敬请关注
查看更多《51Testing软件测试网作品系列》:http://www.51testing.com/html/36/category-catid-136.html