前言:引擎组件的接口测试不光是程序测试人员使用,而且也是产品负责人员需要用到的功能,因为在每一步流转过程中,就会完整模拟实际用户发生的场景,也就容易排查具体是程序问题还是业务问题,从而快速定位问题,及时解决问题。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 引擎接口模拟测试工具集的更多相关文章

  1. Slickflow.NET 开源工作流引擎高级开发(三) -- 并行分支容器与会签工作流模式的组合

    前言:  流程引擎的核心功能是负责解析流程定义XML和流转,业务环节的不断积累,让人们不断总结和抽象出一些模式,这些模式统称为工作流模式(Workflow Pattern).本文的重点就是介绍一种常见 ...

  2. [开源]微信在线信息模拟测试工具(基于Senparc.Weixin.MP开发)

    目前为止似乎还没有看到过Web版的普通消息测试工具(除了官方针对高级接口的),现有的一些桌面版的几个测试工具也都是使用XML直接请求,非常不友好,我们来尝试做一个“面向对象”操作的测试工具. 测试工具 ...

  3. Slickflow.NET 开源工作流引擎高级开发(二) -- 流程快速测试增值服务工具介绍

    前言:流程是由若干个任务节点组成,流转过程就是从一个节点转移到下一个节点,通常需要不断切换用户身份来完成流程的测试,这样使得测试效率比较低下,本文从实战出发,介绍常见的两种快速测试方法,用于提升流程测 ...

  4. Slickflow.NET 开源工作流引擎基础介绍(六)--模块化架构设计和实践

    前言:在集成Slickflow.NET 引擎组件过程中,引擎组件需要将用户,角色等资源数据读取进来,供引擎内部调用:而企业客户都是有自己的组织架构模型,在引入模块化架构设计后,引擎组件的集成性更加友好 ...

  5. Slickflow.NET 开源工作流引擎基础介绍(九) -- .NET Core2.0 版本实现介绍

    前言:.NET Core 是.NET Framework的新一代版本,是微软开发的第一个跨平台 (Windows.Mac OSX.Linux) 的应用程序开发框架(Application Framew ...

  6. Slickflow.NET 开源工作流引擎基础介绍-.NET Core2.0 版本实现介绍 (转)

    前言:.NET Core 是.NET Framework的新一代版本,是微软开发的第一个跨平台 (Windows.Mac OSX.Linux) 的应用程序开发框架(Application Framew ...

  7. Slickflow.NET 开源工作流引擎快速入门之三: 简单或分支流程代码编写示例

    前言:对于急切想了解引擎功能的开发人员,在下载版本后,就想尝试编写代码,完成一个流程的开发和测试.本文试图从请假流程,或分支模式来快速了解引擎代码的编写. 1. 创建或分支流程图形 或分支流程是常见的 ...

  8. Slickflow.NET 开源工作流引擎快速入门之二: 简单并行分支流程代码编写示例

    前言:对于急切想了解引擎功能的开发人员,在下载版本后,就想尝试编写代码,完成一个流程的开发和测试.本文试图从一个最简单的并行分支流程来示例说明,如何快速了解引擎代码的编写. 版本:.NET Core2 ...

  9. Slickflow.NET 开源工作流引擎快速入门之一: 简单序列流程代码编写示例

    前言:对于急切想了解引擎功能的开发人员,在下载版本后,就想尝试编写代码,完成一个流程的开发和测试.本文试图从一个最简单的流程来示例说明,如何快速了解引擎代码的编写. 版本: .NETCore 2.1 ...

随机推荐

  1. SVN重新定位操作流程

    因服务器其他系统需要SVN原来使用的443端口无法继续使用需要更换,服务器SVN端口已更新为8443,现将个人电脑SVN文件夹路径重新定位流程展示如下: 确定即修改成功!

  2. 【前端学习】网页tab键的实现 01

    友情提醒:阅读本文需要了解一些基本的html/Css/Javascript知识 前端常用tab键的实现,用到的原理是当点击一个元素时,通过javascript操作css的display属性,达到控制另 ...

  3. Java中往zip压缩包追加文件

    有个需求,从某个接口下载的一个zip压缩包,往里面添加一个说明文件.搜索了一下,没有找到往zip直接添加文件的方法,最终解决方法是先解压.再压缩. 具体过程如下: 1.一个zip文件的压缩和解压工具类 ...

  4. linux I/O重定向及管道

    一,I/O重定向 重定向正常输出 > :覆盖以存在文件的内容,很危险的操作 >>:如果文件已经存在,则是在原内容的最后追加. 可以禁止>的覆盖行为,使用set -C.只在当前会 ...

  5. C语言基于NIOSII的软件开发及流水灯设计

    一.Quartus II 12.1 (32-Bit)进行硬件设计 1.所需要的系统元器件组成 2.系统电路图 二.Nios II 12.1 Software Build Tools for Eclip ...

  6. Pikachu-CSRF(跨站请求伪造)

    Pikachu-CSRF(跨站请求伪造) CSRF(跨站请求伪造)概述 Cross-site request forgery 简称为“CSRF”,在CSRF的攻击场景中攻击者会伪造一个请求(这个请求一 ...

  7. STM32基本GPIO操作:按键输入(扫描+外部中断)

    (涉及专有名词较多,难免解释不到位,若有错误还请指出,谢谢!) 硬件连接图如下: 一.扫描 思路是在main函数中通过死循环来扫描端口电平状态检测,以此判断按键是否按下.实现较为简单. 1.初始化(注 ...

  8. JsonPath基本用法

    JsonPath基本用法 本文主要介绍JsonPath的基本语法,并演示如何在Newtonsoft.Json中进行使用. JsonPath的来源 看它的名字你就能知道,这家伙和JSON文档有关系,正如 ...

  9. Centos系统镜像安装

    一.下载Centos版本 官网地址:http://isoredirect.centos.org/centos 二.制作U盘启动镜像 1.下载安装win32diskimager,用于制作U盘启动镜像,点 ...

  10. Dubbo学习系列之六(微服务架构实战)

    看了最近文章的反馈,似乎波澜不惊的样子,应该是看官觉得都是小菜,那我就直上硬菜,人狠话不多,开始!准备:Idea201902/JDK11/ZK3.5.5/Gradle5.4.1/RabbitMQ3.7 ...