专业版tracTor 测试教程:自动化工具框架

⚡ 智能摘要

专业版tractor 是一个端到端的行为驱动测试框架,专为 AngularJS 应用程序构建,它结合了 Selenium 使用 Jasmine 和 WebDriver,测试人员可以驱动真实的浏览器,并验证 Angular 特有的元素是否符合标准。 Selenium 定位器无法到达。

  • 🔘 当前状态: 专业版tracTor 于 2023 年 8 月停止服务,因此新的套房应该…… CypressPlaywright 或 WebdriverIO。
  • ☑️ 前提课程: 安装 Node.js 和 Selenium 在运行 `npm install -g pro` 之前安装 WebDrivertrac托尔。
  • 两个文件: 每次运行都需要 conf.js 用于配置,spec.js 用于测试逻辑。
  • 🧪 角度定位器: by.model 和 by.binding 会访问 ng-model 和 ng-bind 元素。 Selenium 独自错过。
  • 🛠️ 司机经理: 更新 webdriver-manager,然后启动 webdriver-manager 服务 Selenium 在端口 4444 上。
  • 📊 报告: 茉莉花记者 JUnitXmlReporter 会生成 junitresults.xml 文件作为审计证据。

专业版tracTor 测试教程

什么是专业版tracTor测试?

专业版trac器 是一种自动化和端到端行为驱动的测试工具,在 测试与验证 AngularJS 应用程序,并作为解决方案集成商,结合了以下强大技术: SeleniumJasmine、WebDriver 等。Pro 的目的tracTor 测试不仅适用于测试 AngularJS 应用程序,也适用于编写自动化测试。 回归测试 也适用于普通的Web应用程序。

⚠️ 弃用通知: 专业版tractor是 已弃用并已存档支持已于 2023 年 8 月结束,Angular CLI 也放弃了其 Pro 版本。tracAngular 15 之后的 tor 构建器。选择 剧作家, Cypress对于新用户,可以使用 WebdriverIO 或 TestCafe。 端到端测试以下操作步骤适用于旧版套房。

为什么我们需要专业人士tracTor框架?

Java几乎所有Web应用程序都使用脚本。随着应用程序的增长, JavaScript 同时,应用程序的规模和复杂性也会增加。在这种情况下,测试人员要针对各种场景测试Web应用程序就变得非常困难。

有时使用以下方法很难捕获 AngularJS 应用程序中的 Web 元素 JUnit or Selenium WebDriver。

专业版tractor 是一个用 Node.js 编写的程序。 Java脚本和Node一起运行以识别AngularJS应用程序中的Web元素,并且它还使用WebDriver通过用户操作来控制浏览器。

那么,AngularJS应用程序究竟是什么呢?

AngularJS AngularJS 应用是指使用扩展 HTML 语法来表达 Web 应用组件的 Web 应用。它主要用于动态 Web 应用。与普通 Web 应用相比,这类应用的代码量更少,也更灵活。需要注意的是,AngularJS 1.x 已于 2021 年 12 月 31 日停止长期支持,因此这类应用如今已属于过时版本。

为什么我们不能使用常规方法查找 AngularJS 网页元素 Selenium WebDriver?

AngularJS 应用程序有一些额外的 HTML 属性,例如 ng-repeater、ng-controller、ng-model 等,这些属性并未包含在 .html 文件中。 Selenium 定位器。 Selenium 无法使用以下方式识别这些网络元素 Selenium 代码。所以,专业人士trac山顶上的托尔 Selenium 能够处理和控制Web应用程序中的这些属性。

专业版tractor 是一个面向 AngularJS 应用的端到端测试框架。大多数框架都侧重于执行测试。 单元测试 对于 AngularJS 应用程序,ProtracTor 专注于测试应用程序的实际功能。

在我们开始专业课程之前trac要使用 Tor,我们需要安装以下软件:

  1. Selenium: 你可以找到 Selenium 安装步骤 Selenium WebDriver 安装指南.
  2. NPM(Node.js): 我们需要安装 Node.js 才能安装 Pro。trac您可以在以下位置找到这些安装步骤: Node.js 下载和安装指南.

