Selenium自动化测试框架-01

1.Selenium简介

Selenium是一款适用于Web应用程序的便携式软件测试框架,通过模拟浏览器执行操作的工具。 Selenium为编写测试提供了一个回放工具,无需学习测试脚本语言。它还提供了一种测试领域特定的语言,用于编写包括C#,Groovy,Java,Perl,PHP,Python,Ruby和Scala等多种流行编程语言的测试。

Selenium官网地址:https://www.seleniumhq.org/

2.自动化测试那点事

2.1 自动化测试目标

  • 提高测试人员的工作成就感,减少手工测试的重复性工作
  • 提高测试用例的执行效率,实现快速自动化回归测试,能够给开发团队高质量反馈
  • 插入大量的测试数据来验证系统的处理能力
  • 提供了有关测试用例的严格文档。
  • 能够使用自动化完全取代手工测试,能够发现更多的bug ,更不容易出错

2.2 自动化测试工具比较

目前主流的Web自动化测试工具是Selenim WebDriver和QTP,下面详细比较这两种工具的特点:

特征 Selenium HP QTP
许可 开源工具 有版权
客户支持 Selenium社区论坛 专门的HP支持
测试支持 仅支持基于Web的应用程序的自动化 支持基于Web和桌面的应用程序的测试
测试脚本执行期间的资源消耗 资源消耗低 资源消耗高
支持的编程语言 Java, C#, Ruby, Python, Perl, PHP and JavaScript VB Script
支持的环境 Android, iOS, Windows, Linux, Mac, Solaris 仅适用于Windows
支持的浏览器 谷歌浏览器,Mozilla Firefox,Internet Explorer,Edge,Opera,Safari等 特定版本的Google Chrome,Mozilla Firefox和Internet Explorer
对象存储库/恢复方案 内置对象存储库和恢复方案
浏览器控件 可在浏览器中访问收藏夹栏,后退和前进按钮等控件
测试报告生成 它依赖于外部工具来生成测试报告 在工具中生成内置测试报告
参数设置 依赖任何一种受支持的编程语言进行参数化 内置工具可用于参数化

综上,具备一定编程能力的测试团队更适用于选择Selenium WebDriver作为团队的主要Web自动化测试工具,对于预算充足且团队成员的编程能力一般的 测试团队更适合选择QTP工具作为团队的Web自动化测试工具。

2.3 Selenium的局限性

  • Selenium不支持桌面应用程序的自动化测试
  • 没有像UTF/QTP这样的内置对象存储库来维护集中位置的对象/元素。 但是,可以使用Page Object Model克服此限制
  • Selenium是开源软件,因此必须依靠社区论坛来解决技术问题
  • Selenium没有任何内置的报告功能; 必须依赖JUnit和TestNG等插件来获取测试报告
  • Selenium不为测试管理提供任何测试工具集成

3.Selenium安装和第一个WebDriver脚本

3.1 Python中安装WebDriver

  • 安装好Python、pip工具后,在cmd中键入“pip install selenium" ,若成功,则跳转(3)
  • 下载Selenium离线安装包,访问selenium安装包,选择.gz的源码包下载,完成后解压该文件到任意目录,通过cmd将当前目录切换到setup.py文件所在的目录,然后执行python setup.py install命令进行安装。
  • 通过cmd下输入“Python”进入Python交互模式,执行“import selenium”,若没有报错,则Selenium安装成功。

3.2 第一个WebDriver脚本

  • 测试目标:
    使用FireFox浏览器验证WebDriver脚本是否可用。
  • 测试用例步骤:
    1. 在FireFox浏览器中打开百度首页。
    2. 在搜索框中输入"鼠绘汉化网"。
    3. 单击"搜索"按钮"。
    4. 页面显示搜索结果。
  • 环境准备:
    1. 使用FireFox浏览器执行Selenium3.x编写的自动化测试脚本时,需要从https://github.com/mozilla/geckodriver/releases 根据自己操作系统及浏览器下载对应的WebDriver操作FireFox的驱动程序。
    2. 下载后解压到geckodriver.exe文件。测试脚本程序如下:
    from selenium import webdriver
    import time
    
    #声明浏览器,通过executable_path参数指明FireFox驱动文件所在路径
    driver = webdriver.Firefox(executable_path="D:\\geckodriver")
    #driver=webdriver.Chrome(executable_path="D:\\chromedriver")
    #打开百度首页
    driver.get("http://www.baidu.com")
    #清空搜索输入框默认内容
    driver.find_element_by_id("kw").clear()
    #搜索框输入鼠绘汉化网
    driver.find_element_by_id("kw").send_keys(u"鼠绘汉化网")
    #单击搜索按钮
    driver.find_element_by_id("su").click()
    #等待3秒
    time.sleep(3)
    #退出浏览器
    driver.quit()

    PyCharm中执行该脚本,会看到程序自动启动浏览器,访问百度首页,并在搜索框中输入关键内容“鼠绘汉化网”,单击搜索按钮后展现搜索结果,3秒后退出浏览器。

原文地址:https://www.cnblogs.com/ghauoa/p/10279602.html

时间: 2024-10-08 14:48:52

Selenium自动化测试框架-01的相关文章

selenium自动化测试框架之PO设计模式

