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插件提供的演示数据运行时,它们才会产生一个通过的结果。
要允许快速启动测试成功运行针对您的实例数据,您必须首先创建快速启动测试的副本。
一旦复制了快速启动测试,您就可以应用任何所需的更改并运行测试。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

IBM SPSS Statistics for Mac v27.0.1中文激活版

IBM SPSS Statistics for Mac是一款功能强大的统计分析软件,专为Mac用户设计,用于数据分析和决策支持。该软件拥有直观易用的界面和丰富多样的统计工具,使得用户可以轻松进行数据处理、分析和解释。 软件下载:IBM SPSS Statistics…

JQuery EasyUI DataGrid行添加水印

代码 css: .water-mark::after {content: 有异议;position: absolute;left: 460px;top: 40px;color: rgb(255 0 0);transform: rotate(-25deg);pointer-events: none;z-index: 10;} js: $(#dgData).datagrid({loadMsg: 数据加载中,请稍后……,// fitColumns: true,…

使用工具类简单快速导出复杂的Excel,以及下载Excel 模板

Gitee 地址如下&#xff1a; https://gitee.com/xia-lijun/export-Excel.githttps://gitee.com/xia-lijun/export-Excel.git 一&#xff1a;首先引入pom.xml 依赖 <dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-web</artifact…

Linux:Prometheus+Grafana+睿象云告警平台(3)

在上一章我进行了Prometheus和Grafana的基础搭建以及部署 Linux&#xff1a;Prometheus的源码包安装及操作&#xff08;2&#xff09;-CSDN博客https://blog.csdn.net/w14768855/article/details/136855988?spm1001.2014.3001.5501 1.注册 在监控中必不可少的就是监控告警&am…

基于深度学习的心律异常分类系统设计——算法设计

基于深度学习的心律异常分类系统——算法设计 第一章 研究背景算法流程本文研究内容 第二章 心电信号分类理论基础心电信号产生机理MIT-BIH 心律失常数据库 第三章 心电信号预处理心电信号噪声来源与特点基线漂移工频干扰肌电干扰 心电信号读取与加噪基于小波阈值去噪技术的应用…

Linux下Docker部署中间件(Mysql、Redis、Nginx等)

我的自备文件 文件传输 内网下直接上传很慢 使用scp命令将另一台服务器上的文件传输过来&#xff1b;在已有文件的服务器往没有文件的服务器传输 scp -r 传输的文件夹/文件 root要传输的地址:放置的地址 scp -r tools root172.xx.x.xxx:/data/ 安装二进制文件、脚本及各中间件…

ubuntu - 编译 linphone-sdk

业务需求需要定制sdk&#xff0c;首先声明我们需要的是在Android4.4上跑的sdk&#xff0c;因此本次编译的sdk最低支持为19&#xff08;不同版本需要的环境不一致&#xff09;&#xff0c;编译过程较容易&#xff0c;难点在于环境配置 环境准备 Ubuntu 18.04.6 android-sdk_r24.…

机器学习lgbm时间序列预测实战

完整代码&#xff1a; from sklearn import preprocessing import random from sklearn.model_selection import train_test_split from sklearn.preprocessing import MinMaxScaler from sklearn import preprocessing from datetime import datetime import time import mat…

Kafka Consumer 消费消息和 Rebalance 机制

Kafka Consumer Kafka 有消费组的概念&#xff0c;每个消费者只能消费所分配到的分区的消息&#xff0c;每一个分区只能被一个消费组中的一个消费者所消费&#xff0c;所以同一个消费组中消费者的数量如果超过了分区的数量&#xff0c;将会出现有些消费者分配不到消费的分区。消…

探索数据结构:顺序栈与链式栈的原理、实现与应用

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ &#x1f388;&#x1f388;养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; 所属专栏&#xff1a;数据结构与算法 贝蒂的主页&#xff1a;Betty’s blog 1. 栈的定义 栈简单来说就是一种只允许在一端进行操作(插入与删除&…

JNDI注入原理及利用IDEA漏洞复现

&#x1f36c; 博主介绍&#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 hacker-routing &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】 &#x1f389;点赞➕评论➕收…

使用Excel创建高效的库存管理表格及优化技巧

库存管理对于企业和组织来说至关重要。Excel作为一款功能强大且广泛使用的电子表格软件&#xff0c;为库存管理提供了灵活性和可定制性。本文将进一步扩展之前的内容&#xff0c;详细介绍如何使用Excel创建高效的库存管理表格&#xff0c;并提供一些优化技巧&#xff0c;帮助您…

FANUC机器人某个轴编码器损坏时进行单轴零点标定的具体方法

FANUC机器人某个轴编码器损坏时进行单轴零点标定的具体方法 前提: FANUC机器人编码器或其线路有损坏,一般先将机器人移动至零点位置,编码器相关部件更换完毕后,直接进行零点标定即可。但是对于突发的状况,这种方法显然是不行的,比如在生产过程中突然发生碰撞导致编码器相…

【Flutter学习笔记】10.2 组合现有组件

参考资料&#xff1a; 《Flutter实战第二版》 10.2 组合现有组件 在Flutter中页面UI通常都是由一些低级别组件组合而成&#xff0c;当我们需要封装一些通用组件时&#xff0c;应该首先考虑是否可以通过组合其他组件来实现&#xff0c;如果可以&#xff0c;则应优先使用组合&…

就业班 第二阶段 2401--3.19 day2 DDL DML DQL 多表查询

在mysql库里的语句 \G 竖着排列 ; \g 横着排列 数据库用户组成 双单引号单都行 -- sql的注释 创建mysql用户&#xff1a;&#xff08;兼容5.7 8.0 &#xff09; create user root% identified by Qwer123..; grant all on *.* to root%; flush privileges; mysql 5.7 grant …

ubuntu將en01變成eth0的形式

文章目录 前言一、操作步驟1、打開grub文件2、輸入更新指令3、查看結果 二、使用步骤总结 前言 一、操作步驟 1、打開grub文件 使用管理員權限打開&#xff0c;添加新內容 sudo gedit grub2、輸入更新指令 sudo update-grub3、查看結果 使用ifconfig查看是否修改成功&…

Python使用PaddleSpeech实现语音识别(ASR)、语音合成(TTS)

目录 安装 语音识别 补全标点 语音合成 参考 PaddleSpeech是百度飞桨开发的语音工具 安装 注意&#xff0c;PaddleSpeech不支持过高版本的Python&#xff0c;因为在高版本的Python中&#xff0c;飞桨不再提供paddle.fluid API。这里面我用的是Python3.7 需要通过3个pip…

第九节HarmonyOS 常用基础组件31-Toggle

1、描述 组件提供勾选框样式、状态栏样式以及开关样式。 2、子组件 仅当ToggleType为Button时可包含子组件。 3、接口 Toggle(options: { type: ToggleType , isOn?: boolean}) 4、参数 参数名 参数类型 必填 描述 type ToggleType 是 开关的样式。 isOn boole…

ajax重复请求状态为已取消

问题 点击按钮&#xff0c;打开浏览器控制台发现发出了重复请求。 分析&#xff1a; <button onclick"query()">查询</button>错误原因是在form表单中使用了button标签并且增了点击事件&#xff0c;会导致请求被重复发起。 解决办法&#xff1a; &…

Avue框架实现图表的基本知识 | 附Demo(全)

目录 前言1. 柱状图2. 折线图3. 饼图4. 刻度盘6. 仪表盘7. 象形图8. 彩蛋8.1 饼图8.2 柱状图8.3 折线图8.4 温度仪表盘8.5 进度条 前言 以下Demo&#xff0c;作为初学者来说&#xff0c;会相应给出一些代码注释&#xff0c;可相应选择你所想要的款式 对于以下Demo&#xff0c…