作者:empty 页数:232 出版社:empty |
在刚做测试的一年多时间里,笔者对各种测试技术和工具有着强烈的兴趣和学习欲望,再加上工作较为空从2013年开始用Python和Selenium进行自动化测试的实践, 其间的过程颇为艰辛, 除了官方文档, 相关后来认识了乙醇和Mark Rabbit, 前者的自动化测试文档给了我很大帮助, 后者有丰富的PythonS eleni un自起初只是将Web Driver API(Python版) 对页面一些操作作为博客进行发表。后来积累了十儿篇博客, 为了与此同时作者和乙醇的合讲的Python与Selenium网络课程也在同步进行中, 《Selenium 2 Python自动化测为什么介绍这么多关于《Selenium 2 Python自动化测试实成》这本电子书的产生过程是因为(Selenium 2Java所以, 再经过了两个月的左右时间, (Selenium 2Java自动化测试实战》这本电书初步完成, 它是在《Selenium 2当然,由于时间仓促,没细心考究书中的一些例子是否优雅,只是为实现需求编写,从刚开始测试工作前最后是书巾错别字和错误语句的问题,这也是我比较头痛的问题,当一个版木确定之后就会有读者向我反闲, 所以有幸接触到QTP、Selenium等自动化测试工具, 由于当时水平有限, 学习也只停留在录制与回放的水平上。再次学习Selenium是时隔一年之后, 笔者有幸跳槽到一家互联网公司继续做web软件测试, 发现项目适合做自动化测试, 于是再次捡起Selenium。随着能力和眼界的开, 发现单纯的使用工具的录制与回放井不能解决实际的问题, Selenium本身支持多种语言编写脚本, 这给我提供了丰富的选择余地。在之前有计划要学习一门脚本语言, 在Python与Ruby之间犹豫不定。刚好项目组用Python开发项目, 所以很白然的选择了Python和Selenium的组合.的资料并不算太多, 尤其是巾文资料:相比较而言Java和Selenium网上的资料要更多一些, 这其中主要的原因是Java语言更为流行。动化测试项目经验,而且耐心的帮助后来者。在些对这两次前辈表示深深的敏意。方便阅读, 将其整理了成了一个文档供读者免费下载。再后来就是不断的扩充文档的内容, 文档命名为《SeleniumWeb Driver(python) 》(共间更新了三个版木》。2013年的下半年有了出书的念想, 当时以为写书并不算困难。于是,每天都活在兴奋之间,构思书的结构与内容。到2013年年底整理出了一个软为完整的自动化测试的知识体系, 内容不再局限于Sc le nium上, 加入了大量的Python技术的应用。所以重新命名为(Selenium 2 Python自动化测试实战》,我带着心虚在传播这份文档,因为有文档中有不少技术我并没真正“吃透”,自然讲解的不够透彻。
试实战》很自然的成为了我上课的教材。其间收到了大量读者的和学生的反馈,笔者不断对这份文档进行更新,直到2015年春节期间,我才对第二版整理完成自动化测试实战》是在此基码上整理完成的因为常常会被问到有没有Java版的Selenium教程, 在我看来如果你已经会使用Python+Selenium编写自动化脚本, 那么切换到Java+Selenium 2编写自动化脚本是非常轻松的,反之也一样。但对干不少人来讲, 可能他们所测试的项目就是用Java开发的, 他们由于这个原因己经接触了一些Java语言, 所以, 他们更想在此基础上学习使用Java+Selenium开展自动化测试, 而不是重新再学习一门其它语言(虽然, 在我看来Python的学习成本要比Java低) :另一方面更希望通过学习自动化测试的过程加强对Java语言的实践经验, 以便于后续进行更偏向于编程的接测试或单元测试Python自动化测试实战》的基础上, 替换掉了里面的Python代码改为Java代码, 但部分章节有所调整。后学习过一段时间Java语言, 后面山换工作和个人技术方面的转变没再接触Java语言, 时隔三年, 再次使用Java, 未免有些生疏。总之水平有限, 请读者提出更多的建议和意见馈这些错误,我会及时修正;但是在下次更新内容后又会引入新的错误。所以,请你包涵和理解。
图1.2分层自动化测试Code Review中文翻译为代码评审或代码审查, 是指在软件开发过程中, 通过对源代码进行系统性检查的过程。通常的目的是查找系统缺陷, 保证软件总体质量和提高开发者自身水平。与Code Review相关的插件与工具有很多, 例如Java语言中基于Eclipse的Review Clipse和Jupiter、主要针对Python语言的Review Board等。接自动化测试础。它主要强调对一个类方法或函数的调用,并对返回结果的验证,所用到的测试工具与单元测试相同.根据笔者的理解, Web应用的接测试大体分为两类:模块接测试和Web接测试。(1)模块接测试,主要测试模块之间的调用与返回。当然,我们也可以将其看作是单元测试的基(2) Veb接测试又可分为两类:服务器接测试和外部接测试。服务器接测试:指测试浏览器与服务器的接, 我们知道We h开发一般分前端和后端, 前端开发人员用HTML/CSS/JavaScript等技术, 后端开发人员用PHP/Java/C#/Python/Ruby等各种语言。用户的操作是在前端页面上,需要后端提供服务器接,把前端通过调用这些接来获得需要的数据, 通过HTTP协议来实现前后端的数据传递外部接测试:指调用的接由第三方系统提供。典型的例子就是第三方登录,例如新上线的产品为了免于新用户注册账号的麻烦会提供第三方登录,那么用户在登录的时候调用的就是第三方登录的接,用户登录信息的验证由第三方完成,并返回给当前系统是否验证通过。当然, 接测试也有相应的类库或工具, 例如测试HTTP的有HttpUnit、Post nan等,UI自动化测试UI层是用户使用该产品的入,所有功能都通过这一层提供并展示给用户,所以大多测试工作都集中在这一层进行。为了减轻这一层的测试人力和时间成本,早期的自动化测试工具主要针对该层设计。目前主流的测试工具有UFT、Watir、Robot Framework、Selenium等。除了UI层所展示的功能外, 前端代码同样需要进行测试, 在前端开发中最主要的莫过于JavaScript脚本语言, 而Q Unit就是针对JavaScript的一个强大的单元测试框架。
图1.4中的测试金字塔映射了不同测试阶段所投入的自动化测试的比例,UT层被放到了塔尖,这也说明U1层应该投入较少的自动化比例。如果系统只关注UI层的自动化测试井不是一种明智的做法,因为其很难从本质上保证产品的质量。如果妄图实现全面的U层的自动化测试,那么需要投入大量的人力和时间,然而,最终获得的收益可能远低于所投入的成本,因为对于一个系统来讲,越接近用户其越容易变化,为了不断适应这种变化就必然需要投入更多的成本。既然UI层的自动化测试这么劳民伤财,那么我们是不是只做单元测试与接测试就可以了呢?答案是否定的,因为不管什么样的产品,最终呈现给用户的是UI层的功能,所以产品才需要招聘大量的测试人员进行UI层的功能测试。也正是因为测试人员在UI层投入了大量的时间与精力,所以我们才有必要通过自动化的方式帮助测试人员解放部分重复的工作。所以,笔者更提倡“半自动化”的开展测试工作,把可以自动化测试的工作交给工具或脚本完成,这样测试人员就可以把更多的精力放在更重要的测试工作上,例如探索性测试等。至于在金字塔中每一层测试的投入比例则要根据实际的产品特征来划分。在《Google测试之道3一书中提到, Google对产品测试类型划分为:小测试, 中测试和大测试, 采用70%(小) /20%(中) /10%(大》的比例,大体对应测试金子塔中的Unit、Service和UI层,进行不断调整。如何控制失败,降低维护成本是对自动化测试工具及人员能力的挑战,反过来讲,一份永远都运行通过的自动化测试用例已经失去了它存在的价慎。在进行自动化测试中最担心的是变化,因为变化会直接导致测试用例的运行失败,所以需要对自动化脚本相信在你拿到这本书时已经对要进行自动化的项目做了一些分析和考量,但在这里我们还是有必要说明一下什么样的项目适合尝试进行自动化测试,以免读者在不太适合自动化测试的项目中痛苦挣扎,既浪费了大量的人力和时间,又收效甚微。(1)任务测试明确,不会频繁变动.
自动化测试基础.
1.1分层的自动化测试.
3.5 imprt和package.
3.6异常.
4.4运行Sc le nium脚本.
5.9多表单切换.
5.12警告框处理.
.5.14下载文.
5.15操作Ckie.
5.16调用Java Scrip.
5.18窗截图.
5.20验证码的处理.
6.2Sikuli-X.
.7.2模块化实例.
10.4查看测试结果.
11.2 Selenium Grid工作原理.
11.3 Selenium Grid应用.
114Web Driver驱动.
12.1认识Page bject.
12.2 Page bject实例.
13.2 Knife基本代码实现分析.
13.4关于Page bj eet模型的讨论.
14.1环境搭建.
什么样的项目适合自动化测试.
1.3自动化测试及工具简述.
1.4 Selenium工具介绍.
1.5前端工具介绍.
1.6开发语言的选择.
第2章测试环境搭建.
2.1Windw下环境搭建.
2.2编写第一个自动化脚本.
2.3安装浏览器驱动.
2.4不同编程语言下使用Web Driver.
第3章Java编程基础.
3.1输出与输入.
3.2分支与循环.
3.3数组与Hash Ma.
3.4类与对象.
第4章Maven基础.
4.1安装与配置.
4.2 IntelliJ IDEA创建Maven项目.
4.3包的管理与更新.
第5章Web Driver AP.
5.1从定位元素开始.
5.2控制浏览器.
5.3简单元素操作.
5.4鼠标事件.
5.5键盘事件.
5.6获得验证信息.
5.7设置元素等待.
5.8定位一组元素.
5.10多窗切换.
5.11下拉框处理.
5.13上传文件.
5.17处理HTML 5的视频播放.
5.19关闭窗.
5.21Web Driver原理.
第6章辅助测试工具.
6.1Aut lt.
第7章自动化测试模型.
7.1自动化测试模型介绍.
7.3数据驱动实.
第8章Selenium IDE.
8.1Selenium IDE安装.
8.2Selenium IDE界面介绍.
8.3创建测试用例.
8.4 Selenium IDE命令.
8.5断言与验证.
8.6等待与变量.
第9章J