您的位置:首页 > 其它

01-Selenium自动化测试介绍

2018-03-26 14:13 155 查看
    当下,自动化测试越来越成为主流的趋势,很多公司都已经在开始使用或者已经使用了好多年。在职场上,不管公司是否真的打算开展自动化测试、是否适合开展自动化测试,都习惯性的把自动化测试写在招聘要求当中,在面试过程中也多多少少会问到一些。所以了解和学习自动化测试时非常有必要的。
    而在自动化测试领域,Selenium和QTP是市场的主流工具,但现在Selenium越来越占据主导地位,在这里,咱们暂不讨论两个工具的优劣,着重介绍一下基于Selenium的自动化测试。
1、Selenium简介
    Selenium 是 ThroughtWorks 公司一个强大的开源 Web 功能测试工具系列,包括 Selenium-IDE、Selenium-RC、Selenium-Webdriver 以及 Selenium-Grid。其中,Selenium-IDE和Selenium-Webdriver二者的结合使用,能够使我们取得事半功倍的效果。
    Selenium 2.0 的主要新功能是集成了 Webdriver 的 API。Webdriver 的设计提供一个更简单、更简洁的编程接口以及解决的 Selenium-RC API 中的一些限制。SeleniumWebdriver 的开发是为了更好地支持动态网页的页面元素可能已经更改,但本身不被重新加载的页面。 Webdriver 的目标是提供一个设计良好的面向对象的 API、提供更好的支持,为 Web 应用程序测试问题

2、自动化实施目的 :
    自动执行重复性工作量较大的回归测试; 
    Web系统在不同操作系统和浏览器下的兼容性测试; 
    与CI服务集成,作为持续集成实践的一部分。
自动化测试之所以能在很多大公司实施起来,就是有它适合自动化测试的特点和高的投资回报率。 

3、适用于自动化测试的情形
1. 产品型项目 
    产品型的项目,每个项目只改进少量的功能,但每个项目必须反反复复的测试那些没有改动过的功能。这部分测试完全可以让自动化测试来承担,同时可以把新加入的功能的测试也慢慢地加入到自动化测试当中。 
2. 增量式开发、持续集成项目 
    由于这种开发模式是频繁的发布新版本进行测试,也就需要自动化测试来频繁的测试,以便把人从中解脱出来测试新的功能。 
3. 能够自动编译、自动发布的系统 
    要能够完全实现自动化测试,必须能够具有自动化编译,自动化发布系统进行测试的功能。当然,不能达到这个要求也可以在手工干预下进行自动化测试。 
4. 回归测试 
    回归测试是自动化测试的强项,它能够很好的确保你是否引入了新的缺陷,老的缺陷是否修改过来了。在某种程度上可以把自动化测试工具叫做回归测试工具。 
5. 多次重复、机械性动作 
    自动化测试最喜欢测试:多次重复、机械性动作,这样的测试对它来说从不会失败。比如要向系统输入大量的相似数据来测试压力和报表。 
6. 需要频繁运行测试 
    在一个项目中需要频繁的运行测试,测试周期按天算,就能最大限度的利用测试脚本,提高工作效率。 
7. 将烦琐的任务转化为自动化测试。
4、不适用于自动化测试的情形 
    自动化测试不是适合所有的公司、所有的项目。 
1. 定制型项目(一次性的) 
    为客户定制的项目,维护期由客户方承担的,甚至采用的开发语言、运行环境也是客户特别要求的,即公司在这方面的测试积累就少,这样的项目不适合做自动化测试。 
2. 项目周期很短的项目 
    项目周期很短,测试周期很短,就不值得花精力去投资自动化测试,好不容易建立起的测试脚本,不能得到重复的利用是不现实的。 
3. 业务规则复杂的对象 
    业务规则特别复杂的对象,有很多的逻辑关系、运算关系,工具就很难测试。 
4. 美观、声音、易用性测试 
    人的感观方面的:界面的美观、声音的体验、易用性的测试,也只有人来测试 。
5. 测试很少运行  
    测试很少运行,对自动化测试就是一种浪费。自动化测试就是让它不厌其烦的、反反复复的运行才有效率。 
6. 软件不稳定 
    软件不稳定,则会由于这些不稳定因素导致自动化测试失败。只有当软件达到相对的稳定,没有界面性严重错误和中断错误才能开始自动化测试。 
7. 涉及物理交互 
    工具很难完成与物理设备的交互,比如刷卡的测试等。 
5、自动化测试所使用的的工具和环境
    在自动化测试代码的开发过程中,常用的集成环境为:Eclipse + Selenium + testng + ant + Jenkins 

    Eclipse:集成开发工具,用来编写测试代码。 
    Selenium:是 ThoughtWorks 专门为 Web 应用而开发的自动化测试工具,适合进行功能测试、验收测试,选用 2.0 版本 WebDriver。 
    Testng: TestNG 是一种基于注释的测试框架,通过添加诸如灵活的装置、测试分类、参数测试和依赖方法等特性来克服 JUnit 的一些不足之处。 
    Ant:是一个将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具,大多用于 java 环境中的软件开发,其作用是可以脱离开发环境,编译和运行程序。 
    Jenkins: 之前叫做 Hudson,是基于 Java 开发的一种持续集成工具,用于监控秩序重复的工作,包括:持续的软件版本发布/测试项目、监控外部调用执行的工作。
    至于整个集成环境的搭建,将会在后续的文章中逐步分享,最终实现Eclipse + Selenium + testng + ant + Jenkins 的开发环境的完全搭建成功。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息