保存TestRunner到session。如果需要显示测试进度还要传入一个用于反馈进度的URL地址,简单说就是LPTF会提供一个aspx文件,实际使用时可以将其放到当前项目中编译,在运行时把这个文件对应的URL作为TestRunner的构造参数即可。
StraightTest的具体执行顺序大致是“生成TestRunner对象→调用TestRunner的RunTests方法启动测试→调用TestRunner的PhaseEnd方法结束一个阶段的测试→…→调用TestRunner的End方法结束测试”。每一次PhaseEnd和最后的End方法都会记录当前的测试结果,测试结束后可调用GetTestResult方法获取全部测试结果。测试结果记录每个阶段的名称和相应的执行时间。
图2-3反向测试结构图
解释:反向测试比正向测试要复杂一些,主要是针对同一段程序要准备不同的执行程序(这里称之为测试用例TestCase,一般分“长时间-Max”、“中等时间-Median”、“短时间-Min”三个测试环境)。如果每个测试用例要进行一些初始、扫尾和验证动作,则还要把相应的方法委托给PreTestCleanup、PostTestCleanup和TestValidityCheck。测试执行器会根据整体测试情况计算出一个一般运算时间值(这里称之为规范值NormalisedTimeSpan)。
反向测试的执行过程是首先开辟一个单独的线程,根据指定的执行次数和迭代次数执行用例。执行用例的顺序是随机的。最后,筛选并统计每个用例的执行时间。
另外,反向测试中的测试进度(Progress)直接写在了LPTF中,这是因为反向测试的测试程序都是C/S程序,不存在URL的问题,可以直接写成dll。
图2-4测试结果输出引擎结构解释:LPTF提供了丰富的输出格式。通过一个抽象类output规范了统一接口,各种输出方式继承output并实现OutputResults方法,output还提供了一个DisplayResults方法动态调用具体的输出方法。由于正向测试和反向测试的测试结果形式不同,在ChartOutputForm中提供了一个属性IsDisplayReverseTest用于指定是否显示反向测试结果。对于WebChartOutput类,因为会有显示图表控件、URL、编译等问题,最好由用户在自己的应用程序中实现。
文章来源于领测软件测试网 https://www.ltesting.net/