性能测试是一种非功能性测试,用于测量 Web 应用程序、网页或框架在测试时如何根据不同的负载级别进行响应,以查看它们在负载不足时如何行动和响应特定时间段。 在这篇文章中,我们将开始解释如何使用Selenium及其工具系列,以执行性能测试。 虽然不建议仅使用 Selenium 和 WebDriver 执行负载测试,但本文将解释使用 Selenium 设置负载测试的过程,并介绍 LoadView 等解决方案的优点。

 

什么是 Selenium WebDriver?

Selenium WebDriver 用于自动进行 Web 应用程序测试,以检查其是否填写 true 形式。 它支持多种浏览器,例如火狐、Chrome、互联网浏览器和 Safari。 在任何情况下,利用WebDriver,我们可以自动测试Web应用程序,因为它是。 它不适合基于 Windows 的应用程序。 它同样支持不同的编程方言,例如,C#、Java、Perl、PHP 和 Ruby 来撰写测试内容。 Selenium WebDriver 是无舞台的,因为类似的代码可用于各种操作系统,如 Windows、iOS、Linux 和 Ubuntu。 它是Selenium系列的一个片段,另外还包含了Selenium IDE、Selenium客户端API、Selenium远程控制和Selenium网格。

Selenium WebDriver 不处理 Windows,但利用第三方工具(例如 AutoIT、Sikuli 等)可能会使这种约束不堪重负。 它也有不同的区域过程,例如 ID、名称、链接文本、部分连接文本、类名称、CSS 选择器和 Xpath。 同样,它可以更好地支持动态页面(如 AJAX),其中页面的组件可能会更改,而无需重新加载页面本身。 通过利用不同的容器文档,我们同样可以使用 Selenium WebDriver 测试 API、数据库等。

 

Selenium WebDriver 架构

Selenium WebDriver API 提供语言和浏览器之间的对应功能。 随附的图片显示了 Selenium WebDriver 的构图描述。

WebDriver 体系结构有四个基本部分:

  • 铀语言绑定
  • JSON 电线协议
  • 程序驱动程序
  • 正版浏览器

铀结构

 

铀语言绑定

Selenium 负载测试器制作了语言绑定/Selenium 客户端库,以帮助使用多种方言。 例如,在需要利用 Java 中的程序驱动程序时,利用 Java 生成。 所有支持的语言绑定可以从官方 Selenium网站下载。 一段时间后,Selenium客户端的数量已基本发展。 许多客户暗示要维护许多改进堆栈,以及网络文档使用各种方言的 Selenium,利用 WebDriver API 作为通过绑定方式共享的主要有用性。

 

JSON 电线协议

JSON(JavaScript 对象表示法)是网络上交易信息的开放规范。 它支持信息结构,如文章和展览。 这样,编写和细读来自 JSON 的信息就极其困难。 JSON 有线协议提供车辆组件,用于在客户端和服务器之间移动信息。 JSON 有线协议作为不同 REST Web 管理的行业标准填写。

 

程序驱动程序

