selenium实战宝典 pdf2自动化测试实战怎么样

重定向科技
简体中文帮助
python selenium自动化测试班python selenium自动化测试班
虫师高级测试工程师;
《selenium2 自动化测试实战--基于Python语言》一书作者。
博客:/fnng/python selenium自动化测试班第十一期火热报名中,名额有限2016年6月份左右开课,暑期充电,给自己一个蜕变的支点。课程咨询及报名请联系QQ:在线登记地址:本期内容有更新,一份价格,双份收获!恭喜虫师,新书出版,购买地址:理念低回报,帮助更多人* 上课时间:基础部分周日半天或一天,实战每周一次课,一次课1个多小时。为期3个月。* 上课内容:selenium webdriver的python版本的入门提高及实战* 上课方式: yy授课,重视互动与练习* 学习目标:使学员完成课程后马上具备实操能力。* 学习费用:2000元,需要开具发票的为2200元&技术交流+selenium 进阶群:(已满),selenium进阶2群: (已满)&selenium进阶3群:独家原创教材&保证教学质量。零基础都能学会。一期实在学不会,下期免费继续学,学会为止。超多的实战练习,让你在烧脑和欲罢不能中完成蜕变。第一部分教材大纲预览课程重点:(虫师授课)自动化测试环境搭建webdriver 元素定位方法webdriver API (常见元素定位技巧)自动化测试模型模块化参数化(txt文件,函数,字典,CSV文件, xml文件)自动化测试用例设计原则与技巧python 异常与断言selenium IDE 介绍unitest测试框架介绍整合HTMLTestRunner测试报告测试报告发邮件功能多线程执行用例webdriver 方法的封装selenium grid2 (多平台执行用例)介绍一下目前的xx自动化测试结构第二部分实战课程(乙醇授课)1,如何使用原生selenium实现wordpress登陆功能;2,开发wordpress创建post功能;3,数据驱动及behave框架介绍4,使用behave重构登录及创建post用例+作业讲解;5,page object设计模式及代码重构;6,重构及完成自动化测试框架;7,框架的ci集成;IBM Bluemix
点击按钮,开始云上的开发!
developerWorks 社区
对于 Web 应用,软件测试人员在日常的测试工作中,需要大量的手动操作来验证某些功能。开发人员在开发过程中,需要访问其应用并且验证其功能是否正常运行,反复调试重复验证。系统维护人员也需要经常访问其应用,以确保系统的正常运行。如上所述的这些操作需要花费大量的时间和人力,如能引入自动化测试代替人工重复操作,将极大地提高团队的生产效率。在本文中,我们将介绍如何使用 Selenium 2.0 即 Selenium WebDriver 来构件自动化测试。
, 软件工程师, IBM
陈磊,IBM 软件工程师,毕业于北京邮电大学,现在 IBM 中国软件开发中心从事企业电子商务应用的开发,对 Web 开发、持续集成和 Automation 方面有浓厚兴趣。您可以通过 developerWorks 社区与进行交流。
, 软件工程师, IBM
周可,IBM 软件工程师,毕业于西北工业大学,现就职于 IBM 中国软件开发中心从事 Notes、DB2 的开发工作。
Web 应用程序的自动化测试如今,大多数的应用软件被写为基于 Web 的应用程序并通过浏览器展示给用户并与之进行交互。不同公司和机构组织都需要测试这些应用程序的有效性。在一个高度交互性和响应的软件流程时代,许多组织倾向于运用敏捷开发理论,自动化测试也就成了必备一项。所谓自动化测试,就是执行自动测试工具或者用某种程序设计语言编写程序,控制被测软件中的各种模块,模拟手动测试步骤,完成测试。测试自动化有很多优点,比如:频繁的回归测试、快速反馈给开发人员、几乎无限的重复测试用例的执行、支持敏捷和极端发展的方法、自定义的缺陷报告、不会错过人工手动测试可能遗漏的缺陷等。目前也有很多商业和开源的软件,可以辅助进行测试自动化的开发。Selenium 应该是应用最为广泛的开源解决方案。Selenium 概述Selenium 是一个用于 Web 应用程序测试的工具,Selenium 测试直接自动运行在浏览器中,就像真正的用户在手工操作一样。支持的浏览器包括 IE、Chrome 和 Firefox 等。这个工具的主要功能包括:测试与浏览器的兼容性 - 测试您的应用程序看是否能够很好地工作在不同浏览器和操作系统之上;测试系统功能 - 创建回归测试检验软件功能和用户需求;支持自动录制动作,和自动生成 .NET、Perl、Python、Ruby 和 Java 等不同语言的测试脚本。Selenium 是 ThoughtWorks 专门为 Web 应用程序编写的一个验收测试工具。Selenium 2.0 与以往版本的区别Selenium 2.0(又名 Selenium WebDriver)的主要新功能是集成了 WebDriver。WebDriver 曾经是 Selenium 1(又名 Selenium RC)的竞争对手。Selenium RC 在浏览器中运行 JavaScript 应用,而 WebDriver 通过原生浏览器支持或者浏览器扩展直接控制浏览器。 从 Selenium 项目简史中可以了解到,Selenium 和 WebDriver 的开发人员都认为两个工具各有优势,二者合并将创造更强大的 Web 测试框架。 Selenium 1 是一款流行和完善的测试框架,支持众多浏览器(因其 JavaScript 实现),允许用户通过许多编程语言(从 Java/C# 到 PHP、Erlang...),而 WebDriver 则弥补了 Selenium 1 的缺点,跳出了 JavaScript 的沙箱,提供快速、轻量级的浏览器模拟器。之所以合并,原因如下:
WebDriver 解决了 Selenium 存在的缺点(比如,绕过 JS 沙箱);
Selenium 解决了 WebDriver 存在的问题(例如支持广泛的浏览器);
Selenium 的主要贡献者们都觉得合并项目是为用户提供最优秀框架的最佳途径。 Selenium 2.0 还包括 Selenium Server,通过 Selenium Grid 支持分布式测试。新的 Selenium Grid 支持使用原来的 Selenium RC API 和 WebDriver API 测试。Selenium IDE 1.1.0 也将支持 WebDriver API,包括将录制生成的测试用例导出为 WebDriver 所支持的各种编程语言(Ruby、Python、C# 和 Java)。
WebDriver 针对各个浏览器而开发,取代了 Selenium RC 中嵌入到被测 Web 应用中的 JavaScript,与浏览器的紧密集成可以支持创建更高级的测试,且避免了 JavaScript 安全模型导致的限制。除了来自浏览器厂商的支持,WebDriver 还利用操作系统级的调用模拟用户输入。WebDriver 支持 Firefox (FirefoxDriver)、IE (InternetExplorerDriver)、Opera (OperaDriver) 和 Chrome (ChromeDriver)。它还支持 Android (AndroidDriver) 和 iPhone (IPhoneDriver) 的移动应用测试。此外,还包括一个基于 HtmlUnit 的无界面实现,即 HtmlUnitDriver。WebDriver API 可以通过 Python、Ruby、Java 和 C# 访问,支持开发人员使用他们偏爱的编程语言来创建测试。Selenium 的安装配置Selenium IDE 的安装Selenium IDE 是一个 Firefox 插件,是用来开发测试用例的集成开发工具,其简单易用,能够高效的开发测试用例,并可转换成相应的语言脚本。首先,使用 FireFox,访问 Selenium HQ
Selenium WebDriver 常用操作Selenium WebDriver 能够模拟日常的浏览器操作,其中最常用的操作如下:
与页面交互
提交页面内容
检查页面元素是否在页面上
在窗口和 Frame 之间移动
弹出对话框
页面导航下面本文将通过一个比较完整的示例分别介绍如上所示常用操作的具体应用。代码片段如下:清单 1. WebDriver 常用操作 1.public void setUp() throws Exception {
//driver = new HtmlUnitDriver();
driver = new FirefoxDriver();
baseUrl = "/";
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
9.public void testDemo() throws Exception {
driver.get(baseUrl + "/");
driver.findElement(By.id("kw")).clear();
driver.findElement(By.id("kw")).sendKeys("百度翻译");
driver.findElement(By.id("su")).click();
element = driver.findElement(By.id( "op_tran_text" ));
//element = driver.findElement(By.xpath( "//textarea[@id= ’ op_tran_text ’ ]" ));
element.clear();
element.sendKeys("自动化测试");
WebElement select = driver.findElement(By.xpath( "//select" ));
List&WebElement& allOptions = select.findElements(By.tagName( "option" ));
for (WebElement option : allOptions) {
System.out.println(String.format( "Value is: %s" , \
option.getAttribute("value")));
if(option.getText().equals("zh2en"))
option.click();
driver.findElement(By.xpath("//a[@class='op_tran_btn OP_LOG_BTN']")).click();
31.driver.switchTo().window( "百度在线翻译" );
32.}清单第 2-3 行定义了所使用的 webdriver 类型,本部分以 HtmlFirefoxDriver 为例:WebDriver driver = new HtmlFirefoxDriver();对于其他类型的 driver,其操作是一样的,不同 driver 的区别在于模拟何种类型的浏览器。页面导航如清单第 10 行所示: driver.get(baseUrl + "/");完全装载页面后将控制返回给测试脚本。注意:当页面又很多 Ajax 调用时,该接口无法确认页面是否完全装载,这是需要使用"waits"。与页面交互如清单第 11-12、15-19 行所示。例如: &input type= "text" name= "passwd" id= "passwd-id" /&
element = driver.findElement(By.id( "passwd-id" ));
element = driver.findElement(By.name( "passwd" ));
element = driver.findElement(By.xpath( "//input[@id= ’ passwd-id ’ ]" ));
//XPATH 返回第一个匹配到的元素,如果没有匹配到,抛出 NoSuchElementException
element.sendKeys( "some text" );
element.sendKeys( " and some" , Keys.ARROW_DOWN); // 按向下箭头 ; 任何页面元素都可以调用 sendKeys,
//例如可以测试一些快捷方式键,键盘的每次输入都是附加在文本串的后面;
element.clear(); // 清除文本域内容填写表单如清单 21-27 行所示。
处理 SELECT 标签
WebElement select = driver.findElement(By.xpath( "//select" ));
List&WebElement& allOptions = select.findElements(By.tagName("option" ));
for(WebElement option : allOptions) {
System.out.println(String.format( "Value is: %s" , option.getValue()));
option.setSelected();
使用 Select 类处理 SELECT 标签
Select select = new Select(driver.findElement(By.xpath( "//select" )));
select.deselectAll();
select.selectByVisibleText("Edam");提交如清单第 13、29 行所示。 driver.findElement(By.id( "submit" )).click();
element.submit();// 要求 element 必须在表单中,否则抛出 NoSuchElementException检查元素是否在页面上检查元素是否在页面上是最常用的操作之一,具体用法如下: WebElement plain = driver.findElement(By.name( "q" ));
RenderedWebElement element = (RenderedWebElement)// 例如 HtmlUnit Driver 就无法显示出内容对元素拖拉:RenderedWebElement element = (RenderedWebElement) driver.findElement(\
By.name( "source" ));
RenderedWebElement target = (RenderedWebElement) driver.findElement(\
By.name( "target" ));
element.dragAndDropOn(target);在窗口和 frame 之间移动如清单第 31 行所示
在命名的窗口之间移动
driver.switchTo().window( "windowName" ); // 可以通过 js 或者打开窗口的链接获取窗口名称
通过窗口句柄切换
for (String handle : driver.getWindowHandles()) {
driver.switchTo().window(handle);
frame 之间切换或者切换到 iframe
driver.switchTo().frame( "frameName" );
通过索引访问 subframe:
driver.switchTo().frame( "frameName.0.child" );//frameName 的第一个 subframe
//的明价 child 的 frame弹出对话框窗口弹出后,可以使用如下语句访问到弹出窗口: Alert alert = driver.switchTo().alert();获取到 alert 窗口后,可进行各种操作。页面导航navigate().to() 和 get() 功能完全一样。 driver.navigate().to( "" );浏览器的前进和后退 : driver.navigate().forward();
driver.navigate().back();注意这两个方法取决于浏览器的实现,可以会出现某些调用失败。结合 Selenium IDE,用实例展示自动化测试的构建本部分将结合实际案例来展示自动化测试的构建。Selenium IDE 使用和脚本转换打开 FireFox 浏览器,如上图 3 所示,打开 Selenium IDE 窗口:图 5. Selenium IDE 窗口下面开始录制第一个基于浏览器的自动化脚本:
点击 File 菜单,弹出下拉列表,选择 New Test Case,此时左中部 Test Case 窗口会增加一个 Untitle 2 的测试案例,右键点击'Property',在弹出窗口中重命名为”TestDemo”
点击 IDE 的右上部录制按钮(小红点)开始手动录制,在 FireFox 中打开新的 tab 页,输入测试网址 ,在检索框中输入要查询的内容“Selenium”,点击“百度一下”按钮;
在结果页,第一条结果就是 Selenium 的官方网站,点击链接进入;
待进入 Selenium 官方网站之后,切换到 Selenium IDE 窗口,点击录制按钮(小红点),结束本次手动录制;此时 Selenium IDE 窗口如下图 6 所示;
点击 File 菜单,选择“Save Test Case”,填写文件名称“TestDemo”,手动录制的脚本会存为本地 HTML 格式文件,此文件可以在其他 Selenium IDE 中导入使用;有了以上录制的脚本,可以在 Selenium 中回放,选择 TestDemo 脚本,点击中上部的“Play current test case”按钮(第二个绿色三角按钮),此时,浏览器会按照录制的顺序自动操作执行。由此可见,Selenium IDE 在 Web 应用测试中,可以代替人的大量手工操作。图 6. 脚本录制红色方框所圈定的部分即为 Selenium 的操作记录,此处也可以手动添加、删除、更改命令。有了手动录制的脚本,可以转换成多种语言的程序脚本:
在 selenium IDE 中,选中一个 Test Case,点击 File 菜单,下拉列表中选择“Export Test Case As”-“Java / Junit 4 / WebDriver”;
在弹出的保存窗口中,输入类名称 TestDemo,保存;TestDemo.java 文件生成。对于生成的 java 自动化测试脚本,有些可能不能成功执行,需要手动稍微调整。编写第一个 Selenium 自动化测试脚本打开上述所配置的 Eclipse 开发环境,新建一个 Java 工程,将上述转换而成的 TestDemo.java 文件导入到该工程中,去除冗余的“Organize Import(Ctrl + Shift + O) ”。如图 7 所示:图 7. 集成开发环境中的代码代码第 21 行可见,自动导出的代码默认采用 FireFox 浏览器。执行此代码,Selenium 会自动触发开启 FireFox 浏览器,打开一个新的页面,进入百度首页,在检索框中自动输入“Selenium”关键字,自动点击“百度一下”按钮,进入搜索结果页面,定位到第一条检索结果,然后点击进入 Selenium 官网,自动关闭浏览器,此时 Eclipse 开发环境,JUnit 结果页面显示出来,如图 8 所示:图 8. 自动化运行结果不同版本的 WebDriver 实现跨浏览器测试实现跨浏览器测试,关键在于中选择哪种 WebDriver。对于 IE 和 Chrome 浏览器在此以 IE 浏览器为例,更新图 7 所示代码第 21 行为 driver = new InternetExplorerDriver();运行更新后的自动化脚本,selenium 自动启动 IE 浏览器进行自动化测试。如图 9 所示:图 9. IE 浏览器自动化测试对于模拟浏览器Selenium 中提供了 Java 实现的虚拟浏览器,选用此驱动,程序会模拟浏览器的行为进行测试,测试过程中并无实际浏览器被调用。更新 driver = new HtmlUnitDriver(); 运行该脚本,所有浏览器行为在后台模拟运行。结束语综上所述,本文由浅入深,由 Selenium WebDriver 的基本概念着手,详细阐述其与以往版本的不同之处,并结合实际案例,展示了 Selenium 实现 Web 应用自动化测试的过程。用户按照本文介绍的步骤和方法,即可构件出第一个自动化测试案例。随着学习的深入,相信基于 Selenium WebDriver 的自动化测试应用到实际项目中,一定能够极大提高工作效率。
参考资料 :Selenium 的权威站点,提供项目介绍、官方文档、在线资源下载和支持等。
:详细介绍了 Selenium 1 对于 Ajax 页面的相关操作。
:介绍了 Selenium 1 的自动化测试构件过程。
:通过专门关于 Web 技术的文章和教程,扩展您在网站开发方面的技能。:这是有关 Ajax 编程模型信息的一站式中心,包括很多文档、教程、论坛、blog、wiki 和新闻。任何 Ajax 的新信息都能在这里找到。,这是有关 Web 2.0 相关信息的一站式中心,包括大量 Web 2.0 技术文章、教程、下载和相关技术资源。您还可以通过
栏目,迅速了解 Web 2.0 的相关概念。查看 ,了解更多和 HTML5 相关的知识和动向。加入 。查看开发人员推动的博客、论坛、组和维基,并与其他 developerWorks 用户交流。
developerWorks: 登录
标有星(*)号的字段是必填字段。
保持登录。
单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件。
在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。
所有提交的信息确保安全。
选择您的昵称
当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。昵称长度在 3 至 31 个字符之间。
您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。
标有星(*)号的字段是必填字段。
(昵称长度在 3 至 31 个字符之间)
单击提交则表示您同意developerWorks 的条款和条件。 .
所有提交的信息确保安全。
文章、教程、演示,帮助您构建、部署和管理云应用。
立即加入来自 IBM 的专业 IT 社交网络。
为灾难恢复构建应用,赢取现金大奖。
static.content.url=/developerworks/js/artrating/SITE_ID=10Zone=Web developmentArticleID=934615ArticleTitle=基于 Selenium WebDriver 的 Web 应用自动化测试publish-date= 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
软件自动化测试Selenium2.pdf
下载积分:1000
内容提示:软件自动化测试Selenium2.pdf
文档格式:PDF|
浏览次数:27|
上传日期: 12:41:09|
文档星级:
该用户还上传了这些文档
软件自动化测试Selenium2.pdf
官方公共微信Posts - 254,
Articles - 1,
Comments - 1940
大人不华,君子务实。
独立博客:
09:57 by 虫师, ... 阅读,
发展历程:
《selenium_webdriver(python)第一版》& &将本博客中的这个系列整理为pdf文档,免费。
《selenium_webdriver(python)第二版》 & &加入的单元测试框架unittest,用其组织和运行测试用例, 5元。
《selenium_webdriver(python)第三版》 & &整合和HTML测试报告的生成,初步形成测试架构的雏形, 8元。
&《selenium2 python 自动化测试实战》 & & & & 从一个100多而的文档变成了300页的电子书,所以进行了更名,从只讲selenium的文档变成了涵盖整个自动化测试体系的电子书。29元
&《selenium2 python 自动化测试实战(第二版)》 & 精心打磨书中的例子和知识点。不再单纯做加法,也做了一些减法,去掉了一些过时或不重要的知识点。
&&《selenium2 自动化测试实战--基于Python语言》 & 再次更名,再次重新整理,从2013年8月的第一份文档到现在经历了两年的打磨。帮助了许多同学掌握了selenium 与python语言。首先,我不认为目前市面上的selenium足够好,其次,为了让更人员学习掌握自动化测试技术。所以,决定出版。
本电子书特点:
一本自动化测试教程
  selenium家谱介绍,,,完整讲解。
  掌握selenium的元素定位,各种前端组件的操作全收录。
一本实用的Python基础编程教程
  自独立一章讲解Python基础知识,模块调用,文件操作,unittest单元测试框架,Python多线程技术,在实践中真正学会Python编程。你是否还在忧郁看在完了一书Python基础教程,例子都练习并理解了,真的想编程个什么的时候,脑子一片空白。这本电子书让你带着兴趣在项目中学会使用Python。
开发你的自动化测试框架
  准确的来说,这是一本教你学开发的电子书,只是我们所做的项目是自动化测试项目,顺道着学了一个叫WebDriver的web测试框架。Page Object设计模式,BDD行为驱动开发,Git版本控制,Jenkins持续集成。开发人员玩的技术,这里都有。
1、怎么获得文档?&
&电子版不再售卖,纸质出即将出版。
python selenium自动化测试班第N期 &-new
2、请尊重作者的劳动成果,购买的同学不要传播;
==============
文档备注:
1、文档中仍有错别字及语句不通的地方,但基本不影响读者对阅读。
2、文档中的部分例子已经过时,但通过例子传达出来的思想(思路)不会过时。
3、作者想要写的技术点都已经完成,本书的核心点是通过python+selenium来做自动化,git、 BDD 、持续集成等,只带读者理解并运用这个技术,没做更细致的讲解。
4、本文档不再更新,不管你是向虫师直接购买,还是通过其它渠道免费获得,由衷的希望你能在自动化方面以及python编程方面小有所成。为自己的技术能力更高上一层楼垫脚铺路。&
(第二版)本正在整理中,结构大调整,删除增加更多内容,敬请期待。维护好一份文档和维护好一个项目一样。同样需要大量时间与精力。&
( 第二版) 整理完成。
《selenium2 自动化测试实战--基于&Python 语言》待出版中。
首先,非常抱歉!这本书的出版要推迟到一月份了。
在此汇报一下进度:
  7月份的时候偶然加了Anna编辑的QQ,她问想不想出版git的技术书。虽然对git略懂,但远没到出书的能力。就说看能不能把《selenium2自动化测试--基于python》给出版了,毕竟这本电子书我也整理了两年,能印刷成纸质书,也算我个人在自动化方面积累与总结的体现吧!
  然后,就这么说定了,我当时觉得电子书还有不少问题,于是,我想再修正一下里面的部分章节和内容,计划8月底交稿,在8月19号的时候我把搞子交给了编辑。得到的回复是11月份可以面市。&
  9月份其间,我又对两个章节做了些修改,然后把修改的部分交由编辑合并。
  到10月14号的时候,我拿到的第一次排版过后的搞子。排版有了很大的提升,但内容质量(错别字,语法)提升不大。于是,组织部分学生帮我一审核每个章节的内容,由我统一汇总修正。大概用了一周时间修改完毕。
  然后,看到官网到对python2的版本的更新止步到了5月份的Python2.7.10版本。可能是想大力发展python3吧!我不想这本书一出版就有&过时&的味道。于是,又花了一周时间把书中的代码替换为了Python3。
  10月27号,我把基于python3代码的搞子交给编辑。29号编辑告诉我内容质量还存在一些问题。因为我之前的修改都是增加知识点的。对每一段文字的语法,错别字并没太关注。于是,我再次把搞子要过来,这次以校验段落文字为主,尽量不加新内容。再次织组我那帮学生进行检查。
  11月4号将最终的改搞交给编辑手中。
  后续还会经历编辑二审&--&二次排版--&复审--&终审--&发稿--&申请定价--&印刷--&上市。到时当当、京东都可以购买。
  目前正在进行二次排版阶段。所以,就延迟到了1月份。
  虽然,我再过些时日看这本书又忍不住会对里面的内容动刀,没有最完美的时候。当前我已经尽力了。希望你们能拿到一本真正可以帮助你做自动化测试书,相信不会让你们失望,再等等吧!我也很期待。
《Selenium2自动化测试实战--基于Python语言》---目录
放一张封面预热一下,非最终设计。目前出版社一排结束,我正在和小伙伴们对内容审查中。预计1月份发售。
对于迫不及待的小伙伴们,样书已经出来了,本月底就可以在网上购买了。

我要回帖

更多关于 selenium实战 的文章

 

随机推荐