专业版trac托尔安装

步骤1) 打开命令提示符并输入 “npm install -g protrac托尔” 然后按Enter.

上述命令将下载必要文件并安装 Pro 版。trac客户端系统上的 tor,如下所示。

运行 `npm install -g pro` 后的命令提示符输出trac器

步骤2) 使用以下方法检查安装和版本 “专业tractor 版本设立的区域办事处外,我们在美国也开设了办事处,以便我们为当地客户提供更多的支持。“ 如果成功,它将显示如下图所示的版本。如果不成功,请再次执行步骤 1。

为tractor --version 打印已安装的 ProtracTor 版本号

(步骤 3 和 4 是可选的,但为了更好的练习建议这样做)

步骤3) 更新 WebDriver 管理器。WebDriver 管理器用于在特定浏览器中针对 Angular Web 应用程序运行测试。tracTor 已安装,WebDriver 管理器需要更新到最新版本。可以通过在命令提示符中运行以下命令来完成此操作。

webdriver-manager update

驱动程序二进制文件下载如下所示。

webdriver-manager 更新正在下载最新的浏览器驱动程序二进制文件

步骤4) 启动 WebDriver 管理器。此步骤将在后台运行 WebDriver 管理器,并监听通过 pro 运行的任何测试。trac托尔。

测试运行完毕后,WebDriver 会自动在相应的浏览器中加载它。使用以下命令启动管理器。

webdriver-manager start

控制台会报告监听地址。

webdriver-manager 开始启动 Selenium 后台独立服务器

现在,如果你去以下地方 URL (http://localhost:4444/wd/hub/static/resource/hub.html在浏览器中,您实际上会看到 WebDriver 管理器在后台运行。

Selenium WebDriver 中心页面在本地主机 4444 端口上运行

使用 Pro 进行 AngularJS 应用程序测试示例trac器

驱动程序管理器运行后,ProtracTor 运行需要两个文件,一个是 规格 文件和 配置 文件中。

  1. 配置文件此文件有助于专业人士trac使用 Tor 连接到测试文件(specs.js)所在的目录,并与 Selenium 服务器(Selenium 地址)。Chrome 是 Pro 的默认浏览器。trac托尔。
  2. 规格文件: 该文件包含与应用程序交互的逻辑和定位器.

步骤1) 我们必须开放 https://angularjs.org 并在“在此处输入名称”文本框中输入文本“GURU99”。

在 AngularJS 首页的文本框中输入名称 GURU99

步骤2) 在此步骤中,

  1. 输入名称“Guru99“
  2. 输出文本“你好 Guru可以看到99英寸。

AngularJS 页面渲染 Hello GURU99 输出文本

步骤3) 现在我们必须在输入名称后从网页中捕获文本,并需要与预期文本进行验证.

代码:

我们必须准备配置文件 (conf.js) 和 spec 文件 (spec.js) 正如刚才提到的。

spec.js 的逻辑:

describe('Enter GURU99 Name', function() {
 it('should add a Name as GURU99', function() {
 browser.get('https://angularjs.org');
 element(by.model('yourName')).sendKeys('GURU99');
  var guru= element(by.xpath('html/body/div[2]/div[1]/div[2]/div[2]/div/h1'));
expect(guru.getText()).toEqual('Hello GURU99!');
  });
});

