前一段时间考虑了测试数据同业务流程分离方法。参考下文
http://www.51testing.com/index.php?uid-14711-action-viewspace-itemid-173234
改进的方法在实际工作中用下来感觉相当不错。很好。要坚持
紧接着碰到了一些问题。
1、单个action本身的运行结果不同会造成正整个脚本的运行低效甚至是失败。
2、单个action在不同使用场合中对日志的要求不同。
碰到了问题之后那,想了一下。对单个action添加了一些要求。基本解决了问题
1、每个action需要一个标示检查点和运行过程成功与否的输出参数
2、在上级action调用的过程中判断成功与非的输出参数来控制其他子action是否需要运行,如果不运行,则要打日志
3、每个action需要一个输入参数指明其日志策略(成功失败都打日志,失败才打日志,具体的日志方法不在这里讨论)。
4、单个action中添加运行的循环控制函数,循环次数设置特定的环境变量控制。这个循环控制用来控制action在失败的情况下重新运行。
5、需要一个日志方法。这个方法需要区别是否需要在运行结果正确或不正确的情况下打具体的日志信息,并且打印的信息需要指出其运行过程中一直到成功前错误的次数
样子会是下面这样
'--------------------------------------------------------------------------------------
' Action名称 :*****
' Action描述 :
' 覆盖 用例 :
' 变量说明:
' 参数 说明 :
' 输入
'I_logtype 日志类型。0 对错 都打,1 只打错误
' 输出
'O_Result action结果
'-------------------------------------------------------------------------------------
'添加权限计数器
Dim blnresult
Dim counttimeprocess
Dim errortimeprocess
'case
Call initprocess()
Call runinitprocess()
'打日志方法。这个方法需要区别是否需要在运行结果正确的情况下打具体的日志信息,打印的信息需要指出其运行过程中一直到成功前错误的次数
Call logprocess(blnresult,parameter("I_logtype"),"具体日志信息",errortimeprocess)
'action运行状态输出参数
parameter("O_Result")=blnresult
'初始化计数器
Function initprocess()
blnresult=false
counttimeprocess=0
errortimeprocess=0
End Function
'操作过程
function process()
具体操作过程
If 检查点 then
blnresult=true
else
blnresult=false
End If
counttimeprocess=counttimeprocess+1
end function
'过程运行控制
Function runinitprocess()
While blnresult=false and counttimeprocess<environment.value("循环数控制")
Call process()
If blnresult=false Then
errortimeprocess=errortimeprocess+1
End If
Wend
End Function