6.2 ServiceNow 自动化测试框架 (ATF)

6.2 自动化测试框架 ATF

  • 目录
    • 一、自动化测试框架 (ATF) 简介
      • 1. Automated Test Framework(ATF)
      • 2. 使用自动化测试框架 (ATF)的好处:
    • 二、 ATF的测试类型
      • 1. 功能业务逻辑测试
      • 2. 回归测试
      • 3. 浏览器兼容性测试
      • 4. 服务器端 Jasmine测试
    • 三、 ATF测试的基本组成部分和元素定义
      • 1. 测试套件
      • 2. 测试
      • 3. 测试步骤
    • 四、 分配ATF角色
      • 1. 测试设计人员
      • 2. 测试管理员
      • 3. Web服务测试员
    • 五、 开发ATF测试
      • 1. 确定每个进程/应用程序的基本功能
      • 2. 创建测试以验证基本功能
      • 3. 将测试打包到套件中
      • 4. 运行或安排测试执行
      • 5. 监控和修复问题
    • 六、 运行ATF测试和测试套件
      • 1. 了解基本知识
        • ① 每个测试都是隔离的
        • ② 测试步骤之间传递值
        • ③ 被模拟的用户未被模拟
        • ④ 测试数据回滚
      • 2. 将其排除在生产环境之外
      • 3. ATF无法在生产实例上运行的原因
    • 七、 通过快速启动测试加速开发
      • 1. 代表一小组关键用例
      • 2. 使用 ServiceNow 应用程序的演示数据轻松安装
      • 3. 可用作模板来构建和定制与您独特流程相匹配的测试和测试套件
      • 4. 复制并配置后,针对实例特定数据运行
      • 5. 如果 ServiceNow 更改了原始测试,请注释您的测试副本

目录

一、自动化测试框架 (ATF) 简介

1. Automated Test Framework(ATF)

ServiceNow 自动化测试框架(Automated Test Framework(ATF))是ServiceNow平台上的一种自动化测试工具,旨在帮助开发人员和测试人员快速、高效地创建和运行测试用例。ATF允许用户记录和回放交互式测试,同时还支持JavaScript编写的自定义测试脚本。通过ATF,用户可以轻松地执行端到端的集成测试,确保应用程序在ServiceNow平台上的正常运行。
ATF提供了丰富的功能,包括创建测试套件、记录测试步骤、管理测试数据、执行测试、生成测试报告等。它还提供了与ServiceNow平台的无缝集成,可以轻松访问平台的各种对象和数据,从而更好地支持测试需求。

总的来说,ATF为ServiceNow平台上的应用开发和部署提供了自动化测试的解决方案,有助于提高开发质量、减少缺陷,并加速发布周期。

2. 使用自动化测试框架 (ATF)的好处:

  1. 提高生产率
    ATF可以为大多数手工测试用例提供覆盖,减少 Servicen升级周期,并加快生产时间。回归测试可以由单个系统管理员运行,而不需要特定的业务流程专业知识。还可以创建可重用的测试模板,以加快通常执行的测试模式的开发。
  2. 易用性
    ATF是为技术和非技术用户设计的。虽然脚本支持复杂的测试,但ATF的目标是作为无代码或低代码的解决方案。使用ATF不需要额外的工具或软件。
  3. 更好的精度测试
    ATF提供了创建可重用测试计划的能力,以减少手工工作测试是基于可靠的最佳实践开发的,同时避免了不一致的常见用户测试错误。

二、 ATF的测试类型

1. 功能业务逻辑测试

功能业务逻辑测试(Functional business logic testing)是验证软件应用程序中的业务逻辑是否按照预期工作。在这种测试中,测试人员会检查应用程序的各种功能是否符合业务需求和规格说明,以确保软件能够正确地处理各种输入,并产生预期的输出。

功能业务逻辑测试通常涉及以下方面:

  1. 验证业务规则:测试人员会检查应用程序中实施的各种业务规则和逻辑,确保它们按照要求进行操作。
  2. 数据验证:测试人员会验证应用程序是否正确地处理各种类型的数据,包括边界情况、无效输入等。
  3. 流程测试:测试人员会测试应用程序的各种功能流程,例如用户交互、工作流程等,以确保整个流程正常运行。
  4. 异常处理:测试人员会测试应用程序对异常情况的处理能力,包括错误输入、系统故障等。


