自动化测试框架Selenium 入门

1.什么是selenium

  selenium是ThoughtWork的一款开源测试框架。

  下载selenium2.0lib包,点击http://code.google.com/p/selenium/downloads/list

  这是官方文档:http://seleniumhq.org/docs/

  2.为什么选择selenium

  自动化测试工具有很多了,QTP作为商业软件功能强大。但是要把QTP整合到已有的测试平台上面非常困难,selenium非常容易的可以整合到已有的测试平台上面去。如果你是一个刚刚不如职场的新人不懂程序代码上手selenium有点困难,selenium需要一定的程序开发能力。为以后的测试平台长远考虑,故选用selenium测试框架。

  selenium Java环境基本配置

  1.安装java虚拟机JDK1.5版本以上。

  2.下载安装火狐浏览器,并安装。

  3.下载selenium支持火狐浏览器的IDE,通过这个IDE可以使用selenium语言编写脚本也可录制操作脚本。(不是必须安装IDE)

  4.安装MyEclipse开发环境,并配置MyEclipse的环境。

  3.selenium的基本使用

  1.在Myeclipse建立一个JavaProject项目名称自定义。

  2.将下载的selenium-server-standalone-x.xx.x.jar,导入到项目的Reference Libraries中。

  3.从IDE中导出的测试脚本加入工程中。

  4.在注解@Test中可以编写自动化测试步骤或脚本了。

  选择元素

  WebElement element = driver.findElement(By.id("passwd-id"));

  在输入框中输入内容:

  element.sendKeys(“test”);

  将输入框清空:

  element.clear();

  获取输入框的文本内容:

  element.getText();

  找到下拉选择框的元素:

  Select select = new Select(driver.findElement(By.id("select")));  选择对应的选择项:

  上传文件的元素操作:

  WebElement adFileUpload =driver.findElement(By.id("WAP-upload"));

  String filePath = "C:\test\\uploadfile\\media_ads\\test.jpg";

  adFileUpload.sendKeys(filePath);

  Windows 和 Frames之间的切换

  一般来说,登录后建议是先:

  driver.switchTo().defaultContent();

  切换到某个frame:

  driver.switchTo().frame("leftFrame");

  从一个frame切换到另一个frame:

  driver.switchTo().frame("mainFrame");

  切换到某个window:

  driver.switchTo().window("windowName");

  调用Java Script

  Web driver对Java Script的调用是通过JavascriptExecutor来实现的,例如:


  JavascriptExecutor js = (JavascriptExecutor) driver;

  js.executeScript("(function(){inventoryGridMgr.setTableFieldValue('"+ inventoryId + "','" + fieldName + "','"

  + value + "');})()");

页面等待

  页面的操作比较慢,通常需要等待一段时间,页面元素才出现,但webdriver没有提供现成的方法,需要自己写。

  等一段时间再对页面元素进行操作:


public void waitForPageToLoad(longtime) {

try {

Thread.sleep(time);

} catch (Exceptione) {

}

}

  在找WebElement的时候等待:


public WebElementwaitFindElement(By by) {

returnwaitFindElement(by, Long.parseLong(CommonConstant.GUI_FIND_ELEMENT_TIMEOUT),Long

.parseLong(CommonConstant.GUI_FIND_ELEMENT_INTERVAL));

}

public WebElementwaitFindElement(By by, long timeout, long interval) {

long start = System.currentTimeMillis();

while (true) {

try {

return driver.findElement(by);

} catch(NoSuchElementException nse) {

if (System.currentTimeMillis()- start >= timeout) {

throw newError("Timeout reached and element[" + by + "]not found");

} else {

try {

synchronized(this) {

wait(interval);

}

} catch(InterruptedException e) {

e.printStackTrace();

}

}

}

}

}

  4.selenium注意点

  1.启动浏览器,如果不是默认安装需要指定启动路径 System.setProperty("webdriver.firefox.bin", PrivateDataSource.fireFoxPath);

  2.driver在每次结束的时候都需要退出使用driver.quit();可以把driver产生的零时文件删除掉,如果直接关闭浏览器或driver.close();那么零时文件不会被删除,会

  一直存在在你的C盘中,非常耗资源。

  5.自动化测试策略

  目前项目繁多而非产品那样的专业化,如果每一个项目都做自动化测试那么相对的工作量繁重,质量参差不齐无法很好的控制。

  自动化测试针对项目应注重以下点进行实施:

  1.项目进度督促使用自动化测试核心模块核心流程是否正常。

  2.把控自动化测试质量,如果质量不过关还不如不做自动化测试。

  3.进行并行开发策略,开发人员根据界面设计进行功能开发,测试人员根据界面设计进行自动化脚本开发。

  4.通过jenkins持续集成平台,每次开发人员或测试人员提交代码都会自动去执行一偏测试脚本,把执行中出现的问题暴露出来,让开发人员及时修改。

  通过学习使用selenium自动化测试框架,了解到测试不是简单的测试工作,她掺杂了项目管理,需求分析,人际沟通协调等等技能,需要不断的实践增强能力胜任更加严峻的项目工作。

最新内容请见作者的GitHub页:http://qaseven.github.io/

时间: 2024-07-31 09:57:28

自动化测试框架Selenium 入门的相关文章

自动化测试框架PhoenixAutotest入门

