多线程做不同测试
通过在两个线程中分别延时5秒和7秒,并在最后显示整个TestPlan运行时长来判断是否成功使两个线程并行运行。
并行运行,则最终运行时长约7秒,顺序运行,则最终运行时长约12秒。
通过File-new-TestPlan新建一个TestPlan并保存,通过Insert- Test新建一个测试,Action-Insert-QuickSearch-time-agttcmiscTimerStart新建一个动作。//这个动作用于启动一个定时器
再添加一个test,并给test添加一个accttcmiscDelaySec的动作,为方便观察运行现象,给这个动作的参数设置为5//这个动作用于延时,参数设置为5即延时5秒
为了让这个动作运行完后有点指示信息,这里在test2再加一个往报表里写数据的动作。
勾选Threading-Thread This Test,使当前正在这个被编辑的test2线程化。
把Test2复制粘贴一下,改个测试名,延时动作的参数修改为其他值。//复制粘贴后,两个test前边都出现了报错,这是说复制的那个test和被复制的重名了,从TestName那改个名就行。
通过Insert-Wait Thread添加一个等待线程结束,点击>>把两个线程添加至右侧。//表示等待这两个线程结束后再进行下一步。
再添加一个Test4 ,给Test4添加一个agttcmiscUsecEscaped//这个动作可以返回从agttcmiscTimerStart到运行到这个动作的时间。
通过View-TestPlanGlobals-AddSymbal新建一个Integer变量//DataType点不动的话,先选中Value项,然后按Tab键。TextExec SL 7.1在win11上有这个问题,到8.1就修复了。
输出参数通过References a symbol-TestPlanGlobals设置为刚才创建的变量。
再添加一个SendReportMessage动作用于显示总时间,通过Formatting-update string from parameters-format,将变量导入。//记不住变量全名就选中reference to,在里面找到所需变量,然后把变量全名复制走。
运行,通过Windows-Report打开报表,从结果可以看出两个test均有运行,且,从运行总时间可以看出两个Test为并行运行。
多线程做相同测试
通过在三个线程中分别延时3秒,并在最后显示整个TestPlan运行时长来判断是否成功使测试在多个线程并行运行。
成功在多个线程内并行运行,则报表显示三个线程信息且最终运行时长约3秒。
新建TestPlan并保存。
通过Options-TestPlan Options-Throughput Multiplier-Add Multiple UUT -Desired number of positions option -Update position names添加三个线程。
通过Inset-Test新建一个Test,并为其添加一个TimerStart动作。//从上个多线程做不同测试的TestPlan里复制过来也没问题
再新建一个Test,并添加agttcmiscDelaySec和SendReportMessage动作//从上个多线程做不同测试的TestPlan里复制过来也没问题。
从Option-Through Multiplier Configuration选中Repeat this test for all UUT positions
Threading界面勾选Thread This Test,使当前这个Test2线程化。
Action这边,动作的参数稍微改一下//不改也没啥问题,就是结果可能不太好看
通过Insert-Wait Thread添加一个等待线程完成的test,并点击>>按钮,将Test2添加至右侧。
通过View-Symbol Tables-Add Symbol添加一个int变量
新建一个Test3,添加agttcmiscUsecElapsed和SendReportMessage两个动作,将agttcmiscUsecElapsed的输出和SendReportMessage的输入配置为刚才创建的变量。//从上个多线程做不同测试的TestPlan里复制过来也没问题。
运行。从结果可以看出,Test2运行了三遍,且为并行运行