面向对象的特性:封装.继承.多态.在自动化中一样适用,Selenium自动化测试中有一个名字常常被提及PageObject(思想与面向对象的特性相同),通过PO模式可以大大提高测试用例的维护效率. ##传统测试脚本的弊端 测试脚本分离,维护成本高 可扩展性差 复用性低等 PageObject设计模式 PO的核心要素: 在PO模式中抽象封装成一个BasePage类,该基类应该拥有一个只实现webdriver实例的属性. 每个一个page都继承BasePage,通过driver来管理本page中元素

Selenium自动化测试框架的搭建

说 起自动化测试,我想大家都会有个疑问,要不要做自动化测试? 自动化测试给我们带来的收益是否会超出在建设时所投入的成本,这个嘛别说是我,即便是高手也很难回答,自动化测试的初衷是美好的,而测试工程师往往在实现 过程中花费了很多成本.精力,而最终以失败告终. 失败的原因会很多,我总结几项: 1.   太过依赖测试工具,高估了工具的力量,最终会以失望告终. 2.    项目紧急的情况,为了规避那些多余的环节,干脆人工测试,结果整个链路中断. 3.    研发和测试人员不能很好的交互,如果这两个角色之间

简易selenium自动化测试框架(Python)

最近空闲时间在探索Selenium的自动化测试,简单的写了一个小框架来测试公司的一个web产品.该框架包括以下模块: 1. Test case编写模式(page模式,参考之前的博文http://www.cnblogs.com/AlwinXu/p/5537955.html) 2. Test case的管理及执行 (主要是用nose) 该模块借助了一个外部txt文件来记录测试用例,每个用例为自身的文件名,如果不需要在本次执行,只需在文件名前添加一个"#"标识符就可以跳过该用例的执行. 3.

Python3+Selenium2完整的自动化测试实现之旅(五):自动化测试框架、Python面向对象以及POM设计模型简介

前言 之前的系列博客,陆续学习整理了自动化测试环境的搭建.IE和Chrome浏览器驱动的配置.selenium-webdriver模块封装的元素定位以及控制浏览器.处理警示框.鼠标键盘等方法的使用,这些内容还需要后续多加练习掌握,以达到灵活运用的程度.but,这仅仅只是开始,说明咱们能够使用selenium框架下的webdriver写出一个个测试用例脚本,也仅仅写给自己看看,如果需要写100条.1000条测试脚本,并能够高效快速的编写完成并批量执行,且要看到完整的执行结果,失败多少,成功多少,等

Python3-Selenium自动化测试框架(三)之xpath元素定位

Selenium自动化测试框架(三)之xpath元素定位 xpath元素定位 节点(Node) 在 XPath 中,有七种类型的节点:元素.属性.文本.命名空间.处理指令.注释以及文档节点(或称为根节点). 选取节点 XPath 使用路径表达式来选取 XML 文档中的节点或节点集.节点是通过沿着路径 (path) 或者步 (steps) 来选取的. 谓语(Predicates) 谓语用来查找某个特定的节点或者包含某个指定的值的节点. 谓语被嵌在方括号中. 路径表达式: 表达式 描述 / 从根节点

Python3-Selenium自动化测试框架(四)之css元素定位

Selenium自动化测试框架(四)之css元素定位 一.css元素定位 CSS可以通过元素的id.class.标签(input)这三个常规属性直接定位到 id-->> # class-->> . 1.通过id进行定位 input#kw #kw 2.通过class进行定位 input.s_ipt .s_ipt 3.子类定位">":通过先定位父类(self),再定位self下的子类 #s_kw_wrap>#kw 4.同级定位"+":

Python3-Selenium自动化测试框架(六)之窗口切换、等待

Selenium自动化测试框架(六)之窗口切换.等待 窗口切换有三种: 1.Windows切换 2.iframe切换 3.alert切换 一.Windows切换 获取所有窗口的句柄 handles = driver.window_handles 获取当前窗口的句柄 handle = driver.current_window_handle 通过所有窗口的句柄索引来进行窗口切换 driver.switch_to.window(driver.window_handles[-1]) 窗口等待 等待新窗

RobotFramework自动化测试框架-Selenium Web自动化(三)关于在RobotFramework中如何使用Selenium很全的总结(下)

本文紧接着RobotFramework自动化测试框架-Selenium Web自动化(二)关于在RobotFramework中如何使用Selenium很全的总结(上)继续分享RobotFramework中如何使用Selenium进行自动化测试. 本文章节目录: 1.Get Value 2.Get Webelements和Get Webelement 3.Get Window Titles 4.Go Back 和 Go To 5.Get List Items 6.Get Selected List

基于Selenium的自动化测试框架 - SeLion学习之一(基本介绍)

SeLion是一个基于Selenium的自动化测试框架,是Selenium下的一款非常优秀的框架结构,但是资料非常少,在国内使用的也就相对较少,本人会用一系列的文章,比较详细的介绍该框架结构,希望能给广大的自动化测试爱好者提供一个实现思路,如果对该本人文章感兴趣或者有什么问题,欢迎留言,我会尽量回答,也欢迎转载该系列文章.该文章是本系列第一节,SeLion的基本介绍,先让大家对SeLion有一个基本的认识. 一:SeLion是什么?SeLion是基于Selenium的一款开源测试框架,是对Sel