Selenium 利用驱动程序,明确到每个程序,以便建立与程序的受保护关联,而不发现程序有用性的内部理由。 程序驱动程序同样对用于自动化的语言(例如 Java、C# 等)表示明确。 当我们使用 WebDriver 执行测试内容时,附带的活动在内部执行。

  • HTTP 需求被创建并发送到每个 Selenium 订单的程序驱动程序。
  • 驱动程序通过 HTTP 工作线程获取 HTTP 请求。
  • HTTP 服务器选择执行程序执行准则的所有方法。
  • 执行状态将发送回 HTTP 服务器,因此会发送回自动内容。

 

正版浏览器

Selenium WebDriver 支持的浏览器包括:

  • Ie
  • 莫齐拉火狐
  • 谷歌浏览器
  • Safari

 

Selenium WebDriver 的功能

 

不同的浏览器支持

Selenium WebDriver 支持各种互联网浏览器,例如,火狐、Chrome、互联网浏览器、Opera 等。 同样,它支持了 HTMLUnit 等非常规或不常见的程序的一部分。 HTMLUnit是一个无头浏览器,或一个不使用GUI(图形用户界面)的浏览器。 许多开源负载测试解决方案使用无头浏览器,因为性能测试人员可以启动大量 HTTP 或基于协议的流量。 但是,使用无头浏览器的问题是,它们无法测试客户端脚本,因此从用户的角度忽略了实际性能。

基于协议的测试与基于实际浏览器的测试

基于协议的测试在互联网的早期非常流行。 然而,随着时间的推移,Web 应用程序框架和浏览器不断演变,现在这些曾经流行的负载测试方法已变得越来越过时。 虽然 HTTP 测试目前仍在使用,但随着网站变得更加复杂,它使负载测试变得困难。

现代 Web 应用程序依赖于客户端的行为和操作,而不是用于导航、搜索等的服务器。 例如,单页应用程序 (SPA) 在加载页面后很少依赖服务器的参与。 服务器端可能有一些动态加载的内容,但从用户的角度来看,这为他们提供了更无缝的体验,而不必不断加载新页面。

 

各种语言支持

此外,WebDriver 还支持了大量通常使用编程的方言,如 Java、C#、JavaScript、PHP、Ruby、Pearl 和 Python。 随后,客户端可以根据其能力选择任何支持编程语言,并开始构建测试内容。

 

速度

与 Selenium 套件的不同设备进行对比时,WebDriver 的性能更快。 它不需要任何中间的道路工人与程序交谈;而是设备直接与程序说话。

 

基本命令

Selenium WebDriver 中使用的订单大部分都很难实现。 例如,要在 WebDriver 中按照以下顺序调度程序:

  • 网络驱动程序=新的火狐浏览程序():(火狐程序)
  • WebDriver 驱动程序 = 新的 ChromeDriver ();(铬程序)
  • WebDriver 驱动程序 = 新的互联网探索者司机();(互联网浏览器程序)

 

WebDriver-方法和类

WebDriver 提供了不同的答案,用于适应自动化测试中一些可能遇到的困难。 此外,WebDriver 还允许分析器管理各种复杂的 Web 组件,例如复选框、下拉列表和警告。

 

使用氦负载测试

使用 Selenium WebDriver 加载测试有几个步骤。

 

创建浏览器配置

创建线程组,并在”配置元素”菜单中包含”铬驱动程序配置”。

氦螺纹组

 

此时,您必须将下载的 ChromeDriver 作为配置元素的一种方式。

氦铬驱动器

 

实施测试

在线程组下包括 WebDriver 采样器。 这将带来一个基本内容,打开一个网站页面。 我们必须控制此内容。 为了配合程序,你必须使用Selenium显式技术,如发送键,点击()等。 以下是一些提示:

 

浏览打开命令

此命令打开给定的 URL

Wds. 浏览器. get

 

为了执行一些 UI 显式活动,您必须将 org.openqa.selenium 捆绑包导入到您的内容中。 只需将此行添加到您的内容中即可。

JavaImporter

 

 

发送键命令

如果您知道 Selenium,您意识到可以通过cssSelector、ID、XPath我们制作的 pkg变量到达组件,从而鼓励您发现 Web 组件。 ID XPath 这是您发现组件的方式。 将 webElement 存储到名为 searchField 的变量中

发送键命令

 

 

此时,您只需利用标准 Selenium 工作 SendKeys 来考虑一些内容。

搜索场

 

 

单击命令

Selenium 具有基础捕捉顺序。 您只需利用类似的容量,随后获得 webElement。 首先,我们存储组件并播放捕捉活动。

单击命令

 

 

 

 

其他命令

除了这些基本订单,我们应该利用一些明确用于 Selenium 的订单,因此 Selenium 可以选择捕获采样器的开始和结束时间。 这两种技术将发送 Selenium 的开始和结束信号,以用于揭示目的。

氦Beginning_End

 

日志命令

您应该在测试期间执行一些日志记录。 此时,您只需利用下面的顺序。 用户还可以查看负载测试结果。

日志命令

 

 

请求种类

有两种邀请您可能熟悉,GET 和 POST。

Selenium 获取请求

 

 

 

 

 

在它作为 GET 请求的偶然机会时,它会在程序端创建一个反应,并且它将通过 HTTP 发送到程序驱动程序,从长远来看,在 JSON 有线约定帮助下,程序驱动程序会将其发送到 UI(Eclipse IDE)。

 

Selenium WebDriver 的优势

  • 它是更受欢迎的开源程序之一,对于测试在线应用程序来说,这绝不是一个困难。 此外,它还允许您执行跨程序相似性测试。
  • 支持各种工作框架,如 Windows、Mac、Linux、Unix 等。
  • 它为相似性提供了方言的范围,包括Python、Java、Perl、Ruby等。
  • 为当前程序(如 Chrome、火狐、歌剧、Safari 和互联网浏览器)提供帮助。
  • 当与不同的仪器进行对比时,Selenium WebDriver 可以更快地完成测试内容的执行
  • 更简洁的 API(应用程序编程接口)在这一点上, Selenium RC 的
  • 它此外给类似的 iphone 驱动程序, Html 单位驱动程序和 Android 驱动程序

 

与氦的困难

对氦的困难包括:

  • 仅支持测试 Web 应用程序
  • 不接受位图检查
  • 对于任何细节相关能力主机依靠第三方工具。
  • 没有供应商支持与 HP UFT 等业务设备对比的设备
  • 由于没有 ORC(光学字符识别),因此项目的实用性变得麻烦

 

LoadView:真实浏览器中的负载和压力测试

LoadView 使开发人员和测试人员能够快速为众多项目(如 Web 应用程序、网页、API、流媒体等)创建负载和压力测试。 所有资源都由您管理。 这些解决方案完全基于 Web,无需额外的硬件或软件,因为负载喷射器服务器都由您管理。

对于 Web 应用程序,用户可以使用 EveryStep Web 记录器 ,并指向并单击其方式通过应用程序,就像用户或客户端一样。 然后,这些脚本将上传到 LoadView 平台,只需单击几下即可创建负载测试方案并运行测试。 不要浪费时间手动编写 Web 应用程序的方案。 详细了解 LoadView 的功能

 

LoadView 的优势

这些只是 LoadView 的一些优势:

  • 简单易用。 它有一个易于理解的用户界面
  • 包括 EveryStep Web 录像机,便于快速录制脚本
  • 与持续集成工具集成 ,如 Jenkins
  • 支持许多技术和框架、浏览器和设备
  • 来自全球近 20 个地点的测试
  • 可以在协议级别进行测试,以及使用真正的浏览器

 

负载视图和氦的基本区别

负载视图

LoadView 是一个基于 Web 的解决方案 Selenium 是一个有形的编程库,而不是一个设备
LoadView 不需要跨浏览器测试的扩展支持 Selenium 支持用于跨浏览器测试的多种浏览器
LoadView 缩放所有内容,用户可以查看负载测试的图形视图 氦不能很好地扩展
LoadView 可以捕获视频,以便于进行故障排除 Selenium WebDriver 无法捕获视频并排除故障

 

Selenium 测试套件可以在 TestNG XML 套件中组成。 正如名称所建议,它是一个 XML 文档,描绘了要执行的整个 Selenium 测试套件/情况。 后续记录可以在测试机器之间共享,承认它们具有类似的测试包含原理。

Selenium 可用于某些表示测试(例如受限数据传输测试),但无法用于像 LoadView 这样的精确性进行堆叠测试。 例如,在相当长的时间内,Selenium 无法产生受控数量的征求。 LoadView 使设置负载测试详细信息(如并发用户、延迟、增加/下降时间等)变得更多。

正如我们前面提到的,LoadView 可以通过真实的浏览器记录 Web 应用程序会话的分步脚本,并在服务器看到时重播 Web 会话。 此外,LoadView 还包含另一种最终客户端体验,使您能够测试网页,并查看客户端在网站加载时看到的内容。

测试完成后,您可以通过性能报告、会话报告、瀑布图等查看数据,以查看每个元素和组件的性能细分。 很多时候,有些错误和错误甚至可能不知道,但它会影响加载时间和性能。 您可以确切地了解问题的确切原因,以便您的团队可以快速解决这些问题。

 

结论:解释氦负荷测试

LoadView 和 Selenium 都用于 Web 应用程序测试。 但是,基本区别是 LoadView 通常用于测试 Web 应用程序在负载和压力下的表示。 话又说回来,Selenium 最适合站点的自动化和跨程序测试。 鉴于什么样的测试对这项工作很重要,人们肯定可以使用 LoadView 来满足所有性能测试需求。

LoadView 提供许多市场上大多数工具都不包括的开箱即用功能。 此外,用户可以选择从多个基于订阅的计划或按需计划中选择最适合组织需求的计划。

今天试试自己的负载视图!或者更好的是,与我们的性能工程师一起安排 现场演示 。 他们将带您一步一步地通过 LoadView 平台,并准确向您展示如何设置、配置和执行负载测试。

 

铀标志:迭戈·莫利纳(迪莫尔)/CC BY-SA(https://creativecommons.org/licenses/by-sa/4.0)