如何在测试启动前重置Office应用状态 解决Squish测试关闭异常问题
Squish测试Office套件前重置应用状态的实操方案
Office的恢复弹窗、历史文档还原是由两类残留触发的:自动恢复缓存文件、注册表中记录的异常退出标记,测试启动前清空两类残留即可解决问题。
1. 清理Office自动恢复缓存文件
- Word缓存路径:
C:\Users\<你的用户名>\AppData\Roaming\Microsoft\Word - Excel缓存路径:
C:\Users\<你的用户名>\AppData\Roaming\Microsoft\Excel - PowerPoint缓存路径:
C:\Users\<你的用户名>\AppData\Roaming\Microsoft\PowerPoint - 操作要求:测试启动前删除上述路径下所有
.asd、.tmp后缀的临时文件,以及UnsavedFiles目录下的全部内容
注意:如果是多用户测试环境,可替换为系统环境变量路径%APPDATA%\Microsoft\适配不同用户名
2. 清理Office异常退出注册表标记
Office会在注册表中记录进程异常退出的状态,仅删文件仍可能触发恢复提示,需对应删除以下注册表项:
- Word项:
HKEY_CURRENT_USER\Software\Microsoft\Office\<Office版本号>\Word\Resiliency - Excel项:
HKEY_CURRENT_USER\Software\Microsoft\Office\<Office版本号>\Excel\Resiliency - PowerPoint项:
HKEY_CURRENT_USER\Software\Microsoft\Office\<Office版本号>\PowerPoint\Resiliency
说明:<Office版本号>对应你安装的版本,2016/2019/365均为16.0,2013为15.0,2010为14.0
3. 集成到Squish测试前置钩子
你可以把上述清理逻辑写成批处理脚本,在Squish测试套件的startup钩子中调用,自动完成清理:
示例批处理代码段(假设Office版本为16.0):
:: 先杀残留进程兜底 taskkill /f /im winword.exe /im excel.exe /im powerpnt.exe 2>nul :: 清理缓存文件 del /q /s "%APPDATA%\Microsoft\Word\*.asd" "%APPDATA%\Microsoft\Word\*.tmp" rmdir /s /q "%APPDATA%\Microsoft\Word\UnsavedFiles" del /q /s "%APPDATA%\Microsoft\Excel\*.asd" "%APPDATA%\Microsoft\Excel\*.tmp" rmdir /s /q "%APPDATA%\Microsoft\Excel\UnsavedFiles" del /q /s "%APPDATA%\Microsoft\PowerPoint\*.asd" "%APPDATA%\Microsoft\PowerPoint\*.tmp" rmdir /s /q "%APPDATA%\Microsoft\PowerPoint\UnsavedFiles" :: 清理注册表标记 reg delete "HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Word\Resiliency" /f reg delete "HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Excel\Resiliency" /f reg delete "HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\PowerPoint\Resiliency" /f
Squish中调用方法:在测试套件的 suite_settings.py 中添加以下代码,测试启动前自动执行脚本:
import os import subprocess def main(): # 替换为你的批处理脚本实际路径 cleanup_script = r"C:\test_tools\office_cleanup.bat" subprocess.run(cleanup_script, shell=True, check=True)
内容的提问来源于stack exchange,提问作者shuriksun
相关产品推荐
相关产品推荐

