Selenium是一个主要用于Web应用程序自动化测试的工具集合,在行业内已经得到广泛的应用。然而其作用不局限于测试领域,还可以用于屏幕抓取与浏览器行为模拟等操作。它支持主流的浏览器,包括Firefox、IE、Chrome、Safari以及Opera等。
今天我推荐的这本书是一本基于Python语言的Selenium自动化测试书,它就是:
扫码试读
尽管国内测试行业宣扬自动化测试已经很多年了,但是我们很难在自动化测试领域招聘到经验丰富的工程师,这说明自动化测试并没有成为国内测试领域的主流。
是因为测试人员不够努力导致的吗?我并不这么认为。
很多公司对于测试的投入是希望知道产品有多少缺陷、能否按时上线,所以相应的测试人员的工作都聚焦于如何高效地编写和执行测试用例,而自动化测试并不是第一选择。因为在上线压力巨大的情况下,如果不能评估出自动化测试的投入产出比,很难让项目经理在自动化测试上进行投入。所以倘若有实践自动化测试的想法,往往需要测试人员付出自己的时间来熟悉框架、编写和维护自动化测试。而如果不是事先对测试框架有了比较深入的认识,依靠自身自发进行自动化测试,并不会带来效率的明显提升。这样不仅会让项目经理失去信心,恐怕测试人员自己也心存疑虑了。
如果单从技术上考虑,究竟是什么阻碍着测试人员广泛使用自动化测试呢?
-
首先,如果没有一个通用的测试框架,那么每做一个项目,测试人员就得学习一套新的工具/框架,这样的学习成本太高了。在工期很紧的情况下更是如此。
-
其次,自动化测试的编写实际上是进行编码,如果使用Java和C#这些编程语言编写自动化测试,由于测试人员很难全面掌握这些语言的开发技巧,容易导致编写出的自动化测试代码比产品代码出现更多的缺陷。
本书直击这两方面,为测试人员解除了后顾之忧。
(1)Selenium WebDriver作为业界通用的测试框架,不仅是Web测试的标准,在移动测试领域也是底层的核心驱动框架。所以掌握了Selenium WebDriver,可以让我们在为Web产品和移动产品编写自动化测试时游刃有余。
(2)Python作为动态语言,简化了严格的编程语法,使测试人员更容易掌握。同时Python也提供了丰富的API和扩展,测试人员可以很便利地调用或者集成其他语言编写的程序和类库,提高编写自动化测试的效率。
本书在讲述自动化测试编写的同时,结合业界主流的自动化测试开发模式,向读者介绍了多种测试相关知识(如BDD和持续集成)。非常推荐对测试有激情,希望快速提升自动化测试能力的朋友阅读本书。
Selenium包括一系列的工具组件。
-
Selenium IDE:是嵌入到Firefox浏览器的插件,用于在Firefox上录制与回放Selenium 脚本。图形化的界面可以形象地记录下用户在浏览器中的操作,非常方便使用者了解与学习。目前它只能在Firefox下使用,好在它能将录制好的脚本转换成各种Selenium WebDriver支持的程序语言,进而扩展到更广泛的浏览器类型。
-
Selenium WebDriver:其实质上就是可以支持多种编程语言,并且有用于操作浏览器的一套API。支持多类型浏览器、跨操作系统平台(包括Linux、Windows以及Mac OS X),是真正意义上的跨浏览器测试工具。WebDriver为诸如Java、C#、Python、Ruby、PHP、JavaScript等语言分别提供了完备的、用于实现Web自动化测试的第三方库。
-
Selenium Standalone Server:包括被大家广泛了解的Selenium Grid、远程控制、分布式部署等,均可实现Selenium 脚本的高效执行与拓展。我们利用Grid使得自动化测试可以并行运行,甚至是在跨平台、异构的环境中运行,包括目前主流的移动端环境,如Android、iOS。
正如书名所述,这是一本介绍如何用Python语言调用Selenium WebDriver接口,进而实现对Web应用自动化测试的指导书。本书描述了从Selenium安装配置到基本使用,再到创建、调试、运行自动化脚本等进阶的操作。当然在开始之前,你可能需要先具备一定的Python语言基础。
内容介绍
第1章基于Python的Selenium WebDriver入门 从安装Python、Selenium WebDriver开始,到我们如何选择适合的Python编辑器,以及我们小试牛刀的第一个自动化测试脚本,并且成功地将这一脚本运行在不同浏览器上。
第2章使用unittest编写单元测试 本章带领我们结合unittest实现单元测试。通过转换后的脚本,有助于我们更好地完善单元测试用例。借助unittest实现测试用例集的整体运行,并将HTML格式的测试结果及时推送给项目的相关人员。
第3章元素定位 本章告诉你如何通过浏览器自带的开发者模式去定位页面中各类型元素。Selenium通过获取这些元素的定位,进而实现模拟浏览器操作与参数捕获。这一章你将学会各种定位元素的方法,包括XPath和CSS以及对应的示例。
第4章Selenium Python API介绍 学习如何通过WebDriver与包括页面元素、JavaScript 提示框、框架(frames)、窗口在内的各类对象进行交互,以及怎样进行浏览器回放、元素传值、鼠标点击、下拉菜单选择、多窗口切换等具体操作。
第5章元素等待机制 介绍多种设置等待方法,用于提高Selenium自动化测试脚本的稳定运行。带你理解显式等待或隐式等待的方法是如何应用于我们的测试脚本。
第6章跨浏览器测试 我们将深入学习如何在远程机器或Selenium Grid上通过Remote
WebDriver实现测试脚本跨各类型浏览器的测试。Selenium Grid可使得我们在多浏览器与多操作系统的排列组合中兼容测试,甚至支持像PhantomJS这样的无UI界面的浏览器。本章的最后,我们还将了解Sauce Labs 和BrowserStack等第三方外部测试服务(云测试)。
第7章移动端测试 我们使用Selenium WebDriver、Appium实现在包括iOS端、Android端以及Android模拟器在内的移动设备上的自动化测试。另外,本章还有App测试的具体示例。
第8章Page Object与数据驱动测试 介绍这两种重要的设计模式,引导我们搭建更持续、更高效的测试框架。其中,Page Object设计模式可帮助我们实现对界面细节的封装,并将一组用户行为构建在单个类中,提升自动化测试脚本的易读性和可复用性,从而达到更适应UI的频繁变化的目的。另外,我们还将学习用unittest实现数据驱动测试。
第9章Selenium WebDriver的高级特性 包括复杂的鼠标与键盘操作、cookies操作、窗口截屏,甚至录制整个测试过程。
第10章第三方工具与框架集成 通过Selenium与持续集成工具的搭配,我们可以轻松地搭建自动化验收测试框架。本章中展示了“通过Selenium创建自动化验收测试用例,然后细化基于UI的自动化测试脚本,最后配置持续集成工具Jenkins,最终实现了对被测程序每日构建、每日自动化验收测试的联动效果”的典型案例。
通过对本书的学习,你将能够用Python语言通过调用Selenium WebDriver接口,搭建属于你自己的Web应用自动化测试框架。
阅读前的准备工作
在阅读本书之前,你需要掌握Python语言基本语法以及Web前端的相关知识(如HTML、JavaScript、CSS和XML)。如果你能编写一些简单的包括循环、条件判断、定义类等语法的Python脚本,你就能轻松地理解本书中的示例代码。每行示例代码我们都花了很大精力去注释说明,就是希望你能达到最佳的学习效果。还有一些前期准备的软件、工具以及环境配置都在第1章有明确的说明,你需要在你的机器上准备好访问终端、Python解释器以及浏览器。
适合哪些人阅读
如果你从事QA或软件测试、软件开发、Web应用开发等相关工作,希望用Python语言调用Selenium WebDriver,以实现对Web应用的自动化测试,那么这本书一定是你较好的选择!在学习Selenium理论之前,我们建议你掌握Python语言的基本语法。通过整本书的通篇学习,你将全面地理解Selenium WebDriver的相关知识,并且能有效地帮助你实现自动化测试。
约定
本书中,你可能会发现不同类型的信息,呈现出的文本风格不尽相同。我们在这里将罗列不同类型的文本风格以及对应的含义,方便你阅读。
代码文本的样式如下。
当我们想格外强调代码中的一部分时,相应的代码字体会被加粗,示例如下。
新的措辞与关键语句会被显示为粗体。关键语句就是指出现在系统界面、菜单项或对话框等位置的关键操作,例如,“在Tools下拉菜单中选择Internet Options”。
本文摘自:《Selenium自动化测试——基于 Python 语言》一书
扫码试读
Selenium自动化测试——基于 Python 语言 [预售]
作者: 【印度】冈迪察.U(Unmesh Gundecha )
【预计上市时间:1月10日】
Selenium是一个主要用于Web应用程序自动化测试的工具集合,在行业内已经得到广泛的应用。本书介绍了如何用Python语言调用Selenium WebDriver接口进行自动化测试。主要内容为:基于Python 的 Selenium WebDriver 入门知识、第一个Selenium Python脚本、使用unittest 编写单元测试、生成HTML格式的测试报告、元素定位、Selenium Python API 介绍、元素等待机制、跨浏览器测试、移动端测试、编写一个iOS测试脚本、编写一个Android测试脚本、Page Object与数据驱动测试、Selenium WebDriver的高级特性、第三方工具与框架集成等核心技术。
本书适合任何软件测试人员阅读,也适合作为大专院校师生的学习用书和培训学校的教材。
学习Python 扫码试读更多Python图书