低代码平台之流程自动化测试

news2024/11/15 17:45:17

随着低代码平台的快速发展,开发人员可以便捷、快速地开发流程应用程序,由于业务流程的复杂化和业务需求的不断变化,对业务流程进行优化和改进将更加频繁,在这个过程中,就要求企业的流程测试的效率和质量需要跟上低代码流程开发的速度和变化频率,能让测试人员快速发现流程中的问题,使开发人员及时进行调整和优化,帮助企业更快速、更准确地进行流程测试,提高业务流程配置的效率和质量。

如何不依赖测试脚本,而是通过低代码平台自身的能力实现用例的自动生成;如何在流程发生变化时,能智能的完成用例的自动调整,是实现流程平台自动化测试的关键问题。

现有的通用自动化测试通常采用测试脚本编写的技术方案,测试脚本用于模拟用户在应用程序中执行的操作,以验证应用程序的功能和性能,测试脚本往往需要依赖人工编写,功能发生变化也需要人工修改用例,难点如下:

编写门槛高:测试脚本编写需要专业的技能和知识,需要具备编程语言的基础知识和熟练的编写技能,对于非技术人员可能难以掌握。

  • 编写成本高:编写自动化测试脚本需要投入大量的时间和精力,需要进行测试场景分析、测试脚本编写、调试等多个环节,编写过程繁琐。
  • 维护成本高:随着应用程序的版本升级、业务需求变化等原因,尤其是在业务流程变化频繁的情况下,测试用例需要不断地修改和调整,需要投入更多的时间和精力,耗费大量的时间和精力。

特别是在流程平台中,流程验证更加复杂,流程建设阶段需要对表单、网关、审批权限配置的准确性做一次验证,复杂的流程需要频繁切换配置态与运行态、频繁切换工号,需要编写大量的用例数据,复杂流程场景测试数据多,更新应用经常需要做流程回归测试,重复工作多,费时费力。

浩鲸灵犀开发平台是浩鲸科技自主研发的低码平台,本文以灵犀平台为基础介绍低代码平台的流程自动化测试,包括流程健壮性测试用例自动生成,辅助批量生成业务流程场景测试用例,模拟多用户登录和模拟录入表单数据,驱动流程自动流转,判断是否符合预期;提供完整工具和方法支持,包含用例自动生成、分配测试用例、测试计划、执行测试计划、自动生成测试报告等;通过测试计划来批量执行,降低测试成本,提高业务加载上线效率。

流程平台的自动化测试,将流程平台测试用例的编排过程自动化、可视化,当流程发生变化时,能自动调整对应的测试用例,提高测试用例编排的效率和准确性。自动测试的过程包括以下步骤:

  • 步骤1:自动创建流程健壮性测试用例,用于验证流程平台本身功能的正确性,这类的测试用例完全由系统自动生成;
  • 步骤2:遍历流程所有可能流向,自动生成流程的所有测试路径,生成业务场景测试用例初稿,用于验证流程流转的业务正确性。
  • 步骤3:上述步骤生成的用例中,流程流转的关键业务数据还需要人工填写,如报销审批过程中需要判断费用的阈值分配给不同层级的领导审批,这里的费用为关键业务数据,需要人工填写,完善测试用例。
  • 步骤4:配置测试计划,关联上述步骤生成的业务场景测试用例和健壮性测试用例,配置自动执行的计划。
  • 步骤5:自动执行测试计划。
  • 步骤6:自动生成测试报告。
  • 步骤7:通过流程变化的自动监测,自动识别需要调整的测试用例、影响范围以及差异内容,自动调整对应的测试用例。

在对以上步骤详细说明之前,先约定几个概念:

“场景”:流程的每种可能的分支走向为一个场景。

“预置场景”:流程在激活后会由后台计算流程的所有分支走向,每种分支走向都会各自生成一个预置场景,用来表示流程的每一种可能的走向。

“健壮性测试”:测试流程能正常发起且每个环节的流转都是正常的,用于验证流程平台本身功能的正确性。

“业务场景测试”:带上流程流转所需的关键业务数据的流程仿真业务场景测试。

“预置用例”:流程健壮性测试使用的测试用例,由后台模拟生成所有的表单数据。

“自定义用例”:流程业务场景测试使用的测试用例,由用户配置关键表单数据。

