qileilove

blog已经转移至github,大家请访问 http://qaseven.github.io/

自动化测试框架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自动化测试框架,了解到测试不是简单的测试工作,她掺杂了项目管理,需求分析,人际沟通协调等等技能,需要不断的实践增强能力胜任更加严峻的项目工作。

posted on 2014-02-20 10:49 顺其自然EVO 阅读(1485) 评论(0)  编辑  收藏 所属分类: selenium and watir webdrivers 自动化测试学习


只有注册用户登录后才能发表评论。


网站导航:
 
<2014年2月>
2627282930311
2345678
9101112131415
16171819202122
2324252627281
2345678

导航

统计

常用链接

留言簿(54)

随笔分类

随笔档案

文章分类

文章档案

搜索

最新评论

阅读排行榜

评论排行榜