Code spec.js 的解释:

  1. 描述('输入 GURU99 名称',function()描述语法来自 Jasmine框架这里的“describe”('输入 GURU99 名称')通常定义应用程序的组件,可以是类或函数等。在名为“输入 GURU99”的代码套件中,它只是一个字符串,而不是代码。
  2. it('应添加一个名称为 GURU99', function()
  3. 浏览器获取('https://angularjs.org')就像 Selenium WebDriver browser.get 将打开一个新的浏览器实例,并指定要使用的浏览器类型。 URL.
  4. element(通过.model('你的名字'))。发送密钥('GURU99')这里我们使用模型名称“yourName”查找网页元素,该名称是“的值”ng模型在网页上。请查看下面的屏幕截图——

页面源代码显示了 by.model 使用的 ng-model 属性值 yourName。

  1. var guru= element(by.xpath('html/body/div[2]/div[1]/div[2]/div[2]/div/h1')) 在这里我们使用 XPath的 并将其值存储在变量“guru”中.
  2. 期望(guru.getText())。等于('Hello GURU99!')最后,我们验证从网页上获取的文本(使用 gettext() )是否与预期文本一致。

conf.js的逻辑:

exports.config = {
  seleniumAddress: 'http://localhost:4444/wd/hub',
  specs: ['spec.js']
};

Code conf.js 的解释

  1. seleniumAddress: 'http://localhost:4444/wd/hub'配置文件告诉 Protrac托尔的位置 Selenium 交谈地址 Selenium WebDriver。
  2. specs: ['spec.js']这行告诉 Protrac测试文件 spec.js 的位置

执行 Code

首先,导航到 conf.js 和 spec.js 所在的文件夹,然后按照以下步骤操作。.

步骤1) 打开命令提示符。

步骤2) 确保 Selenium WebDriver 管理器已启动并运行。为此,请输入命令“webdriver-manager start”并按 Enter 键。.

命令提示符确认 Selenium WebDriver 管理器已启动并运行

(如果 Selenium WebDriver 未启动并运行,我们无法继续进行 Pro 测试。tractor 找不到用于处理 Web 应用程序的 WebDriver)

步骤3) 打开一个新的命令提示符并输入命令 “专业tractor conf.js” 运行配置文件。运行结果如下所示。

专业版trac符合规范的 tor 控制台输出以 pro 开头tractor conf.js

说明:

  • 这里专业版tractor 将执行包含给定 spec 文件的配置文件。
  • 我们可以看到 Selenium 服务器运行在“http://localhost:4444/wd/hub”我们在conf.js文件中给出了这个信息。
  • 另外,这里可以看到结果,有多少通过了,有多少失败了,如上面的截图所示.

合格的结果已经确认。接下来,我们来看一个不合格的结果。

步骤1) 打开并更改后,spec.js 应变为“'Hello change GURU99',如下所示。

spec.js 中更改之后 :

describe('Enter GURU99 Name', function() {
 it('should add a Name as GURU99', function() {
 browser.get('https://angularjs.org');
 element(by.model('yourName')).sendKeys('GURU99');
  var guru= element(by.xpath('html/body/div[2]/div[1]/div[2]/div[2]/div/h1'));
expect(guru.getText()).toEqual('Hello change GURU99!');
  });
});

步骤2) 保存 spec.js 文件并重复上述“执行”步骤 Code“ 部分

现在,执行上述步骤。

结果:

专业版tracTor 控制台输出显示失败的规范,并以字母 F 标记。

我们可以在屏幕截图中看到结果失败,标记为“F”,原因如下 “预期‘Hello GURU99!’等于‘Hello change GURU99!’。 此外,它还显示了执行代码时遇到的失败次数。

我们可以用 Selenium WebDriver?

有时可以使用 XPath 或 CSS 选择器定位 AngularJS 元素。 Selenium WebDriver。然而,这些元素是动态生成和重新绑定的,因此 Protrac对于 AngularJS 套件来说,tor 是更安全的选择。

使用 Jasmine Reporters 生成报告

专业版tracTor 支持 Jasmine 报告器。本节使用 JUnit使用 XmlReporter 自动生成 XML 格式的测试执行报告,请按照以下步骤操作。

Jasmine Reporter 的安装

有两种选择,本地或全球。

  1. 打开命令提示符执行以下命令进行本地安装
npm install --save-dev jasmine-reporters@^2.0.0

上述命令会将 jasmine-reporters 安装到本地,安装位置在命令运行的目录中。

  1. 打开命令提示符执行以下命令进行全局安装
npm install –g jasmine-reporters@^2.0.0

这里的记者是本地部署的。.

步骤1) 执行命令。

npm install --save-dev jasmine-reporters@^2.0.0

从下面的命令提示符中。

在项目文件夹中使用 npm 在本地安装 jasmine-reporters

