Slickflow.NET 开源工作流引擎高级开发(六) -- WebTest 引擎接口模拟测试工具集
前言:引擎组件的接口测试不光是程序测试人员使用,而且也是产品负责人员需要用到的功能,因为在每一步流转过程中,就会完整模拟实际用户发生的场景,也就容易排查具体是程序问题还是业务问题,从而快速定位问题,及时解决问题。WebTest测试工具集就是一个统一的交流测试平台,其带来的好处是压缩了不同类型的引擎用户交流问题的成本,同时也节约了程序开发和测试人员的工作成本。
1. 测试介绍
用户交互测试也是一种必不可少的测试过程,而且在交互过程中,可以跟踪和调试程序,真实系统的流转是需要用户身份的不断切换,但是不妨通过身份模拟来减少切换环节,通过对流程引擎接口的内部改造,证实是可以实现这一思路的。
如下图所示,一个集成测试的用户界面,左侧是流程定义记录,右侧上半部分是待办任务列表,下半部分是办结任务列表。功能接口主要是流程的启动、流转、退回和返送。功能测试人员通过选择流程定义记录,随时就能进行流程实例的启动、流转、退回和返送操作,不用重复的身份切换。

2. 功能说明
2.1 流程核心流转功能
2.1.1 启动
接口名称:StartProcess(),启动流程后,右侧的任务列表就会出现新的任务记录,作为用户待办。
2.1.2 流转
接口名称:RunProcess(), 流转运行接口,负责流程的流转,会出现步骤人员选择界面,由人工交互确定下一步的办理步骤,然后确定向下流转。其中在需要条件变量数值的情况下。可以加入名称-数值格式的文本,用于步骤列表重新加载。界面如下:

2.1.3 退回
接口名称:SendBackProcess(),退回到上一步的办理步骤,让上一步人员重新办理。同时,也会弹出上一步的人员办理列表,方便当前操作用户知道上一步的步骤和人员信息。

2.1.4 撤销
接口名称:WithdrawProcess(),撤销是由上一步步骤的完成人员发起,它的用途也是把当前步骤退回到上一步去。跟退回接口本质是一样的,两者的区别是发起的位置不同,退回是当前运行节点的办理人发起,而撤销是上一步已经完成的办理人员发起。
2.1.5 返送
接口名称:ResendProcess(),退回后的任务被上一步的完成人员办理完成后,需要重新发送,而且是仅仅需要发送给原来的退回节点位置就可以。在这种情况下就可以使用返送接口,而不是流转接口。返送操作只能在退回节点上发起,这是它跟流转接口的区别。
2.1.6 修订
接口名称:ReviseProcess()
1) 会签修订
在会签时候,通常选择了办理人员后,会发现需要增加或者减少办理人员列表。因为会签节点是多实例节点,增加人员或者减少人员意味着活动实例数目的变化,所以需要单独开发一个新的接口来实现这样的功能。

比如当前会签节点是“办事员录入”,对于经理A下发了办事员D和办事员E进行会签,但是经理A认为并行会签需要变更D和E,这个时候就可以调用会签修订功能,选择新的办理用户列表。
2) 并行多实例修订
如上图所示,当节点“经理分配”节点退回到“业务分配”节点后,业务分配需要重新指定新的“经理分配”,这个时候就需要调用修订接口,完成并行分支多实例的创建。假如上图中的“A”退回,重新选择经理分配后,可能就是B、C和新并行实例M(此处仅仅是标识,在K之后)。
2.1.7 驳回
接口名称:RejectProcess(),流程驳回是指流程运行过程中,直接打回给流程发起人的节点位置。
2.1.8 关闭
接口名称:CloseProcess(),流程办结是指流程在运行过程中,由于外来因素或者决策需要,而提前直接结束流程,流程状态正常结束。
2.2 流程数据功能
2.2.1 流程进度图
流程流转过程中,需要实时查看流程流转位置,如果是已经办理完成,则用红色标记,如果目前处于待办阶段,则用绿色标记,如下图所示:

2.2.2 流程变量
流程变量是为了显示流转过程中的流程交互数据,其中有两种类型区分,流程变量和活动变量,这些数据的写入是用户根据业务数据的变化,并且是需要引擎交互控制用到为目的的。比如:活动节点完成时,需要调用外部事件,而外部事件的参数和数值来源,就需要通过流程变量来进行存储。其次,流程分支判断时候的条件参数,在流程过程中也可以存入到流程变量表中,以便流程关联人员或者业务人员查看。这些是流程交互的核心变量数据,可以做一个统一的关联界面来查看或维护。