通过进行功能业务逻辑测试,可以确保软件应用程序符合业务需求,功能正常且稳定。这有助于提高软件质量,减少潜在的错误和问题,并增强用户体验。

2. 回归测试

回归测试(Regression Testing),旨在确保新的代码变更或软件更新不会对现有功能产生负面影响。其基本原理是当软件进行了修改、更新或添加新功能后,通过重新运行之前已经通过的测试用例,来验证修改后的代码是否仍然能够正常运行,并且未引入新的错误或问题。

回归测试通常用于以下情况:

  1. 当软件发生变更时,包括修复缺陷、增加新功能、优化代码等。
  2. 当环境变更时,例如操作系统升级、数据库迁移等。
  3. 当配置变更时,例如服务器设置调整、网络设置变更等。


回归测试的目标是确保软件在经过改动后,仍然保持原有的功能不受影响,避免新的问题或错误出现。
通过自动化回归测试,可以提高效率,减少手动测试的工作量,同时更快地发现潜在的问题并及时修复,有助于保证软件质量和稳定性。

3. 浏览器兼容性测试

浏览器兼容性测试(Browser compatibility testing)是指在不同的Web浏览器和操作系统环境下测试网站或Web应用程序的能力。由于不同的浏览器(如Chrome、Firefox、Safari、Edge等)和不同的操作系统(如Windows、MacOS、iOS、Android等)对网页的渲染方式、支持的技术标准和性能表现有所差异,因此进行浏览器兼容性测试至关重要。

在进行浏览器兼容性测试时,测试人员会验证网站或Web应用程序在各种主流浏览器和操作系统下的展示效果、功能正常性和用户体验。这包括但不限于以下方面:

  1. 页面布局:确保页面在不同浏览器下的显示效果一致,并且符合设计规范。
  2. 功能测试:验证各种功能,如表单提交、按钮点击、动画效果等,在各种浏览器下正常工作。
  3. 兼容性测试:检查网站或应用程序在不同浏览器版本和操作系统版本下的兼容性。
  4. 响应式设计:确保网站具有良好的响应式设计,在各种设备上都能够正确显示和操作。


通过进行浏览器兼容性测试,可以确保用户在不同的浏览器和设备上都能够获得一致的体验,提高用户满意度和网站可访问性。这有助于确保网站的稳定性和可靠性,同时扩大网站的受众范围。

4. 服务器端 Jasmine测试

服务器端 Jasmine测试(Server-side Jasmine testing)是指使用Jasmine测试框架来进行服务器端JavaScript代码的单元测试。Jasmine是一个流行的行为驱动开发(BDD)测试框架,它可以用于编写清晰、结构良好的测试用例,并提供丰富的断言和测试工具。

在服务器端JavaScript应用程序中,例如Node.js应用程序,开发人员通常会使用Jasmine框架来编写各种单元测试,以确保服务器端代码的功能正确性、健壮性和稳定性。


服务器端Jasmine测试通常涉及以下方面:

  1. 单元测试:针对服务器端JavaScript代码中的各个模块、函数和方法编写单元测试,以验证其行为是否符合预期。
  2. 异步测试:针对包含异步操作的代码编写测试用例,例如异步API调用、文件系统操作等。
    模拟和存根:使用Jasmine框架提供的模拟和存根功能,模拟外部依赖或者创建虚拟环境来进行测试。
  3. 断言和期望:使用Jasmine框架提供的各种断言和期望功能来验证代码的行为和输出。


通过进行服务器端Jasmine测试,开发人员可以更加自信地进行代码重构、优化和功能扩展,因为有了一系列的测试用例来验证代码的行为。这有助于提高代码质量、减少潜在的错误,并促进持续集成和持续交付流程的顺利进行。

三、 ATF测试的基本组成部分和元素定义

1. 测试套件

测试套件(Test suites)通常用于组织需要进行回归覆盖的一系列测试用例。通过将相关的测试用例放入一个测试套件中,用户可以轻松地一次性执行整个回归测试,而不必手动逐一执行每个测试用例。这样可以节省时间,并确保所有相关的测试都被全面执行。
另外,测试套件也可以用于组织不同类型的测试,例如功能测试、性能测试、安全测试等,以便根据需要执行不同类型的测试。

测试套件表示一个或多个测试或其他测试套件的分组。子测试套件的层次结构可以是任何级别。同一个测试可以包含在多个测试套件中。但是,一个测试套件只能被分配个父测试套件。请添加图片描述

测试套件中的测试和子测试套件在表单底部的相关列表中标识。下例测试套件包含三个测试和一个子测试套件。

请添加图片描述

2. 测试

ATF测试(Tests)表示一组操作和断言,用于验证预期的最终结果。测试中的每个动作或断言由单个测试步骤表示。虽然对测试中包含的测试步骤的数量没有限制,但通常创建较小的集中测试比创建较大的广泛测试要好。

测试中的一些测试步骤是在客户端用户界面上执行的,而其他测试步骤是在服务器上执行的。单个测试可以包括客户端和服务器的操作和断言。在客户端上执行的测试步骤模拟用户交互,例如打开表单。在服务器上执行的测试步骤在后台执行,涵盖了广泛的可能性。

请添加图片描述

下例创建的ATF测试,以在标准变更请求转换为紧急变更请求时验证其自定义工作流的最终结果。测试步骤在表单底部的相关列表中进行了标识。
注意,第一个测试步骤是 Create a User。这个测试步骤允许测试创建和模拟执行工作的用户。它可以非常有助于验证正确的授权是否到位,以实现预期的测试结果。

请添加图片描述
创建用户动态添加新用户,为其分配指定的角色,然后(可选地)模拟用户。一旦测试完成,创建的用户将被删除为了帮助测试保持独立,不依赖于特定的用户和角色,建议在测试开始时使用创建用户并模拟。

3. 测试步骤

测试步骤(Test steps)表示测试中的单个操作或断言,例如创建用户、打开表单或验证字段值。使用不同的测试步骤配置创建不同类型的测试步骤。测试步骤配置定义了毎种类型的操作或断言的行为和特征。

测试设计器根据指定的测试步骤配置创建测试步骤。不需要任何代码,他们就可以根据测试步骤配置提供的行为和特征来配置测试步骤。例如,测试设计器可以配置“创建用户”测试步骤来创建和模拟名为 Beth anglin的用户Servicenow提供了一组大的标准测试步骤配置。额外的测试步骤配置也可以由ATF测试管理员创建。

请添加图片描述

下面的测试步骤,以验证变更请求上的 State字段具有 Authorize的值。
注意,测试步骤是使用测试步骤配置字段值验证创建的为了验证适当的字段值,字段值验证测试步骤配置将表和条件合并为测试设计器要配置的字段。

请添加图片描述

四、 分配ATF角色

ATF开发职责分为三个角色。每个角色都有自己的一套能力。为了运行ATF测试并查看测试结果,必须为您分配一个ATF角色。

1. 测试设计人员

测试设计人员(Test Designer)是 ServiceNow项目中最常见的ATF角色。
分配了测试设计人员角色的任何团队成员都可以创建和运行测试和测试套件。大多数应用程序开发人员都被分配了这个角色,因为应该为所有重要的定制创建ATF测试。
虽然编码技能不是强制性的,但调试测试需要高级的 ServiceNow和ATF知识。

Test Designers可以执行以下功能:
· 创建、编辑和删除测试套件
· 创建、编辑和删除测试
· 使用现有测试步骤配置向测试添加测试步骤(新的测试步骤配置只能由测试管理员创建)
· 运行测试和测试套件
·查看测试结果
·查看ATF系统属性

所需编码技能: Low-code 或 No-code

请添加图片描述

2. 测试管理员

测试管理员(Test Administrator)确保适当地设置ATF系统属性,以控制ATF环境在实例中的操作方式。管理员还定义保留策略,以确定测试结果应该保留多长时间。
测试管理员所需的大部分时间涉及到创建新的测试步骤配置。一旦创建,测试步骤配置就可以被任何ATF角色重用。项目需要的新测试步骤配置越多,对测试管理员的影响就越大。
由于新的測试步骤配置是使用脚本创建的,所以测试管理员应该具有高级的编码经验。由于他们的经验,他们经常被拉进来帮助测试设计人员调试失败的测试或创建新的测试。


测试管理员可以执行测试设计器的所有功能,以及以下功能:
· 编辑ATF系统属性
· 创建测试步骤配置

编码技能要求: Pro-code

请添加图片描述

3. Web服务测试员

Web服务测试员(Web Service Tester)构建web服务测试。该角色提供对web服务模块的访问,以促进测试开发。通常,web服务测试使用REST集成然而,像SOAP这样的技术可以通过脚本来使用。所需的Web服务测试人员的数量取决于所实现的Web服务集成定制的数量。
由于web服务集成可能需要使用脚本,因此Web服务测试人员应该具有高级编码经验。由于他们的经验,他们经常被拉进来帮助测试设计人员调试失败的测试或创建新的测试。

Web服务测试人员可以执行测试设计器的所有功能,以及以下功能:
· 构建web服务测试

编码技能要求: Pro-code

请添加图片描述

五、 开发ATF测试

开发ATF测试遵循以下流程:

在这里插入图片描述

1. 确定每个进程/应用程序的基本功能

关注ServiceNow实例独有的功能。在确定什么是必要的时候,要考虑风险。权衡验证的细节和需要进行的测试维护。

2. 创建测试以验证基本功能

一旦对新特性的更改最小,就开始创建测试。如果您同时开发新功能和ATF测试,那么要意识到任何达代更改都可能导致额外的ATF开发工作。

3. 将测试打包到套件中

将测试组织打包到可以一起运行的测试套件中。使用现有的测试套件或创建一个新的测试套件。相同的测试可以分组到多个测试套件中。

请添加图片描述

4. 运行或安排测试执行

ATF测试套件既可以按需运行,也可以按计划运行。ATF测试只能按需运行。测试中的测试步骤在客户端或服务器上运行。在客户端用户界面上执行的测试步骤由客户端测试运行器在单独的浏览器窗口内执行。在服务器上执行的测试步骤是针对实例执行的。

请添加图片描述

5. 监控和修复问题

运行测试后,查看测试结果。在测试套件、测试和测试步骤级别提供详细的测试结果。运行时截图包含在测试结果中,以帮助监控和调试任何问题。

请添加图片描述

六、 运行ATF测试和测试套件

1. 了解基本知识

测试可以与其他测试同时运行。但是,在测试套件中运行的测试将依次运行,一个接一个。
如果测试套件中的某个测试失败,测试设计器可以指定测试套件中的其余测试是否应继续运行,还是应中止测试套件。

要了解更多关于ATF测试套件运行时发生的情况,请稍微深入了解下面的图表。选择每个项目的标记,以了解更多关于运行ATF测试套件的信息。

在这里插入图片描述

① 每个测试都是隔离的

每个ATF测试独立运行,与任何其他测试隔离。一个测试的值不能作为值转移到另一个测试。测试结果是测试运行后唯一保留的内容。

请添加图片描述

② 测试步骤之间传递值

一个测试步骤的输出值可以作为同一测试中另一个测试步骤的输入值。输出值不能用作其他测试中测试步骤的输入值。

请添加图片描述

③ 被模拟的用户未被模拟

ATF测试可以模拟用户进行工作。被模拟的用户将在测试结束时自动取消模拟,或者在测试期间稍后模拟另一个用户时自动取消模拟。

请添加图片描述

④ 测试数据回滚

一旦每个ATF测试完成,在单个测试期间所做的任何实例更改都将回滚:
· 删除新记录
· 删除的记录恢复
· 更新后的记录恢复到以前的值

请添加图片描述

2. 将其排除在生产环境之外

ATF框架不应在Servicenow生产实例环境中运行。
ATF测试和测试套件应仅在非生产实例中运行验证生产实例通常涉及利益相关者执行的用户接受测试(UAT)
对于所有 Servicenow实例,启用测试和测试套件运行的ATF系统属性默认为关闭

在这里插入图片描述

3. ATF无法在生产实例上运行的原因

