在SilkTest中有这样几个函数:ScriptEnter(),ScriptExit(),TestCaseEnter(), TestCaseExit(), TestPlanEnter(), TestPlanExit(), Appstate()他们的主要任务是在ST中处理场景恢复或其他一些公共性的事务。51Testing软件测试网 |{|\]5o
51Testing软件测试网NKN!F,J
首先说下他们的执行先后关系:TestPlanEnter->ScriptEnter->TestCaseEnter/Appstate->TestCaseExit->ScriptExit->TestPlanExit,然后我们再逐个分析:
n_E;~;~?U#y|x0 51Testing软件测试网Zg%b/I Xp'mj*l
TestPlanEnter:当你在一个Plan文件里运行TestCase时,该函数就会被驱动。对在整个测试需要进行一些设置单又不需要每个CASE进行设置的时候,该函数比较有效。注意:一个Plan文件该函数仅被驱动一次,不论是否圈套了其他Plan文件。
f@8]E'PV1@#j0 51Testing软件测试网9h6^Q5MES"p9t b0I"?e
ScriptEnter:当一个脚本文件第一次被访问时,它会被驱动。该函数很少被用到,除非你用.t文件执行CASE,否则用在Plan里没啥意思,效果同TestCaseEnter。51Testing软件测试网AL._h,e:pI
51Testing软件测试网tg$Fm1B2Y
TestCaseEnter:该函数会在每个CASE执行前运行,它将会被引用到每个CASE中,所以缺点是不够个性化,当然如果你的测试用例的初始化接口永远是同一个,那么你可以用这个,当然在复杂的产品中,这种情况是很少的。51Testing软件测试网8n'Alml(f
M~ r
9{P
VBt,M"c0Appstate:该函数的功能同TestCaseEnter类似,但唯一的亮点就是弥补了TestCaseEnter的缺点,它可以个性化定制CASE的入口点。用法是: testcase myTest appstate myAppstate,这里的myAppstate就是你自定义的appstate。51Testing软件测试网-}-|q&hcM
J ub(KA
l LU6W p0TestCaseExit:该函数会在每个CASE执行完后运行,主要做的是些清理工作,一般的话会用的比较少。51Testing软件测试网+{Q+D(lWU4|:M
k
c1LG@:B0ScriptExit:该函数会在跳出.t文件时被调用,一般很少用到。51Testing软件测试网U6})a*aQYj5o(D
;X_+s\#Jni0TestPlanExit:当你运行完一个Plan,该函数会被驱动。设计它应该是为了解决整个测试结束后的清理工作自动化。一般用的不多。
%I1ePw#b:m0 51Testing软件测试网V6}I{c)K8V
注意点:所有的Exit函数需要一个Boolean型参数,比如TestCaseExit(BOOLEAN bExpectLog)。
51Testing软件测试网r&Hz'n"K
总结:在实际项目中TestPlanEnter(), TestCaseExit(), Appstate()用的比较多, TestPlanEnter主要处理整个测试运行前要进行的检查或设置但又不需要每个CASE都要进行的操作;TestCaseExit主要处理在测试执行完后需要进行的清理工作或其他辅助工作,比如测试结果update到数据库中;Appsate主要用来初始化用例入口点,使CASE从一个基础,干净的状态开始运行,同时也是为了脚本的重用。51Testing软件测试网@.m!QnezsI