步骤2) 检查目录中的安装文件夹. 如果成功安装,则“Node_modules”应该可用,如下面的快照所示。

Node_modules 文件夹列表,确认 jasmine-reporters 已安装

步骤3) 在现有的conf.js文件中添加以下彩色代码

exports.config = {
      seleniumAddress: 'http://localhost:4444/wd/hub',
      capabilities: {
          'browserName': 'firefox'
      },
      specs: ['spec.js'],
     framework: 'jasmine2' ,
      onPrepare: function() {
          var jasmineReporters = require('C:/Users/RE041943/Desktop/guru/node_modules/jasmine-reporters');
          jasmine.getEnv().addReporter(new jasmineReporters.JUnitXmlReporter(null, true, true)
          );
     }
   };

代码说明:

在代码中,我们正在生成报告“JUnitXML 报告器”并提供存储报告的路径。

步骤4) 打开命令提示符并执行命令 为tractor conf.js。

专业版trac生成该文件的 tor 运行 JUnit conf.js 更新后的 XML 报告

步骤5) 当您执行上述代码时,将在所提及的路径中生成 junitresults.xml。

在配置的输出路径中创建了 junitresults.xml 报告文件

步骤6) 打开 XML 并验证结果。失败消息在结果文件中显示为我们的 测试用例 测试失败。测试用例失败的原因是“spec.js”中的预期结果与网页的实际结果不匹配。

junitresults.xml 文件内容显示了失败测试用例的失败消息。

步骤7) 使用 junitresult.xml 文件作为证据或结果文件。

专业版tracTor 与现代测试自动化替代方案

自 ProtracTor 已停止更新,因此规划新套件的团队需要了解它与 Angular 项目目前迁移到的框架相比如何。下表比较了 Pro 和 Pro。tractor 与以下常见问题解答中最常出现的三种替代方案。

骨架 状态 语言支持 浏览器引擎 Angular 特有的定位器
专业版trac器 已弃用,将于2023年8月终止服务 Java脚本, TypeScript 铬, Firefox,通过 IE Selenium 网络驱动程序 按模型、按绑定、按重复器
Cypress 积极维护 Java脚本, TypeScript 铬, Firefox,边缘 无;依赖于 CSS 或数据属性
剧作家 积极维护 Java脚本, TypeScript, Python, Java, 。网 铬, FirefoxWebKit 无;依赖于 CSS、文本或角色选择器
网络驱动程序IO 积极维护 Java脚本, TypeScript 铬, Firefox、WebKit 通过 WebDriver 或 DevTools 无;依赖于 CSS 或数据属性

拥有现有职业球员的球队tracTor套件通常移动速度最快 网络驱动程序IO由于其命令风格和 Selenium基于驱动程序的管理与 Pro 保持接近tracTor 测试人员早已知道这一点。刚起步或需要最快完成测试的团队,通常会选择…… Cypress 或者改称剧作家。

常见问题

否。专业人士tracTor 已于 2023 年 8 月停止维护,不再接收任何更新或安全修复。Angular 在 15 版本之后移除了命令行构建器,因此任何剩余的构建器套件都应视为遗留代码。

Angular 添加了构建器 CypressNightwatch 和 WebdriverIO 从版本 12 开始。 剧作家 TestCafe也很受欢迎,Amadeus也发布了一款专业版。tracTor 到 Playwright 的转换器,可自动完成大部分重写工作。

`by.model`、`by.binding`、`by.repeater`、`by.exactBinding` 和 `by.options` 直接读取 AngularJS 指令数据。标准 Selenium by.css、by.id 和 by.xpath 等定位器在同一规范中仍然可用。

AI辅助自愈功能会将失效的定位器与实时DOM进行比较并自动修复,而机器学习则会将重复失效的定位器分组,以便在运行过程中将真正的缺陷与时间噪声区分开来。 自动化测试.

Copilot 和类似的智能助手可以快速地将描述块、element() 调用和预期断言重写为 Playwright 定位器,但每个生成的规范仍然需要人工审查等待、断言和 测试用例 覆盖。

总结一下这篇文章: