自动化测试框架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/


410078.html?webview=1
相关文章
|
1天前
|
前端开发 测试技术 C++
Python自动化测试面试:unittest、pytest与Selenium详解
【4月更文挑战第19天】本文聚焦Python自动化测试面试,重点讨论unittest、pytest和Selenium三大框架。unittest涉及断言、TestSuite和覆盖率报告;易错点包括测试代码冗余和异常处理。pytest涵盖fixtures、参数化测试和插件系统,要注意避免过度依赖unittest特性。Selenium的核心是WebDriver操作、等待策略和测试报告生成,强调智能等待和元素定位策略。掌握这些关键点将有助于提升面试表现。
7 0
|
3天前
|
Web App开发 JavaScript 前端开发
深入理解自动化测试框架Selenium的设计与实现
【4月更文挑战第20天】 在软件测试领域,自动化测试已成为提升测试效率和确保产品质量的关键手段。Selenium作为一款广泛使用的开源自动化测试框架,其设计精巧且功能强大,为Web应用提供了一种灵活、高效的测试解决方案。本文将深入探讨Selenium的核心架构与实现细节,解析其如何通过模拟用户操作来执行测试用例,以及它如何适应不断变化的Web技术标准。通过对Selenium内部机制的剖析,旨在帮助测试工程师更好地掌握该工具,并在测试实践中发挥其最大效能。
|
4天前
|
前端开发 JavaScript Java
《手把手教你》系列技巧篇(二十五)-java+ selenium自动化测试-FluentWait(详细教程)
【4月更文挑战第17天】其实今天介绍也讲解的也是一种等待的方法,有些童鞋或者小伙伴们会问宏哥,这也是一种等待方法,为什么不在上一篇文章中竹筒倒豆子一股脑的全部说完,反而又在这里单独写了一篇。那是因为这个比较重要,所以宏哥专门为她量身定制了一篇。FluentWait是Selenium中功能强大的一种等待方式,翻译成中文是流畅等待的意思。在介绍FluentWait之前,我们来讨论下为什么需要设置等待,我们前面介绍了隐式等待和显式等待。
27 3
|
5天前
|
监控 测试技术 数据安全/隐私保护
如何将代理IP集成到自动化测试框架中?
如何将代理IP集成到自动化测试框架中?
|
6天前
|
Java 测试技术 定位技术
《手把手教你》系列技巧篇(二十三)-java+ selenium自动化测试-webdriver处理浏览器多窗口切换下卷(详细教程)
【4月更文挑战第15天】本文介绍了如何使用Selenium进行浏览器窗口切换以操作不同页面元素。首先,获取浏览器窗口句柄有两种方法:获取所有窗口句柄的集合和获取当前窗口句柄。然后,通过`switchTo().window()`方法切换到目标窗口句柄。在项目实战部分,给出了一个示例,展示了在百度首页、新闻页面和地图页面之间切换并输入文字的操作。最后,文章还探讨了在某些情况下可能出现的问题,并提供了一个简单的本地HTML页面示例来演示窗口切换的正确操作。
27 0
|
7天前
|
敏捷开发 监控 前端开发
深入理解自动化测试框架Selenium的架构与实践
【4月更文挑战第16天】 在现代软件开发过程中,自动化测试已成为确保产品质量和加快迭代速度的关键手段。Selenium作为一种广泛使用的自动化测试工具,其开源、跨平台的特性使得它成为业界的首选之一。本文旨在剖析Selenium的核心架构,并结合实际案例探讨其在复杂Web应用测试中的高效实践方法。通过详细解读Selenium组件间的交互机制以及如何优化测试脚本,我们希望为读者提供深入理解Selenium并有效运用于日常测试工作的参考。
14 1
|
8天前
|
自然语言处理 测试技术 API
深入理解自动化测试框架Selenium的设计理念与实践
【4月更文挑战第15天】 在现代软件开发过程中,自动化测试已成为确保产品质量和加速迭代的关键手段。Selenium作为一种广泛使用的自动化测试框架,提供了对多种浏览器和平台的支持,极大地促进了Web应用的功能测试。本文旨在剖析Selenium的核心设计理念,探讨其在实际项目中的应用,并指出常见的误区及最佳实践,以期帮助测试工程师更高效地利用Selenium进行测试工作。
|
3月前
|
数据可视化 测试技术 持续交付
自动化测试神器:Python之Pytest库入门使用
自动化测试神器:Python之Pytest库入门使用
99 4
|
1天前
|
XML Web App开发 测试技术
python的Web自动化测试
【4月更文挑战第16天】Python在Web自动化测试中广泛应用,借助Selenium(支持多浏览器交互)、BeautifulSoup(解析HTML/XML)、Requests(发送HTTP请求)和Unittest(测试框架)等工具。测试步骤包括环境搭建、编写测试用例、初始化浏览器、访问页面、操作元素、验证结果、关闭浏览器及运行报告。注意浏览器兼容性、动态内容处理和错误处理。这些组合能提升测试效率和质量。
11 6
|
10天前
|
Web App开发 测试技术 网络安全