`
我是温浩然
  • 浏览: 104204 次
文章分类
社区版块
存档分类
最新评论

详细说明上一篇 scenario

 
阅读更多

根据上一篇我说 的 ,划分scenario的 方法,来说明一下。

首先,在一个 Scenario 中,如何定义 步骤 ,其实很简单。

最简单的方法,可以理解为,流程进行一步,就写一个步骤, 这里的流程进行一步,是 需要 人员手动录入的步骤。不包含 fork ,join ,自动任务 ,Java 任务 和 自动判定任务。



下面这种,任务名称前面,带有 问号 的,属于自动判定任务,这种任务,一般 是,根据你在流程某一步,进行的某些操作,比如, 是否属于社内排原稿, 选择,是,或 ,否,走不同的流程节点。



下面的图标 属于 需要人员手工录入的 任务节点。



刚才说了,定义Scenario 步骤,

1、需要手动录入的 流程节点,每一步,都可以设置为,一个Scenario 步骤。

2、当前Scenario 中,所有 步骤必须满足的条件 , 只有当满足该条件时,才会执行 这个Scenario ,这样的,可以提前出来,当作前提条件。也算是一个步骤,判断步骤。

比如,

Given 社内文编一审  和  编校部委托一审
这个步骤的实现方法是:

	this.Given(/^社内文编一审  和  编校部委托一审$/, function(callback) {
		if(bwzztsBase.ysqk == '社内文编一审'|| bwzztsBase.ysqk == '编校部委托一审') {
			console.log('一审情况 选择  社内文编一审  和  编校部委托一审  ,执行此 Scenario ');
			callback();
		}else{
			callback(new Error('一审情况属于:'+ bwzztsBase.ysqk +',并不执行 此 Scenario'));
		}
	});
这个方法,只是一个判断,并没有任何实际的操作代码。 只有当满足条件,callback();

不满足,报错,并退出当前Scenario 。


下面说,把那个 流程图,分别拆成了几个Scenario ,和这么做的原因。

一个复杂的流程,我给分成了 15个 scenario 。

1、从流程开始 ,到 fork

2、 属于 fork 分支 1 编辑发设计要求

3 和 4、 属于 fork 2 . 是否有原稿

5、 属于 fork3 是否一级加急

6--13 属于 fork4 是否需要签订合同

14、 join 1 到 join 8

15、 join 8 到 end


fork2 ,拆分成 两个 Scenario 的原因,是 从 是否社内校对 是否直接付型 ,开始,会进行判断,继续执行 一校 流程或者,直接 到 自动任务 4 .

,所以,把 这个 判定任务,也做成 Scenario 步骤 ,来判断是否 继续执行 一校 ,否则,跳过 一下 步骤。


6--13 ,同理。 只不过,分这么多Scenario 的原因,是因为,流程图太乱了。。

哪怕 流程图中,所有 的 不通过,和退改 不去判断,也是很乱的。


所以,我就提取出 最后需要判断的步骤

社领导三审,和 书稿三审。


分别进行判断, 只有当 什么条件的时候,才会执行 社领导三审 ? or 书稿三审?

穷举所有的方法 ,每个方法,都加判断条件, 都单独做Scenario 。

这是最笨的办法了。


如果两个Scenario , 有 同名 的步骤 ,同名,必须 都是,Then ,或者,都是When 才可以。

都是

Then 书稿二审 ,可以共用一个 书稿二审的方法。


下面的代码,是这个步骤的 方法。可以理解为,对这个操作步骤的解释。


	this.Then(/^书稿二审$/, function(callback) {
		if(bwzztsBase.fszpdes =='分社长二审') {
			//******************************************************
			//切换iframe 到所有任务中。
			this.drive.switchTo().defaultContent();
			this.drive.sleep(100);
			homePage.syrwMenu(this).click();
			this.drive.sleep(500);
			var frame = homePage.alltaskIframe(this);
			this.drive.switchTo().frame(frame);

			homePage.rwmcInput(this).sendKeys('书稿二审');
			homePage.wdrwCXButton(this).click();
			this.drive.sleep(500);
			homePage.blButton(this).click();
			this.drive.sleep(500);
			//**********************************************************
			//切换tab 页
			bwzztsBase.sgsdTab(this).click();//书稿审读 tab

			bwzzts5.SGESshjlCheck(this).click();//审核结论
			if(bwzztsBase.pdss=='提交社领导助理三审'){
				bwzzts5.SGESshjlSelectZLSS(this).click();//提交社领导助理三审
			}else{
				bwzzts5.SGESshjlSelectSLDSS(this).click();//提交社领导三审
			}

			//点击 保存并继续
			homePage.startUp(this).click();
			this.drive.sleep(5000);
		}
		callback();
	});


暂时想到的,只有这些,再想到啥,以后补充。

下一篇博客,我分享 已经完成的,这个流程图的代码。


分享到:
评论

相关推荐

    Documenting_Software_Architectures_Views_and_Beyon.pdf

    《Documenting Software Architectures: Views and Beyond》是一篇发表于2002年的文章,由Paul Clements、David Garlan、Reed Little、Robert Nord、Judith Stafford等多位作者共同撰写。这些作者均来自卡内基梅隆...

    考研英语作文(17句万能模板_编辑修改重排版)

    【考研英语作文17句万能模板解析】 在准备考研英语作文时,掌握一套万能模板可以帮助考生在有限的时间内迅速构建文章结构,确保...在实际应用中,考生只需根据具体题目填充细节,即可完成一篇结构完整的考研英语作文。

    OFBizDataModel.pdf

    综上所述,《Data Model Resource Book, Volume 1.pdf》中的数据模型为 OFBiz 提供了一个强大的基础架构,通过图形化的形式展示了各个模块之间的相互作用。这对于理解和实现 OFBiz 的核心功能至关重要。此外,该文档...

    “反”探索性软件测试,antiexploratorytesting

    首先申明一下,这篇文章不是要说探索性软件测试这种方法不好,而是想说明,不能过度去追寻探索性软件测试的方法,或者是说想提供一个简单的探索性软件测试的简化方法(情景测试,scenario测试or主要情景测试)。...

    ROCKY_Workshop 10 Part A_Bucket Coneyor.pdf

    以下是关键知识点的详细说明: 1. **周期性运动(Periodic Motion)**: 在这个工作坊中,你需要定义一种可以周期性重复的运动。周期性运动是模拟机械设备中循环动作的关键,例如输送带或旋转部件。在Rocky软件中...

    188-测试试卷-需求分析与模型建立1

    本篇资源摘要信息将围绕软件开发的需求分析和模型建立进行详细的解释和分析。 数据流图 数据流图(Data Flow Diagram,DFD)是一种常用的需求分析模型,它用于描述系统的输入、处理和输出过程。数据流图可以帮助...

    性能测试进阶指南——LoadRunner11实战 part1

    《测试实践丛书:性能测试进阶指南·LoadRunner 11实战》是一本基于HP LoadRunner 11工具的指导用书,从性能测试原理到工具使用再到项目实施,全面介绍了性能测试的各个方面,其内容基本主线说明如下。 第一步...

    性能测试进阶指南——LoadRunner11实战 part2

    《测试实践丛书:性能测试进阶指南·LoadRunner 11实战》是一本基于HP LoadRunner 11工具的指导用书,从性能测试原理到工具使用再到项目实施,全面介绍了性能测试的各个方面,其内容基本主线说明如下。 第一步...

    性能测试进阶指南——LoadRunner11实战 part3

    《测试实践丛书:性能测试进阶指南·LoadRunner 11实战》是一本基于HP LoadRunner 11工具的指导用书,从性能测试原理到工具使用再到项目实施,全面介绍了性能测试的各个方面,其内容基本主线说明如下。 第一步...

    性能测试进阶指南——LoadRunner11实战_(完整)扫描版_@vs.part1

    《测试实践丛书:性能测试进阶指南·LoadRunner 11实战》是一本基于HP LoadRunner 11工具的指导用书,从性能测试原理到工具使用再到项目实施,全面介绍了性能测试的各个方面,其内容基本主线说明如下。 第一步...

    性能测试进阶指南——LoadRunner11实战_(完整)扫描版_@vs.part2

    《测试实践丛书:性能测试进阶指南·LoadRunner 11实战》是一本基于HP LoadRunner 11工具的指导用书,从性能测试原理到工具使用再到项目实施,全面介绍了性能测试的各个方面,其内容基本主线说明如下。 第一步...

    性能测试进阶指南——LoadRunner11实战_(完整)扫描版_@vs.part5

    《测试实践丛书:性能测试进阶指南·LoadRunner 11实战》是一本基于HP LoadRunner 11工具的指导用书,从性能测试原理到工具使用再到项目实施,全面介绍了性能测试的各个方面,其内容基本主线说明如下。 第一步...

    性能测试进阶指南——LoadRunner11实战_(完整)扫描版_@vs.part4

    《测试实践丛书:性能测试进阶指南·LoadRunner 11实战》是一本基于HP LoadRunner 11工具的指导用书,从性能测试原理到工具使用再到项目实施,全面介绍了性能测试的各个方面,其内容基本主线说明如下。 第一步...

    性能测试进阶指南——LoadRunner11实战_(完整)扫描版_@vs.part6

    《测试实践丛书:性能测试进阶指南·LoadRunner 11实战》是一本基于HP LoadRunner 11工具的指导用书,从性能测试原理到工具使用再到项目实施,全面介绍了性能测试的各个方面,其内容基本主线说明如下。 第一步...

    性能测试进阶指南——LoadRunner11实战_(完整)扫描版_@vs.part3

    《测试实践丛书:性能测试进阶指南·LoadRunner 11实战》是一本基于HP LoadRunner 11工具的指导用书,从性能测试原理到工具使用再到项目实施,全面介绍了性能测试的各个方面,其内容基本主线说明如下。 第一步...

Global site tag (gtag.js) - Google Analytics