有了以上概念后,接下来看看下面这个流程图,是对前述步骤的展开,并阐述步骤之间的关联关系。

自动生成预置场景及健壮性测试

人工做流程测试,过程非常繁琐,主要体现在:

需要频繁的切换不同的测试账号,用于模拟不同的处理人对流程环节进行操作和处理;

需要测试流程的全部分支场景,测试的复杂度随着网关数量呈指数型增长,造成大量的繁琐和重复性操作;

现场版本升级时,需要先保证流程的贯通,再保证每一个流程分支场景的准确性,整个流程测试耗时过长。

以上问题最核心的一点是如何自动生成预置场景。而浩鲸灵犀开发平台的优势在于,其有自身的解析引擎和对应的DSL定义语言。如果能模拟解析引擎,去解析流程DSL,就能知道流程的整体和每个步骤,从而推导出流程的所有分支走向,每种可能的分支走向及其流程节点并自动保存,这样就实现了预置场景的自动生成。

现在来看费用报销这个简单审批流程的2个预置场景自动生成的效果,员工提了报销单后,先由项目经理审批,再由财务审批,财务审核通过就结束,财务审核不通过打回项目经理重新审核。自动生成的2个预置场景截图如下:

点击右上角的“预流转”按钮,就能以动画的形式呈现流程流转的过程。以上就是健壮性测试的自动生成及可视化呈现。

健壮性测试的自动生成及自动流转,不带业务数据,主要是为了验证流程平台自身功能的正确性。可以在以下情况下使用健壮性测试:

  • 新流程配置完成之后,用健壮性测试验证平台基础功能能否跑通;
  • 版本升级后,对原有的流程做健壮性测试,验证流程引擎和原有流程配置的适配性。

业务场景测试及自定义用例快速生成

在传统的自动化测试中,需要配置不同业务场景的测试脚本,并频繁切换工号才能完成完整的业务场景测试,过程繁琐。

在浩鲸灵犀开发平台中,同样可以去解析流程平台的DSL,在预置场景的基础上,把关键业务数据解析出来。同时,提供可视化的自定义用例配置界面,就可以让流程配置人员快速的批量生成自定义用例。区别于预置用例的完全自动生成,自定义用例属于半自动生成。

哪些数据属于关键数据呢?经过对流程配置数据的分析,影响流程流转的核心数据是各类“网关”中配置的条件,把这些字段都从流程配置中解析出来。平台先自动生成自定义用例的初稿,包括流程和节点,然后提供人工填写这些关键字段的可视化界面,这些字段都完成填写后即可实现业务场景的自动流转测试。在自动流转测试中,使用了全角色匹配的方案,避免频繁切换工号。

如图所示,这个例子中,设计了一个营销活动策划和审批流程场景,当成本<500时,营销活动主管审批即可,当成本>=500时需要营销总监审批。在自动流程测试界面中,系统已经预生成了用例的流程流转图,操作者只要在界面中填上“营销活动成本”这个关键业务数据,整个用例就可以完成自动测试。

监测流程变化自动调整用例

当流程配置有变化时,通常的做法是,需要人工分析用例的影响面,再人工调整测试用例的配置,每个分支都要考虑充分,做起来复杂而且容易遗漏。

针对这个问题,浩鲸灵犀开发平台实现了流程版本变化的自动监测,同时,根据变化的内容自动调整测试用例。实现方案大致如下:

  • 后台监测流程版本变化,当变化发生时,通知当前流程版本关联的测试用例自动进行一次适配新流程版本内容的测试用例调整。
  • 当收到自动调整的通知请求后,获取新旧流程版本的定义,基于流程差异分析算法,将新旧流程版本的流程定义都转换为有向无环图,分别进行拓扑排序,得到节点的拓扑序列。按每个节点比较该节点的入度和出度是否相同,如果不同则标识为疑似差异节点。再分别计算每个疑似差异节点在新旧版本中的前驱节点和后继节点集合,并比较它们的差异。如果前驱节点集合或后继节点集合存在差异,则确定该节点存在差异。记录确认差异节点的位置和差异内容。
  • 根据差异内容,程序自动对原有测试用例进行修改,生成新的测试用例。
  • 对自动调整后的测试用例进行检查,包含流程测试路径可达性检查和流程数据完整性检查。如果检查通过,进行预执行检测,如果预执行成功,完成测试用例自动调整;如果自动调整后的测试用例检查不通过,或者预执行失败,设置测试用例失效,通知测试人员进行人工检查和维护,及时调整和优化,直到测试用例预执行成功,恢复生效状态。

综上所述,浩鲸灵犀开发平台提供了流程的健壮性自动化测试,由流程中心自动模拟表单数据,完成流程的全分支场景的贯通性测试;提供了流程的业务场景测试,由用户自定义各种分支场景的表单数据,再由流程中心完成流程的各种分支场景的准确性测试;还能自动监测流程版本的变化,自动调整测试用例。

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

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

相关文章

Stable Diffusion - AWPortrait 1.1 模型与 Prompts 设置

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/131565908 AWPortrait 1.1 网址&#xff1a;https://www.liblibai.com/modelinfo/721fa2d298b262d7c08f0337ebfe58f8 介绍&#xff1a;AWPortrai…

java类的静态变量

java类的静态变量称为类变量&#xff0c;非静态变量称为实例变量。 静态变量可以在声明时初始化&#xff0c;也可以不在声明时初始化。 通过下面方式可以访问类的静态变量&#xff1a; 类内部直接访问静态变量&#xff1b;通过类名访问静态变量&#xff1b;通过实例访问静态变…

C++数据结构X篇_08_C++实现栈的顺序存储与链式存储

本篇参考C实现栈的顺序存储与链式存储整理&#xff0c;先搞懂结构框架&#xff0c;后期根据视频利用c对内容实现&#xff0c;也可以对c有更高的提升。 文章目录 1. 栈的顺序存储2. 栈的链式存储 栈是一种特殊的数据结构&#xff0c;栈中数据先进后出&#xff0c;且栈中数据只能…

30张图带你弄懂 二叉树、AVL、红黑树,他们之间有什么联系,AVL树和红黑树如何平衡

树&#xff08;Tree&#xff09;是若干个结点组成的有限集合&#xff0c;其中必须有一个结点是根结点&#xff0c;其余结点划分为若干个互不相交的集合&#xff0c;每一个集合还是一棵树&#xff0c;但被称为根的子树。注意&#xff0c;当树的结点个数为0时&#xff0c;我们称这…

[已解决]Running setup.py install for MinkowskiEngine ... error

虚拟环境中安装MinkowskiEngine&#xff1a; pip install -U MinkowskiEngine --install-option"--blasopenblas" -v --no-deps 报错&#xff1a;“Running setup.py install for MinkowskiEngine ... error” 解决办法[链接][参考1]&#xff1a; &#xff08;1&…

Unity 编辑器-创建模板脚本,并自动绑定属性,添加点击事件

当使用框架开发时&#xff0c;Prefab挂载的很多脚本都有固定的格式。从Unity的基础模板创建cs文件&#xff0c;再修改到应有的模板&#xff0c;会浪费一些时间。尤其是有大量的不同界面时&#xff0c;每个都改一遍&#xff0c;浪费时间不说&#xff0c;还有可能遗漏或错改。写个…

查询直播频道发起的签到记录

接口描述 1、通过直播场次id&#xff0c;查询签到发起记录 2、接口支持https协议 接口URL http://api.polyv.net/live/v3/channel/chat/checkin-by-sessionId 请求方式 GET 请求参数描述 参数名必选类型说明appIdtrueString账号appIdtimestamptrueLong当前13位毫秒级时间戳&…

OSPF实验2

OSPF实验2 要求&#xff1a; 1.如图连接&#xff0c;合理规划IP地址&#xff0c;所有路由器各自创建一个loopback接口 2.R1再创建三个接口IP地址为201.1.1.1/24、201.1.2.1/24、201.1.3.1/24 R5再创建三个接口IP地址为202.1.1.1/24、202.1.2.1/24、202.1.3.1/24 R7再创建三…

小红书如何开店,送你一份保姆级开店教程

科思创业汇 大家好&#xff0c;这里是科思创业汇&#xff0c;一个轻资产创业孵化平台。赚钱的方式有很多种&#xff0c;我希望在科思创业汇能够给你带来最快乐的那一种&#xff01; 今天&#xff0c;我们来谈谈小红书的电子商务。这也是今年非常流行的电子商务平台。很多人说…

《设计模式》责任链模式

《设计模式》责任链模式 定义&#xff1a; 责任链模式将链中每一个节点都看成一个对象&#xff0c;并且将这些节点对象连成一条链&#xff0c;请求会沿着这条链进行传递&#xff0c;直到有对象处理它为止&#xff0c;这使得多个对象都有机会接收请求&#xff0c;避免了请求发送…

warp框架教程3-path, method和自定义请求方法

path, method和自定义请求方法 path 是 warp 中的路由系统, 一个 web 框架的灵魂所在, 一个优美的路由系统可以给我们带来非常良好的使用体验, 而 warp 的路由体验本身就是非常 nice 的。在本文中将展示一个 RESTful 风格的 API 设计。下面先来学习一下 path 模块。 path 模块…

从小白到大神之路之学习运维第56天--------shell脚本实例应用2.0之有趣的知识

第三阶段基础 时 间&#xff1a;2023年7月10日 参加人&#xff1a;全班人员 内 容&#xff1a; shell实例 目录 shell脚本应用&#xff1a; 一、if判断 1、if判断的类型 1&#xff09;单分支 2&#xff09;双分支 3&#xff09;多分支 2、单分支if判断 1&#x…

Could not increase number of max_open_files to more than 5000 (request: 65535)

修改MySQL 打开文件数量限制 修改内核限制 ulimit -n //查看系统限制 修改 /etc/security/limits.conf 添加 soft nofile 65530hard nofile 65535 mysql> SHOW VARIABLES LIKE open_files_limit; 通过 MySQL 命令行检查新限制。您可以使用以下查询&#xff0c;确保设置了新…

vue3使用less入门使用案例(webStrom)

文章目录 简介安装less基础代码效果 less进阶代码效果 简介 less&#xff1a;css预处理语言 安装 npm i less3.0.4 -Dless打包解释器 npm i less-loader5.0.0 -Dless基础代码 <template><div class"a"></div> </template><style lang…

Java Web Servlet (1)23.7.7

Servlet 1&#xff0c; Servlet 1.1 简介 Servlet是JavaWeb最为核心的内容&#xff0c;它是Java提供的一门动态web资源开发技术。 使用Servlet就可以实现&#xff0c;根据不同的登录用户在页面上动态显示不同内容。 Servlet是JavaEE规范之一&#xff0c;其实就是一个接口&a…

【日常记录】CentOS7.5 安装tomcat放行8080端口后无法访问

环境 操作系统版本信息&#xff1a; [rootlocalhost conf]# cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core)JAVA版本信息 [rootlocalhost conf]# java -version openjdk version "1.8.0_372" OpenJDK Runtime Environment (build 1.8.0_372-b07) …

闲人闲谈PS之四十四——供应链透明化

惯例闲话&#xff1a; 近期工作和天气一样&#xff0c;如火如荼&#xff0c;前面1个月&#xff0c;拼全力搞了一个新功能&#xff0c;把闲人折腾的够呛&#xff0c;现在回头看看这个过程&#xff0c;倒也回味无穷&#xff0c;如何利用信息化工具&#xff0c;搞点数字化的活&am…

ORA-39168: Object path STATISTICS was not found

上周某客户因异常断电导致lun&#xff0c;某个测试环境无法启动&#xff0c;客户只提供了一个1周前.dmp文件&#xff0c;需要在新环境中导入恢复&#xff0c;解决表空间和临时表空间问题后&#xff0c;导入报错如下 Import: Release 11.2.0.4.0 - Production on Thu Jul 6 07:…

基础篇--Cortex-M系列介绍

视频教程 体系结构&#xff08;ARM架构版本&#xff09;与其对应的ARM处理器内核 Cortex-M系列介绍 ARM公司 ARM公司&#xff1a;只做内核设计和IP授权&#xff0c;不参与芯片设计 ARM架构为什么能风靡全球&#xff1f; Cortex内核分类及特征 Cortex-M3/4/7介绍

几个有趣的Python库,建议收藏~

随着每个 Python 版本的发布&#xff0c;都会添加新模块&#xff0c;并引入新的更好的做事方式&#xff0c;虽然我们都习惯了使用好的旧 Python 库和某些做事方式&#xff0c;但现在也时候升级并利用新的和改进的模块及其特性了。 Pathlib pathlib 绝对是 Python 标准库中最近…