介绍 这里介绍一个基于Selenium实现的一个web自动化测试框架,本框架主要是通过对Selenium的封装实现降低学习自动化测试框架的难度.  如果,您还对Selenium不了解的话,可以先参考<Selenium学习建议>. 入门知识 Java基础 环境 jdk1.8.Eclipse.Maven 入门 可以根据您的习惯来新建Java工程或者Maven工程.如果是Maven工程的话,请添加如下依赖: <dependencies> <dependency> <gr

开发基于XML的Selenium自动化测试框架

为解决该群体的困扰,本文将介绍如何让不熟悉编程的业务http://www.aliyun.com/zixun/aggregation/9621.html">测试人员也能编写出类似传统功能测试用例的自动化测试用例,从而扫除自动化测试的技术障碍. 本文适用于需要为测试团队开发自动化回归测试框架的测试设计开发人员.目前业内主流的商业自动化测试工具和开放源代码测试工具,都需要测试人员熟悉开发编程语言.但是过高的编程门槛让很多测试人员只能对自动化测试驻足遥望.为解决该群体的困扰,本文将介绍一种基于 X

《精通自动化测试框架设计》目录—导读

作者简介 精通自动化测试框架设计 陈冬严,浙江大学硕士,具有10年软件测试和团队管理的工作经验,先后服务于ITSM.PLM软件研发企业,现就职于某金融行业核心机构IT规划部门.业余时间喜欢园艺. 邵杰明,热爱测试工作,10多年的测试行业经验,曾先后供职于多家世界一流软件公司担任测试开发和测试管理工作,积累了丰富的行业工作经验,拥有PMP认证,目前担任测试架构师的工作,致力于自动化测试设计.持续交付等方面的工作. 王东刚,常用网名fastpoint,资深测试专家,<软件测试与Junit实践>作者

自动化测试,从入门到放弃

介绍 有多少本书,在打着"从入门到精通"的旗号在忽悠人.因为,并没有看到我们周围有多少个"精通"的人. 虽然有点武断,我还是建议不要去购买带有"从入门到精通"字样的技术书籍.这只是出书的人希望能通过那些想在学习上投机取巧的人获得更多的经济收入而已.反而,实际情况中,很多人都在走--从入门到放弃的路子. 面试宝典.某某技术宝典等等,犹如"葵花宝典"一样害人不浅:当你看完之后,就会发现书上的东西都在网络上能找到类似的资料,甚至要比

越来越强大的SAFS/STAF/STAX自动化测试框架

上一次,向大家介绍了Openqa.org社区提供的.适合web应用的.开源的自动化测试框架 (开源测试工 具/社区(Selenium /OpenQA.org)--今非昔比 ).最近,看到STAF+STAX发布了最新版本,包括许多服务 组件,可以看出STAF+STAX的框架越来越完整,值得向大家推荐. September 24, 2008: STAF 3.3.1, STAX 3.3.4, Cron 3.3.3, Email 3.3.2, Event 3.1.2, EventManager 3.3.

Tellurium自动化测试框架介绍

Tellurium自动化测试框架是由方剑在2007年6月创建的用于测试Web应用的框架,并在2008年6月移步到Google Code成为一个开源项目.它会定期发布版本,当前版本号是0.7.0.项目的核心已经历时两年,并繁衍出了多个子项目,包括:UDL.Core.Engine.Widget扩展. Maven Archetype.Trump.Tellurium IDE.TelluriumWorks以及参考项目. 这个框架是从Selenium框架发展而来,但又具有不同的测试理念.大多数Web测试框架

开源自动化测试框架Tellurium

Tellurium是什么? Tellurium是一种自动化的web测试框架.虽然它是在selemium的阶段上建立起来的,但两者之间有许多概念上的差异,Tellurium的主要特点如下:     l 不是单一的"记录和播放"风格. l 基于UI模块,也就是说,它侧重于UI元素 l 让你有结构化的代码执行用户界面和测试代码之间的解耦 l 鲁棒性的变化,Tellurium达到使用复合定位建立在运行时和组的定位器定位,删除里面的UI模块和外部UI元素的UI元素之间的依赖 l 表达所使用Gro

基于Sahi和Twist搭建的Web自动化测试框架

Twist是一个基于Eclipse开发的自动化测试平台,它是ThoughtWorks公司的一款商业软件.Sahi是一个Web自动化工具,有Tyto公司创建,具有免费版和专业版两个版本.作者将在本文中简单介绍一下这两个工具,以及基于它们搭建的轻量级Web自动化测试框架,最后重点跟读者分享一些个人使用的经验和技巧. 在介绍Sahi之前,首先简单描述一下作者参与的项目.这个项目是为一家公司做商业应用的实施.由于时间紧迫,测试人员较少,大部分时间都是在针对主要功能做手工测试.为了减少一些重复的手工劳动,

从0到1开发自动化测试框架

一.序言 随着项目版本的快速迭代.APP测试有以下几个特点: 首先,功能点多且细,测试工作量大,容易遗漏: 其次,代码模块常改动,回归测试很频繁,测试重复低效: 最后,数据环境多样,用户场景复杂,功能回归覆盖难全面. 为节省成本,保证高效及高质量迭代,我们需采用更高效的测试方式,App自动化测试是较高效的手段. 之前自动测试实践过程中遇到的诸多问题(代码复用率低,Case开发及数据构造繁琐,问题定位困难,学习成本高等),为解决相关痛点问题,我们重新实现了一套APP自动测试框架.本文将着重介绍技术