• 13
  • 13
分享

1、selenium 工具介绍

什么是 selenium?

selenium 自动化测试浏览器,它主要是用于 Web 应用程序的自动化测试,但肯定不只局限于此,同时支持所有基于 web 的管理任务自动化。

selenium 的特点:

  • 开源,免费;

  • 多浏览器支持:FireFox、Chrome、IE、Opera;

  • 多平台支持:linux 、windows、MAC;

  • 多语言支持:java、python、ruby、php、C#、JavaScript;

  • 对 web 页面有良好的支持;

  • 简单(API 简单)、灵活(用开发语言驱动);

  • 支持分布式测试用例执行。

selenium 经历了两个版本,selenium 1.0 和 selenium 2.0 ,selenium 也不是简单一个工具,而是由几个工具组成,每个工具都有其特点和应用场景

selenium IDE

selenium IDE 是嵌入到 Firefox 浏览器中的一个插件,实现简单的浏览器操作的录制与回放功能。

那么什么情况下用到它呢?

快速的创建 bug 重现脚本,在测试人员的测试过程中,发现了 bug 之后可以通过 IDE 将重现的步骤录制下来,以帮助开发人员更容易的重现 bug。

IDE 录制的脚本可以可以转换成多种语言,从而帮助我们快速的开发脚本,关于这个功能后而用到时再详细介绍。

selenium Grid

Selenium Grid 是一种自动化的测试辅助工具,Grid 通过利用现有的计算机基础设施,能加快 Web-app的功能测试。利用 Grid,可以很方便地同时在多台机器上和异构环境中并行运行多个测试事例。其特点为:

  • 并行执行;

  • 通过一个主机统一控制用例在不同环境、不同浏览器下运行;

  • 灵活添加变动测试机。

selenium RC

selenium RC 是 selenium 家族的核心工具,selenium RC 支持多种不同的语言编写自动化测试脚本,通过 selenium RC 的服务器作为代理服务器去访问应用从而达到测试的目的。

selenium RC 使用分 Client Libraries 和 selenium Server,Client Libraries 库主要主要用于编写测试脚本,用来控制 selenium Server 的库。Selenium Server 负责控制浏览器行为,总的来说,Selenium Server 主要包括 3 个部分:Launcher、Http Proxy、Core。其中 Selenium Core 是被 Selenium Server 嵌入到浏览器页面中的。其实 Selenium Core

就是一堆 JS 函数的集合,就是通过这些 JS 函数,我们才可以实现用程序对浏览器进行操作。Launcher 用于启动浏览器,把 selnium Core 加载到浏览器页面当中,并把浏览器的代理设置为 Selenium Server 的Http Proxy。

selenium 2.0

搞清了 selenium 1.0 的家族关系,selenium 2.0 是把 WebDriver 加入到了这个家族中;简单用公式表示为:

selenium 2.0=selenium 1.0 + WebDriver

需要强调的是,在 selenium 2.0 中主推的是 WebDriver ,WebDriver 是 selenium RC 的替代品,因为 selenium 为了向下兼容性,所以 selenium RC 并没有彻底抛弃,如果你使用 selenium 开发一个新自动化测试项目,强列推荐使用 WebDriver 。那么 selenium RC 与 webdriver 主要有什么区别呢?

selenium RC 在浏览器中运行 JavaScript 应用,使用浏览器内置的 JavaScript 翻译器来翻译和执行selenese 命令(selenese 是 selenium 命令集合)。

WebDriver 通过原生浏览器支持或者浏览器扩展直接控制浏览器。WebDriver 针对各个浏览器而开发,取代了嵌入到被测 Web 应用中的 JavaScript。与浏览器的紧密集成支持创建更高级的测试,避免了JavaScript 安全模型导致的限制。除了来自浏览器厂商的支持,WebDriver 还利用操作系统级的调用模拟用户输入。

selenium 与 WebDriver 原先属于两个不同的项目,WebDriver 的创建者 Simon Stewart 早在 2009 年八月的一份邮件中解释了项目合并的原因。

由于 selenium 基于 web 的自动化测试技术,我们的要操作的对象是页面,所以有必要对前端的技术和工具做一个简单的介绍。

HTML 简介

HTML(Hyper Text Markup Language)中文为超文本标记语言,HTML 是网页的基础,它并不是

一种编程语言,而是一种标记语言(一套标记标签),但我们可以在 HTML 标签中嵌入各种前端脚本语言,如VBScript、JavaScript 等。下面是一个简单的 HTML 页面。

<html> 与 </html> 之间的文本描述网页

<title> 与</title> 之间的内容显示在浏览器的标题栏