2.2.3 清除运行实例
测试进行时候,有些情况下如果发生异常,需要重新进行测试,就可以把当前正在运行的流程实例进行删除。删除操作时,同时也会把流程实例所有的关联数据进行删除,包括以下的数据:活动实例,转移实例,任务数据和流程变量表。
3. 总结
Slickflow.WebTest 测试工具的开发,加速了引擎组件的集成,降低了开发人员的学习周期,而且可以根据引擎服务接口做出统一的封装,有助于客户方项目或产品的二次开发,今后,引擎增加的功能也会呈现在这里,测试工具最终会作为一个完整的高附加值的产品使用。
体验地址:http://demo.slickflow.com/sfw2/
Slickflow.NET 开源工作流引擎高级开发(六) -- WebTest 引擎接口模拟测试工具集的更多相关文章
- Slickflow.NET 开源工作流引擎高级开发(三) -- 并行分支容器与会签工作流模式的组合
前言: 流程引擎的核心功能是负责解析流程定义XML和流转,业务环节的不断积累,让人们不断总结和抽象出一些模式,这些模式统称为工作流模式(Workflow Pattern).本文的重点就是介绍一种常见 ...
- [开源]微信在线信息模拟测试工具(基于Senparc.Weixin.MP开发)
目前为止似乎还没有看到过Web版的普通消息测试工具(除了官方针对高级接口的),现有的一些桌面版的几个测试工具也都是使用XML直接请求,非常不友好,我们来尝试做一个“面向对象”操作的测试工具. 测试工具 ...
- Slickflow.NET 开源工作流引擎高级开发(二) -- 流程快速测试增值服务工具介绍
前言:流程是由若干个任务节点组成,流转过程就是从一个节点转移到下一个节点,通常需要不断切换用户身份来完成流程的测试,这样使得测试效率比较低下,本文从实战出发,介绍常见的两种快速测试方法,用于提升流程测 ...
- Slickflow.NET 开源工作流引擎基础介绍(六)--模块化架构设计和实践
前言:在集成Slickflow.NET 引擎组件过程中,引擎组件需要将用户,角色等资源数据读取进来,供引擎内部调用:而企业客户都是有自己的组织架构模型,在引入模块化架构设计后,引擎组件的集成性更加友好 ...
- Slickflow.NET 开源工作流引擎基础介绍(九) -- .NET Core2.0 版本实现介绍
前言:.NET Core 是.NET Framework的新一代版本,是微软开发的第一个跨平台 (Windows.Mac OSX.Linux) 的应用程序开发框架(Application Framew ...
- Slickflow.NET 开源工作流引擎基础介绍-.NET Core2.0 版本实现介绍 (转)
前言:.NET Core 是.NET Framework的新一代版本,是微软开发的第一个跨平台 (Windows.Mac OSX.Linux) 的应用程序开发框架(Application Framew ...
- Slickflow.NET 开源工作流引擎快速入门之三: 简单或分支流程代码编写示例
前言:对于急切想了解引擎功能的开发人员,在下载版本后,就想尝试编写代码,完成一个流程的开发和测试.本文试图从请假流程,或分支模式来快速了解引擎代码的编写. 1. 创建或分支流程图形 或分支流程是常见的 ...
- Slickflow.NET 开源工作流引擎快速入门之二: 简单并行分支流程代码编写示例
前言:对于急切想了解引擎功能的开发人员,在下载版本后,就想尝试编写代码,完成一个流程的开发和测试.本文试图从一个最简单的并行分支流程来示例说明,如何快速了解引擎代码的编写. 版本:.NET Core2 ...
- Slickflow.NET 开源工作流引擎快速入门之一: 简单序列流程代码编写示例
前言:对于急切想了解引擎功能的开发人员,在下载版本后,就想尝试编写代码,完成一个流程的开发和测试.本文试图从一个最简单的流程来示例说明,如何快速了解引擎代码的编写. 版本: .NETCore 2.1 ...
随机推荐
- MySQL高级查询之索引创建、删除、增加、修改、慢sql、explain解释sql
day04数据库 昨日知识点回顾 1.单表操作 1.单表的操作 条件查询的优先级别: where > group by >having > order by > limit; ...
- 在线HTTP POST/GET模拟请求api接口http请求测试工具https://post.jsonin.com/
在线HTTP POST/GET模拟请求api接口http请求测试工具 在线POST/GET接口测试工具https://post.jsonin.com/ Json在线解析及格式化校验工具 https:/ ...
- C#获取字符串的拼音和首字母
在C#中我们想要获取字符串的拼音并不是那么困难的,在网上看到很多都是特别笨的方式来实现,其实各有各的好处吧,如果使用了下方法方式,它不知道多音字,这就是一个问题. /// <summary> ...
- 分布式事务之解决方案(XA和2PC)
3. 分布式事务解决方案之2PC(两阶段提交) 针对不同的分布式场景业界常见的解决方案有2PC.TCC.可靠消息最终一致性.最大努力通知这几种. 3.1. 什么是2PC 2PC即两阶段提交协议,是将整 ...
- alibaba/flutter_boost
flutterBoost使用笔记 新一代Flutter-Native混合解决方案. FlutterBoost是一个Flutter插件,它可以轻松地为现有原生应用程序提供Flutter混合集成方案.Fl ...
- 拖动条(SeekBar)的功能与用法
拖动条和进度条非常相似,只是进度条采用颜色填充来表明进度完成的程度,而拖动条则通过滑块的位置来标识数值——而且拖动条允许用户拖动滑块来改变值,因此拖动条通常用于对系统的某种数值进行调节,比如调节音量等 ...
- 写完代码就去吃饺子|The 10th Henan Polytechnic University Programming Contest
河南理工大学第十届校赛 很久没有组队打比赛了,好吧应该说很久没有写题了, 三个人一起玩果然比一个人玩有趣多了... 前100分钟过了4题,中途挂机100分钟也不知道什么原因,可能是因为到饭点太饿了?, ...
- Your activation code could not be validated (error 1653219)
很多小伙伴私聊我反应说,完全按照了你的 idea 激活教程走的,可最后还是没能激活成功,提示错误信息为: Your activation code could not be validated (er ...
- IT兄弟连 HTML5教程 CSS3属性特效 圆角
传统的圆角生成方案,必须使用多张图片作为背景图案.CSS3的出现,使得我们再也不必浪费时间去制作这些图片了,只需要border-radius属性,支持浏览器IE 9.Opera 10.5.Safari ...
- Git worktree 使用笔记【转】
gitworktree 本地仓库的多个分支在对应的文件夹内管理,能够减少很多操作,便捷高效~ 一 worktree 的基本概念和操作 再也不用克隆多个仓库啦!git worktree 一个 git 仓 ...