前言:引擎组件的接口测试不光是程序测试人员使用,而且也是产品负责人员需要用到的功能,因为在每一步流转过程中,就会完整模拟实际用户发生的场景,也就容易排查具体是程序问题还是业务问题,从而快速定位问题,及时解决问题。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. vue中点击屏幕其他区域关闭自定义div弹出框

    直接上代码: mounted: function () { let that = this; $(document).on('click', function (e) { let dom = $('. ...

  2. jQuery实现电梯导航特效

    功能描述: 当滚动条滑到某个位置时,显示电梯导航: 当用户滚动滚动条时,让电梯导航的选中状态和当前滚动到的区域保持一致: 当用户点击电梯导航时,滚动条滚动到被点击导航对应的区域 准备工作: 首先将jQ ...

  3. CSS类的操作

    CSS类的操作 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <t ...

  4. laravel 框架源码分析

    laravel框架的文档中的例子很多时候不是很明显,所以想要真正的使用好这个框架,我们可以尝试去阅读它源码中的注释(不得不说laravel源码的注释还是很详细的). 我们先来看一下laravel 的文 ...

  5. 8年开发老司机告诉你啥是java开发?如何学?学习什么内容?

    什么是Java? 我从Java的官网上抄下来下面这段话:97% 的企业桌面运行 Java美国有 89% 的桌面(或计算机)运行 Java全球有 900 万 Java 开发人员开发人员的头号选择排名第一 ...

  6. less 学习笔记

    一.介绍 Less (Leaner Style Sheets 简洁的样式表) 是一门向后兼容的 CSS 预处理语言,它扩展了CSS 语言. less is more. 好处: 1.具有部分编程语言的功 ...

  7. Java开发中解决Js的跨域问题

    主流方法有JSONP和CORS两种,这里记一下后者的方式,理论基础就是在请求的时候在http请求头中添加如下属性: //指定允许其他域名访问 Access-Control-Allow-Origin:h ...

  8. 8道Python基础面试练习题

    1.26个字母大小写成对打印,例如:Aa,Bb...... for i in range(26): print(chr(65+i)+chr(97+i)) 2.一个list包含10个数字,然后生成一个新 ...

  9. TensorFlow实现简单线性回归示例代码

    # -*- coding: utf-8 -*- import tensorflow as tf import numpy as np import matplotlib.pyplot as plt d ...

  10. [css flex布局]实例一,本来还想挺简单的,弄了挺久呢,先写一部分

    全是代码,直接拷走吧,看是不怎么好看的 参考:http://www.ruanyifeng.com/blog/search.html?cx=016304377626642577906%3Ab_e9ska ...