零成本实现Web自动化测试:基于Selenium和Bromine
发布时间:2024-08-27
发布时间:2024-08-27
The Boost Library Guide
零成本实现Web 自动化测试
——基于Selenium 和
Bromine
北京·BEIJING Publishing House of Electronics Industry
温素剑编著
北京中新伟业印刷有限公司内容简介
本书从目前主流的Web自动化测试工具入手,由浅入深、全面、细致地阐述了如何使用开源测试工具来完成Web自动化测试,便于读者轻松掌握Web自动化测试的原理、方法和实际操作。所以,它不是一本深奥的测试理论书籍,而是一本测试实战类的书籍,作者试图在书中向读者演示如何使用Selenium、WebDriver、Bromine、SauceLabs、MantisBT搭建起一整套稳定、高效、成本为零的自动化测试平台。本书以测试Google GMAIL为具体范例,提供了完整的Web自动化测试解决方案。
本书是一本Web自动化测试的专业工具书,也是软件测试工程师的良师益友,可作为软件测试培训、高等院校软件相关专业的辅助教材,目标读者是初级或者资深软件测试工程师、对提高自动化测试的有效性感到困惑的测试经理,以及有志于从事软件测试工作的应届毕业生。
未经许可,不得以任何方式复制或抄袭本书之部分或全部内容。
版权所有,侵权必究。
图书在版编目(CIP)数据
零成本实现Web自动化测试:基于Selenium和Bromine/温素剑编著.—北京:电子工业出版社,2011.5
ISBN978-7-121-13205-6
Ⅰ.①零…Ⅱ.①温…Ⅲ.①软件工具-测试Ⅳ.①TP311.56
中国版本图书馆CIP数据核字(2011)第053062号
策划编辑:郭立袁金敏
责任编辑:郭立
特约编辑:顾慧芳
印刷:
装订:
出版发行:电子工业出版社
北京市海淀区万寿路173信箱邮编100036
开本:787×9801/16印张:24.5字数:450千字
印次:2011年5月第1次印刷
印数:4000册定价:59.00元(含光盘1张)
凡所购买电子工业出版社图书有缺损问题,请向购买书店调换。若书店售缺,请与本社发行部联系,联系及邮购电话:(010)88254888。
质量投诉请发邮件至zlts@http://www.77cn.com.cn,盗版侵权举报请发邮件至dbqq@http://www.77cn.com.cn。
服务热线:(010)88258888。
前言零成本实现Web 自动化测试——基于Selenium 和Bromine iii
前言
我有一个梦想,有一天我的办公桌上不再是一片狼藉,整洁的台面上只有一个大大的红色按钮,每天最重要的工作,就是上班后狠狠地按下红色按钮,然后悠闲地泡上一杯西湖龙井,拿起最新一期的参考消息,看看美联储是不是又在加印该死的“废纸”。在我享受生活的同时,一份份准确严谨的测试报告就会自动发往开发部门,并抄送到各位领导的邮箱中。测试报告包含最新软件版本的缺陷列表,并指出了可接受的缺陷修复时间。剩下的一切都是“傲慢自大”的软件开发人员的事,多么美妙的一天。
不过梦想永远都是梦想,就像马丁·路德·金遇刺身亡42年后的今天,美国仍然不是一个人人平等、没有种族歧视的国家一样。如果我的梦想有一天变为现实,那么我需要面对的可能不是悠闲的生活,而是一份解聘通知书。因为真到那一天,软件测试工作就变成人人都能完成的简单事情,公司完全可以随便请一个人来负责我的工作,而不必付出很高的薪水。这真是一个一点儿也不好笑的笑话,测试人员的终极目标居然是让自己失去饭碗,不过,幸好这一天还远着呢。
现在,让我们从梦想世界回到现实中来,现实是残酷的,笔者所在的测试部门,已经拥有成千上万个QTP 自动化测试案例,不过它们仅仅是自动化测试案例而已。梦想离笔者还远着呢,这些案例总是执行失败,失败原因千奇百怪,既有测试环境不稳定导致的失败,也有QTP 工具莫名其妙的错误。测试工程师投入了大量的精力去维护这些自动化测试案例,可惜效果并不好,自动化测试的有效率依然很低,很多软件系统的自动化测试有效率常年保持在60%左右,怎么办?如何向领导解释?
前言
零成本实现Web 自动化测试——基于Selenium 和Bromine iv 要提高自动化测试的有效性,笔者认为有两种办法:
第一,降低自动化测试对象的层次,即采用底层接口自动化测试。一个软件系统的上层界面可能会经常发生变化,但是底层功能模块之间接口和系统之间接口的变化却一定不会很多,除非遇到软件重构。这样做就能在很大程度上避免了用户界面频繁变化对自动化测试的影响,从而降低了维护的工作量。
第二,采取更可靠的基于GUI 的自动化测试工具。目前QTP 无疑是使用最广泛的自动化测试工具,但是实践中笔者发现它的录制/回放功能很不稳定,经常会发生测试对象无法识别的异常情况,甚至莫名其妙地运行失败。怎么办?放弃基于用户界面的自动化测试?显然不行,因为底层接口的自动化测试,有其自身的局限性,首先你无法通过它来测试用户界面,其次你很难用它来测试软件系统的完整业务流程。唯一可行的办法就是寻找一种更可靠、更有效的工具来代替它,在这里笔者推荐Selenium 和WebDriver 两种开源的自动化测试工具。从目前的实践来看,它们远比QTP 更稳定,测试案例的执行速度也更快,使用成本会更低。
写作背景
最近几年自动化测试已日益深入人心,如果现在有人去面试软件测试工程师岗位,而又完全不了解自动化测试,那么他几乎就不可能得到职位。因此,对测试工程师而言,了解自动化测试原理、掌握几种主流的自动化测试软件,已经变成自动化测试岗位最基本的要求。对有志于从事软件测试行业的大学应届毕业生而言,了解自动化测试就是一块不错的敲门砖。今年笔者所在的测试部门来了两位实习生,由笔者辅导他们完成一些自动化测试任务。实习结束后他们并没有与公司签约,后来与他们沟通才知道,别的公司肯出双倍的薪水聘用他们,看重的正是他们有自动化测试的工作经验。由此,读者朋友们就不难看出业界对自动化测试的重视程度。
“云计算”绝对是2010年最热的IT 词汇,甚至沾上一点“云”概念的股票都会一飞冲天。“云”听起来很虚幻,其实就是瘦客户端加网格计算。今后客户端不再会有大量的计算任务,计算和存储都被放在云上。在笔者看来,今后的客户端应该就是一个浏览器,用户所有的操作都是通过浏览器来实现的。Google 刚发布的操作系
前言零成本实现Web 自动化测试——基于Selenium 和Bromine v 统Chrome OS ,就是基于这一理念设计的。B/S 和C/S 架构的软件系统,应该会慢慢演变为Browser/Cloud 模式。如此看来在“云计算”时代,Web 自动化测试依然很重要,而且会越来越重要。因此,笔者萌生了写作一本关于Web 自动化测试的书籍。本书内容
本书不是一本讲述深奥测试理论的教科书,而是一本实战性的书籍。笔者想要达到的目标是——读者朋友们在认真读完这本书后,马上就能在生产实践中用上所学的内容。本书首先介绍基础的自动化测试理论,接着介绍Selenium 和WebDriver 两种测试工具,最重要的是自动化测试实战篇。实战篇中笔者以测试Google Gmail 为例,手把手地教读者如何用Selenium 、WebDriver 、Bromine 、SauceLabs 、MantisBT 搭建起一整套稳定、高效、成本为零的自动化测试平台。
本书分为三篇共14章。第1篇包括第1~9章,第1章介绍自动化测试理论,第2章到第8章介绍Selenium 自动化测试工具,第9章介绍WebDriver 自动化测试工具。第2篇是自动化测试实战篇,包括第10~13章,第10章以测试Google GMAIL 为范例介绍完整的Web 自动化测试解决方案,第11章介绍管理测试案例的工具——Bromine ,第12章介绍测试云SauceLabs ,第13章介绍基于Web 的缺陷管理系统——MantisBT 。第3篇是Selenium 使用帮助篇,是使用Selenium 经常需要用到的一些资料。目标读者
本书的目标读者是初级或者资深软件测试工程师,以及对提高自动化测试的有效性感到困惑的测试经理。本书着重介绍如何使用Selenium 和WebDriver 两种开源自动化测试工具,来构建你的Web 自动化测试体系。
感谢
首先要感谢我的家人,正是由于他们默默的支持,我才能静下心来写作。其次,还要感谢电子工业出版社计算机分社社长郭立和策划编辑袁金敏的热情支持和帮助,以及其他编辑认真细致的工作才能使书稿得以完善和出版。
前言
零成本实现Web 自动化测试——基于Selenium 和Bromine vi 由于笔者水平有限,书中的错误和不要之处在所难免,敬请读者批评指正。有关本书的反馈和咨询,可以发送邮件至wensujian815@http://www.77cn.com.cn 。
温素剑
2010年12月16日于北京
目录零成本实现Web 自动化测试——基于Selenium 和Bromine vii
目录
第1篇
Selenium 和WebDriver 工具篇第1章自动化测试基础 (2)
1.1初识自动化测试 (2)
1.1.1
自动化测试是什么..................................................................................21.1.2
常见的自动化测试架构..........................................................................51.1.3
自动化测试的基本流程..........................................................................81.1.4走出自动化测试认知的误区. (12)
1.2开源Web 自动化测试 (14)
1.2.1Web 自动化测试 (14)
1.2.2
是否选择开源自动化测试....................................................................151.2.3开源自动化测试的优势 (15)
第2章Selenium 简介和基础 (17)
2.1Selenium 简介 (17)
2.2Selenium 基础 (21)
2.3小结 (25)
第3章Selenium-IDE (26)
3.1简介 (26)
3.2IDE 操作界面 (29)
目录
零成本实现Web 自动化测试——基于Selenium 和Bromine viii 3.3测试案例和测试案例集 (32)
3.3.1
创建测试案例........................................................................................323.3.2
运行测试案例........................................................................................353.3.3
调试测试案例........................................................................................373.3.4测试案例集.. (39)
3.4IDE 功能扩展 (40)
3.5常见错误处理 (41)
第4章Selenium 命令 (45)
4.1验证页面元素 (45)
4.2定位页面元素 (48)
4.3文字范本匹配 (54)
4.4命令使用技巧 (58)
第5章Selenium-RC (63)
5.1简介 (63)
5.2Selenium-RC 基础 (64)
5.2.1
Selenium-RC 工作原理..........................................................................645.2.2
Selenium-RC 架构..................................................................................665.2.3
Selenium-RC 安装..................................................................................705.3Selenium-RC 使用. (74)
5.3.1
从Selenese 到测试程序........................................................................745.3.2
构建你的测试程序................................................................................795.3.3
学习Selenium-RC API..........................................................................865.3.4
报告测试结果........................................................................................885.3.5
为测试加入一些编程逻辑....................................................................915.3.6
Server 选项.............................................................................................945.3.7
处理HTTPS 和安全弹出对话框..........................................................995.3.8支持其他浏览器和浏览器配置..........................................................1005.4常见错误的处理.. (101)
目录零成本实现Web 自动化测试——基于Selenium 和Bromine ix
第6章Selenium 测试案例设计 (107)
6.1测试设计导言 (107)
6.2测试什么 (107)
6.3验证结果 (109)
6.3.1
断言vs 验证.........................................................................................1096.3.2
权衡:assertTextPresent 、assertElementPresent 、assertText............1106.4选择一个定位策略. (111)
6.4.1
定位动态对象.......................................................................................1116.4.2如何避免在测试中使用复杂的xpath 表达式....................................1146.5测试Ajax 应用系统.. (115)
6.6UI 映射 (115)
6.7数据驱动测试 (118)
6.8数据库验证 (119)
第7章Selenium 用户扩展 (121)
7.1简介 (121)
7.2Actions (121)
7.3Accessors/Assertions (122)
7.4定位策略 (123)
7.5在Selenium-IDE 中使用用户扩展 (124)
7.6在Selenium-RC 中使用用户扩展 (124)
第8章Selenium-Grid (126)
8.1Selenium-Grid 是如何工作的 (127)
8.1.1
传统的Selenium 架构.........................................................................1278.1.2
Selenium-Grid 架构..............................................................................1288.1.3指定测试执行环境 (130)
8.2如何使用Selenium-Grid 测试平台 (136)
第9章Selenium 2.0和WebDriver (142)
9.1WebDriver 基础 (142)
下一篇:第十章 一国两制与国家完全统一