ATF无法在生产实例上运行的一些重要原因包括:
· 运行ATF测试会降低实例性能
· 在回滚之前,用户可以看到在ATF测试中所做的更改
· ATF测试更改的数据将触发可操作事件,例如向客户发送电子邮件通知或向经理发送批准
· 在冒充用户时,可以看到敏感的生产数据
· 即使在数据回滚之后,数据更改的审计历史也会保留

尽管ATF不是在生产环境中运行的,但ATF开发对象仍然被提升到生产实例中。这确保了当生产实例被克隆到开发或测试实例时,它们将被包括在内。

七、 通过快速启动测试加速开发

1. 代表一小组关键用例

2. 使用 ServiceNow 应用程序的演示数据轻松安装

3. 可用作模板来构建和定制与您独特流程相匹配的测试和测试套件

4. 复制并配置后,针对实例特定数据运行

5. 如果 ServiceNow 更改了原始测试,请注释您的测试副本

交付时,快速启动测试是非活动的只读模板。只有在使用相应的 Servicenow插件提供的演示数据运行时,它们才会产生一个通过的结果。
要允许快速启动测试成功运行针对您的实例数据,您必须首先创建快速启动测试的副本。
一旦复制了快速启动测试,您就可以应用任何所需的更改并运行测试。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/760231.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

详解:创业老阳推荐的Temu蓝海项目还能赚钱吗?

在当前全球化的背景下,跨境电商行业日益繁荣,成为了许多创业者关注的焦点。其中,Temu项目凭借其独特的商业模式和强大的市场潜力,备受瞩目。尤其是当知名创业导师老阳推荐Temu项目时,更是激起了广大创业者的热情和好奇…

机器人路径规划:基于冠豪猪优化算法(Crested Porcupine Optimizer,CPO)的机器人路径规划(提供MATLAB代码)

一、机器人路径规划介绍 移动机器人(Mobile robot,MR)的路径规划是 移动机器人研究的重要分支之,是对其进行控制的基础。根据环境信息的已知程度不同,路径规划分为基于环境信息已知的全局路径规划和基于环境信息未知或…

应急响应-Linux(1)

应急响应-Linux(1) 黑客的IP地址 思路: 一般系统中马之后会有进程连接黑客的主机,可以使用netstat -anpt查看下当前进程的连接,此处查看到没有后 ,可以从系统服务开始查找,系统的服务日志一般都会保存相关访问信息&…

SAP CAP篇十五:写个ERP的会计系统吧,Part II

本文目录 本系列文章目标开发步骤数据库表设计初始数据初始数据:AccountCategories初始数据:AccountUsages初始数据:ChartOfAccounts初始数据:AccountSubjects Service 定义生成Fiori AppApp运行 本系列文章 SAP CAP篇一: 快速创…

P8597 [蓝桥杯 2013 省 B] 翻硬币 Python

[蓝桥杯 2013 省 B] 翻硬币 题目背景 小明正在玩一个“翻硬币”的游戏。 题目描述 桌上放着排成一排的若干硬币。我们用 * 表示正面,用 o 表示反面(是小写字母,不是零),比如可能情形是 **oo***oooo,如果…

mysql 学习

本文来自于《sql必知必会》 所需要的文件教程连接 本站其他的小伙伴 第一课 了解sql 数据库基础 什么是数据库 数据库(database) 保存有组织的数据的容器(通常是一个文 件或一组文件)。 表 表(table)…

npm常用命令详解

npm(Node Package Manager)是 Node.js 的包管理器,用于管理项目中的依赖(libraries, frameworks, tools)。以下是一些 npm 的常用命令及其详解: 1. npm init 作用:初始化一个新的 Node.js 项目…

MQTT Keep Alive机制

MQTT 协议是承载于 TCP 协议之上的, 而 TCP 协议以连接为导向, 在连接双方之间, 提供稳定、 有序的字节流功能。 但是, 在部分情况下, TCP 可能出现半连接问题。 所谓半连接, 是指某一方的连接已经断开或者…

【ppt技巧】PPT转换为图片,方法有哪些?

想要将ppt文件转换为图片,其实很简单,一起来看一下如何操作吧! 方法一: 使用格式转换器,有些文件格式转换器,支持ppt转换为图片。 方法二: 不需要转换器,直接在ppt中进行操作即可…

