本书分为3个部分进行介绍。在第1部分筑基篇中,主要有自动化测试概述、Robot Framework两章的内容;在第2部分小乘篇中,主要有Web自动化测试、C/S自动化测试、数据库自动化测试、接口自动化测试、RF内置测试库、持续集成自动化测试、移动自动化测试总共七章的内容;在第3部分大乘篇中,主要有自定义你的RF一章的内容。全书的自动化测试主要指功能自动化测试。
本书适合阅读的人群很广,基本上想做自动化测试的人都可以阅读。本书希望用更多的实例来引导读者上手,刚开始学习的读者跟着做会比较好。本书涵盖了在自动化测试中遇到的大部分场景,不但内容充实、逻辑严密,且图文并茂、语言生动。对Robot Framework使用者来说,本书更是一部人人必备在案头的工具书。
1、涵盖自动化测试中的大部分场景,内容充实,逻辑严密;
2、作者是RF中文社区的核心力量之一,书中有其对自动化测试的很多思考;
3、本书是一本测试实践书,书中融入了大量的一线测试经验,是人人必备的案头工具书。
推荐序一
我们已经进入了移动互联网的时代,企业在市场、渠道、产品、服务各方面都面临着新的挑战,每个成功企业都在培养快速适应变化的能力,这就是我们时常说的企业敏捷性的重要组成因素。对于企业的IT部门来说,面对着愈发不确定的客户需求,快速并高质量地完成开发工作,使需求早日上线,从而能够尽早收集市场反馈,优化产品或服务,是必须着重解决的问题。在追求快速上线的同时,质量底线是我们必须坚守的红线,在此过程中,自动化回归测试技术是一种行之有效的保障手段。本书介绍的Robot Framework框架就是非常优秀的自动化回归测试框架,值得从事开发测试的同行仔细研究。
从2011年起,我以咨询顾问的身份进入平安科技,帮助其进行敏捷转型,在那时认识了本书作者。在一些试点项目中,我们要求开发团队在提升交付速度的同时保证质量,但原有的QTP工具不能满足要求。经过调研,我们选定了“Robot Framework + Selenium”的开源技术体系来替代QTP,完成界面自动化回归测试工作,并在实践中取得了非常良好的效果,得到了各方的肯定和赞誉。后来,我们用Robot Framework结合Requests来进行HTTP接口的自动化回归测试,进一步夯实了分层自动化测试体系,为平安科技日后的全面敏捷转型打下了坚实的基础。
在这一过程中,齐涛潜心钻研,经过不懈努力逐步承担起公司内部Robot Framework的支持和推广工作,自己也成为了这方面的专家。本书是他的开山之作,具备很高的实操性,相信读者可以从本书中学到诸多来自一线的实践经验。最后,祝大家阅读愉快!
Agilean咨询公司创始人、平安科技敏捷转型总顾问 吴穹
推荐序二
移动互联网发展到2015年,算是进入了一个白热化阶段,开发和测试的技术发展都已经突破了好几次瓶颈,但现在依然在追求更高的技术和产品质量。而软件测试人员算是在这个热潮中比较辛苦的,正巧软件测试在国内也处在快速发展和变化期,所以无论是测试技术,还是本书中提到的测试分层,都是对测试人员极大的挑战。
我认识道长(本书作者)也有好多年了,道长为人非常谦逊,做事情比较踏实,不像我那么高调,同时对技术也有很大的追求。我依旧秉持我做事的原则,就如同我要去测试一个产品,先要对这个产品的业务和技术架构有深入了解一样,我是通读了本书之后才开始写序的。我能体会到道长写这本书的不容易,就如作者在书的最后提到的,Robot Framework本身在国内受众不大,所以道长写这本书在我看来一方面是给用Robot Framework的同行一些自己的经验,另一方面真的就是自己对自己的一个总结。我在这里呼吁大家真要尊重写书的人(当然那种纯理论忽悠的不包括在内),因为一本书的背后都有不为人知的很多心酸,没有一些压力和自己的坚持是无法完成的。一本书的出版对于作者而言就如同十月怀胎,如同自己的孩子一样亲切。
我还是回过来说这本书吧。本书就如作者自身定义的,更像一本操作手册,虽然说的是Robot Framework这样一个工具,但其实涉及的面非常广。其中包括但不仅限于Web自动化测试、接口自动化测试,以及现在大家很关心的移动无线的自动化测试,书的最后一部分也提到了使用Robot Framework去做持续集成,以及如何结合移动最新的框架Appium来做自动化测试。移动互联网测试行业还是有蛮多人认识我的,也知道我的风格。首先这肯定不是一本“忽悠”的书,相反,这本书在每个章节都有大量的实践,以及需要每个读者去操作了才能够真正理解的内容。道长也非常贴心地在书中提供了知识点和案例,写明了官方的下载地址以及自己的Github地址,让大家能够更好地开展学习。不过我在这里依然需要提醒读者,移动互联网的技术和知识迭代都是非常快的,而且技术栈会比较深,所以大家在读相关书籍的时候要自己学会Google相关技术的官方文档,从而有一个全面的理解,千万不要指望在书中找到所有的答案,在移动互联网时代这是不现实的。
Robot Framework我觉得还是很有必要学习一下的,很多测试行业的同行其实会比较疑惑在项目中的自动化用例怎么大批量编写、管理等问题,我个人觉得Robot Framework就是一个不错的粘合剂。Robot Framework能够结合各种测试工具进行测试,同时也能够更方便和有条理地管理我们的测试用例。Robot Framework本身在国内的中文资料很少,本书对于初学者来讲会有非常大的帮助,同时也让用过Robot Framework的同行们能够对Robot Framework有一个更全面的了解。
在互联网行业做一名测试工程师很难,在移动互联网行业做一名测试工程师更难。移动互联网行业的测试工程师需要面临非常多的测试工具、框架和技术,不得不说在这其中,Robot Framework是个不错的工具,相信它能够帮助大家在项目中将测试技术更好地落地。
最后要再次感谢道长对于本书的付出,也预祝本书大卖,并且能够帮助到更多的人。
写于2015年
蚂蚁金服资深测试开发工程师、Testerhome测试技术社区创始人之一、《大话移动App测试》作者 陈晔(Monkey)
前 言
写这本书之前一定要先感谢一个人——吴穹博士,如果不是吴穹博士来平安科技做咨询顾问,向我们推荐了Robot Framework(下面简称RF)这个框架,我想或许我还在玩QTP呢,又或者用刘兴翚的PLSA(这也是一个很棒的工具)。吴穹博士是我的引路人,他也是很多目前在用RF做自动化测试的同行们的引路人,非常感谢吴穹博士。
我不是“科班”出身,也许大家都想不到,我大学学习的专业是市场营销,可惜专业课的知识都还给老师了,凭着对IT的喜爱,经历了种种磨难,成功“混入”了IT圈,还做了测试。测试其实是一个“高危职业”,要比产品经理(或SA需求分析)想得全面,要比开发懂需求,要有很强的发散思维,要能读懂代码,必要的时候还要会写个代码。说点做测试的同行不爱听但却是事实的话,很多人是因为觉得做测试比较简单才入的这行。说测试是一个“高危职业”,那是因为当生产上出了问题,90%的人(领导)都会问:“测试的时候为什么没有发现?”(这是好的语气,不好的语气就是:“你们是怎么测试的?这都没发现?”)也不知道我怎么当初就头脑发热地选择了做测试,也不知道为什么当初在华为做外包的时候,天天加班还觉得很充实。在这里我奉劝各位,测试有风险,入行需谨慎!
我在2008年进入平安科技时,是以外包的身份进来的,进来之前“摸”了一个星期的QTP,进来以后就专职负责做QTP自动化测试案例。当时的组里本身有一批QTP案例,都是录制出来的,那时候最痛苦的是由需求变更导致的修改案例,每次发版本要跑回归,有时候要持续到凌晨两三点,确保所有的自动化测试案例都没问题了,才能封版上线。后来逐步改善案例,逐步抛弃掉了录制回访,从描述式编程到后来用的Framework Manager框架,基本上可以说把QTP“玩”到极致了吧,其实到现在我偶尔还在用QTP,比如可以用来帮我批量打开十几个远程桌面什么的。
后来经过朋友介绍进入了平安科技,从外包转为了内部员工。那时候新进入的组里基本上没有什么自动化测试案例,大部分时间其实也是在手工测试。到了2011年9月左右,借着组内的一个项目,吴穹博士作为咨询顾问,推荐Robot Framework给我们。当我学习了这个工具后,被它深深吸引住了,对于我这样用惯了QTP的懒人来说,RF这种轻量又全面的工具,基本上完胜QTP。也是差不多从那个时候开始,我在博客上断断续续地写起了RF的相关博客,也相当于学习笔记吧。同时我也顺便学起了Python,有需要的时候就会看RF的底层源代码,到后来可以适当地改动一些代码来扩展RF库,写代码对我这样的“门外汉”来说还是比较困难的,改代码就是我比较擅长的了,最不济还可以“照猫画虎”。
平安科技的自动化测试工具最早的时候基本上只有QTP,后来增加了Robot Framework和刘兴翚自己开发的PLSA,变成了“三足鼎立”。然后QTP直接被废弃,变成“双雄争霸”了。其实我倒是觉得没什么争的,RF和PLSA各有自己的特点,RF降低了大家做自动化测试的门槛,人人都可以做自动化测试,我觉得这样挺好的。从另一个角度刺激了专职的测试人员要提升自身的竞争力。而PLSA还是需要有些Java开发经验的,当然它也可以零基础入门,但是我觉得用Eclipse写自动化脚本还是太重了。顺带提一句,刘兴翚后来做了RF的PLSA测试库,也就是在RF上也可以用PLSA,这算是共赢吧。
经历了这些年的自动化测试,其实最头疼的是领导的思维,被那些“大忽悠”给“忽悠”了。通常大佬们最容易被“忽悠”的有三点:第一点,自动化率。盲目地追求100%的自动化率,每年都把提高自动化率作为KPI之一;第二点,发现缺陷数。自动化测试案例能发现多少缺陷,自动化案例运行失败不一定是缺陷导致的,可能是执行的环境有问题、需求变更以及其他的一些情况。真正在失败案例中能发现缺陷的,可能都不会超过10%;第三点,节省人力。认为多做自动化测试案例能节省人力,怎么说呢,案例越多其实反而不节省人力,除非你的系统一年没多少需求变更。
遇到这样的领导你说怎么办?说服领导?换个公司?想办法轻松地完成任务?对我这样的懒人来说,我会先想办法轻松地完成任务,顺便提升一下技术实力。因为我一直坚信,懒人的存在促使科技进步,所以Robot Framework正好合适,初级入门可以完成任务,深入研究可以提升技术。
本书适合阅读的人群很广,基本上想做自动化测试的人都可以阅读。本书的自动化测试主要指功能自动化测试。适合初学者入门学习。对于最深入的进阶部分,我只会简单提一下,因为我觉得到了那个层次,大家已经可以自由发挥了,所以可能不太适合“老鸟们”了,当然入手收藏也是不错的。我不太擅长概念性的内容,所以涉及概念性的内容可能会比较少,或者很快带过。我希望用更多的实例来引导大家上手,刚开始学习的读者跟着做会比较好,书里面的案例我也会与大家分享。
本书第1章是一些自动化测试的概念性内容,并没有深入探讨;第2章是整个Robot Framework的基础,建议初学者多花点时间学习;从第3章到第9章分别介绍了不同类型的自动化测试、持续集成和移动自动化测试;最后第10章作为深入学习的部分,内容不是很多,主要是为了给大家一个入门的方向,具体还要看大家各自发挥。
特别鸣谢本书的审稿人陈晔和徐毅,感谢两位的辛苦付出,提出了不少修改意见。感谢百忙之中帮忙进行封面设计的陈争,也感谢出版社的各位编辑帮忙进行排版设计。
齐涛