<body> 与 </body> 之间的文本是可见的页面内容

<h1> 与 </h1> 之间的文本被显示为正文,h1 为页面中的一号字体现在我们通过浏览器打开任意

一个页面,在页面上右键菜单选择“查看网页源代码”,在复杂的前端代码中你依然可以找到 HTML 的身影。

JavaScript简介

JavaScript 是一种由 Netscape 公司的 LiveScript 发展而来的前端脚本语言(脚本语言是

一个种轻量级的语言),是一种解释性语言(代码执行不需要预编译);被设计用来向 HTML 页面添加交互行为,通常被直接嵌入到 HTML 页面。


文章来源:百度文库

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   ChatGPT的技术分析  ChatGPT是一种强大的自然语言处理工具,它彻底改变了我们与机器交互的方式。在本文中,我们将探讨ChatGPT的技术方面及其对人工智能领域的影响。  什么是ChatGPT?  ChatGPT是由OpenAI开发的开源语言模型,它使用深度学习生成类似于人类对文本提示的回复。它基于GPT(生成式预训练转换器)架构,这是一种已经在大量文本数据上进行了预训练的神经网络。  ChatGPT如何工作?  ChatGPT通过使用称为“无监督学习”的过程来分析大量的文本数据并学习语言模式。然后,它使用这些知识来生成对文本提示的回复。  该模型是在大量文本数据集上进行训练的,例...
            0 0 1233
            分享
          •   在大部分项目中,里程碑计划是通过上线日期倒排,而不是结合具体项目范围进行评估得出,并且系统测试阶段通常属于研发流程的下游,上游的进度延误直接导致下游的时间被压缩,因此测试同学经常会面临测试周期压缩的问题。  在测试周期被压缩的情况下,按照原计划完成相应测试工作已不可能,那么怎么应对呢?  改变测试方法和技术提高效率  比如更早地运行自动化测试,尽量在前期发现问题;使用自动化脚本进行回归测试,缩短回归测试时长。  原计划可能是手工执行回归测试,如果测试周期紧张,可以借助脚本完成该部分测试任务。  这就要求平时要做好单元测试脚本和系统测试脚本的编写和维护工作。  加班赶工  考虑在原安排的人员...
            0 0 1292
            分享
          •   一.接口测试分析  外部接口:  测试被测系统和外部系统之间的接口。  内部接口:  · 内部接口只提供给内部系统使用  · 内部接口提供给外部系统使用  二.接口测试的流程及用例的设计  1、根据接口api文档(或可通过抓包工具获取),熟悉接口业务,接口地址,鉴权方式,接口入参出参及错误码。  2、编写接口用例。  思路  正常情况:输入正常入参,接口能够成功返回数据。  异常情况:  · 异常鉴定:鉴权码为空,鉴权码错误,鉴权码过期,鉴权码失效...  · 输入异常:输入为空,输入类型异常,输入长度异常  · 错误码覆盖:根据业务而定  · 其他...
            0 0 952
            分享
          •   一、测试改进的策略  一)、首先是要改进新功能测试的策略  一般来说,每次短期的迭代都有新的功能加入产品中,因此,针对新功能的测试方法,在短期迭代周期中需要改进。不需要编写测试用例,直接基于对需求的理解梳理出测试场景,按照测试场景来验证新功能。  即使一定要写测试用例,可以不用太详细,只要保证用例能够覆盖各个功能点即可。  持续性验证包括单元测试和集成测试两个阶段,它们都是输入准备好的数据,验证输出结果,从而覆盖所有业务流程。易于察觉流程式的功能问题:逻辑混乱、输出不合理等。  测试人员和开发人员工作保持同步,可以参与代码审查,从而更好地理解系统的实现,也更容易发现问题。  同时可以实施组...
            0 0 1053
            分享
          •   在数字化时代,数据已经成为银行的重要资产,而数据治理则是确保数据质量、安全性和可用性的关键。那么,什么是银行数据治理?为什么我们需要银行数据治理?又如何进行有效的银行数据治理呢?又有哪些数据治理技术及其在银行领域的实际应用呢?本文将为您一一解答。  1.什么是银行数据治理?  银行数据治理是一种对银行数据进行全面管理的过程,包括数据的收集、存储、处理、分析、使用和销毁等各个环节。它涉及到数据的质量管理、安全管理、隐私保护、合规性等多个方面,旨在确保数据的完整性、准确性、一致性和安全性,从而提高数据的可用性和价值。  2.为什么需要银行数据治理?  (1)提高数据质量:通过银行数据治理,可以...
            0 0 1014
            分享
      • 51testing软件测试圈微信