Java基础知识总结(9)

快速排序 3 1 2 5 4 6 重复第一轮的过程,应该得到如下序列: 2 1 3 5 4 6 OK,现在3已经归位。接下来需要处理3左边的序列: 2 1 3 6 处理之后,2已经归位,序列“1”只有一个数,也不需要进行任何…

可观测性体系建设后,该如何挖掘数据及工具价值?

在现代企业的运维管理中,构建高效且可靠的可观测性体系是保障系统稳定性和业务连续性的关键。然而,运维团队成员的技术能力参差不齐往往成为实现这一目标的障碍。尤其在处理复杂系统故障时,高度依赖专业知识和经验的可观测性工具很难被全员有…

j-vxe-table设置

1.设置按键回车箭头tab健设置 :mouse-config"{selected: true}" :keyboard-config"{ isArrow: true, isEnter: true, isEdit: true,isTab:true}" 2 表格编辑设置 :edit-config"{trigger: this.triggerFlag, mode: row, showIcon: false , active…

Java 基础 反射

什么是反射? 反射是各类框架的灵魂,允许我们在JVM运行时提供分析类,操作类的能力。 反射是一种在运行时检查和修改类、方法、属性等程序结构的能力。通过反射,可以动态地获取和操作程序的元数据,包括类的字段、方法、…

如何用 C++ 部署深度学习模型?

深度学习模型通常在诸如Python这样的高级语言中训练和验证,但在实际生产环境部署时,往往需要更高的执行效率和更低的资源占用。C作为一款性能卓越、低级别的编程语言,是部署深度学习模型的理想选择之一。本文将详细介绍如何在C环境下加载和运…

opengl日记11-opengl的transformtions变换示例

文章目录 环境代码CMakeLists.txt文件内容不变。vertexShaderSource.vsmain.cpp 总结参考 环境 系统&#xff1a;ubuntu20.04opengl版本&#xff1a;4.6glfw版本&#xff1a;3.3glad版本&#xff1a;4.6cmake版本&#xff1a;3.16.3gcc版本&#xff1a;10.3.0 在<opengl学…

电子资金转账系统的分类、应用及其对银行业的影响

科技的飞速发展&#xff0c;计算机网络技术已广泛应用于各个领域&#xff0c;其中之一就是电子资金转账&#xff08;Electronic Funds Transfer&#xff0c;简称EFT&#xff09;系统。EFT系统作为金融业务电子化的重要实现手段&#xff0c;正逐步改变着传统银行业务的运作方式&…

Blender 3D建模要点

3d模型可以为场景的仿真模拟带来真实感&#xff0c;它还有助于更轻松地识别场景中的所有内容。 例如&#xff0c;如果场景中的所有对象都是简单的形状&#xff0c;如立方体和圆形&#xff0c;则很难在仿真中区分对象。 1、碰撞形状与视觉形状 像立方体和球体这样的简单形状&a…

开发指南015-前端缓存的信息

平台前端架构启动后&#xff0c;在store里存储了很多信息&#xff0c;可以通过getter取到&#xff1a; 1)访问token import { getToken } from /utils/qlm_auth getToken()可以获取该值 为空则没有登录 2) 用户信息 this.$store.getters.userId // 用户ID this.$sto…

大厂面试-- [VueReact] 对虚拟DOM的理解?虚拟DOM主要做了什么?虚拟DOM本身是什么?

什么是虚拟DOM ​ 从本质上讲&#xff0c;Virtual Dom是一个Javascript对象&#xff0c;通过对象的方式来表示DOM结构。将页面的状态抽象为JS对象的形式&#xff0c;配合不同的渲染工具&#xff0c;将使跨平台渲染成为可能。通过事物处理机制&#xff0c;将多次DOM修改的结果一…

鸿蒙Harmony应用开发—ArkTS-属性动画

组件的某些通用属性变化时&#xff0c;可以通过属性动画实现渐变过渡效果&#xff0c;提升用户体验。支持的属性包括width、height、backgroundColor、opacity、scale、rotate、translate等。布局类改变宽高的动画&#xff0c;内容都是直接到终点状态&#xff0c;例如文字、can…