1背景:
ets88设备测试过程中,经常会因为设备断电或者闪退问题,丢失数据,对测试者和生产进度而言是损失较大的。
测试软件的测试和存储机制。
2.1测试流程:
现本文将【C:\ets\ETS1UOJXT-00020】简称为【缓存路径】,将【E:\ets\apps\LM358_debug2】简称位【日志路径】,将【闪退和意外停电】统称为【意外】。
2.1.1测试过程:
软件会将临时数据会保存到【缓存路径】这个位置,保存为xxx.$h$和xxx.$d$文件,其中.$h$后缀的文件包含本次测试的测试条件数据,.$d$后缀的文件包含本次测试中每只的测试结果。
2.1.2测试完成后:
【缓存路径】的文件会自动保存到(如果文件冲突,会提示:是否覆盖文件)测试程序同目录下,【日志路径】保存为xxx.log(日志文件),这个文件为本次测试具体结果,但不是本次测试的最终测试数据,还需要ets88软件自带导出数据功能()导出最终测试数据,但因为xxx.log(日志文件)冲突(一般情况下,每次测试的日志文件都是一个名字),所以会提示并且选择另存为,需要测试者测试完成后,手动将最终测试数据另存到对应批次下。
2.2意外停止措施:
闪退和停电这种意外情况,会导致软件存储步骤只到了2.1.1中的步骤,后面不会出现2.1.2中确认是否覆盖文件的步骤,也不会在【日志路径】文件里找到对应的测试日志,故而,意外停止(在不考虑未注意【缓存路径】情况下)测试者会认为:意外停止会导致手动测试的几千只电路数据丢失了,实际上是没有丢失,只是分开保存在【缓存路径】下,恢复[丢失]的测试数据,需要手动将【缓存路径】下俩个文件合并(.$h$文件内容在上,.$d$文件内容在下),另存到【日志路径】里面,再按照正常的ets88自带功能导出数据,导出最终测试数据,并且另存为到对应批次下。
2.3简化2.2的手动操作的方案,是采用脚本实现:
2.3.1脚本方案1:
在上几篇文章有介绍【数据处理小公举】,在小公举中添加脚本,测试遭到意外停止后,手动启动恢复脚本。(放弃:因为不方便,而且增加操作繁琐)。
2.3.2脚本方案2:
做自动执行bat脚本,每隔几分钟,自动备份目标文件。(放弃:没必要频繁备份,出现意外后缓存文件不会消失)。
其实,等到出现意外后,双击脚本可以实现数据备份。
将下列脚本保存到任意方便点击的地方,文件名字为【backupdata.bat】双击运行。
在日志文件的父目录里有一个名为【BackupFiles】的文件夹,下面会有恢复的log文件,通过使用ets自带导出数据的功能,将目标日志文件导出最终测试数据。
@echo off
if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("%~nx0 h",0)(window.close)&&exit
:begin
::上面是跨过窗口的代码
set huanclj=C:\ets\ETS1UOJXT-00020\
set rizhilj=E:\ets\apps\
set bianhao=001,002,003,004,005,006,007,008,009,010,011,012,013,014,015,016,017,018,019,020,021,022,023,024,025,026,027,028,029,030,031,032,033,034,035,036,037,038,039,040,041,042,043,044,045,046,047,048,049,050
set /a zuori=%date:~8,2%-1
md %rizhilj%BackupFiles
for %%I in (%bianhao%) do (
copy /b %huanclj%%date:~0,4%%date:~5,2%%date:~8,2%-%%I.$h$+%huanclj%%date:~0,4%%date:~5,2%%date:~8,2%-%%I.$d$ %rizhilj%BackupFiles\%date:~0,4%%date:~5,2%%date:~8,2%_%%I.LOG
)
for %%I in (%bianhao%) do (
copy /b %huanclj%%date:~0,4%%date:~5,2%%zuori%-%%I.$h$+%huanclj%%date:~0,4%%date:~5,2%%zuori%-%%I.$d$ %rizhilj%BackupFiles\%date:~0,4%%date:~5,2%%zuori%_%%I.LOG
)
pause
2.4测试步骤:
2.4.1操作:
测试之前在ETS Shell页面调用测试程序,后选择新建logdata文件,新建文件命名规则【20240101_001】八位数的日期,加下划线(一定是下划线),加今天内测试的第几个文件(编号001),如果出现意外(闪退或者断电)按照2.2步骤恢复文件,如果不出意外,测试完成,点击导出(默认会自动选择到编号001文件,如果不是,请手动选择),导出文件选择另存为到目标批次文件下,至此测试导出数据完成。
2.4.2解释:
因为测试的【日志路径】.log文件,其实和测试程序是在一个文件夹下(默认的),为方便后期整理(备份清理),故规定简单并且格式统一的.log文件名,也为后面设计备份恢复脚本做伏笔。
当然如果有人在下面@到ets88设备工程师,存储机制对测试不友好,也可以直接让工程师设计软件补丁。