网站机房建设,vs做网站添加背景,wordpress调查问卷,潍坊网站建设选聚搜网络好#x1f4e2;专注于分享软件测试干货内容#xff0c;欢迎点赞 #x1f44d; 收藏 ⭐留言 #x1f4dd; 如有错误敬请指正#xff01;#x1f4e2;交流讨论#xff1a;欢迎加入我们一起学习#xff01;#x1f4e2;资源分享#xff1a;耗时200小时精选的「软件测试」资… 专注于分享软件测试干货内容欢迎点赞 收藏 ⭐留言 如有错误敬请指正交流讨论欢迎加入我们一起学习资源分享耗时200小时精选的「软件测试」资料包 最困难的时候也就是我们离成功不远的时候 在平常的测试工作中经常要安装软件卸载软件, 即繁琐又累。 安装和卸载完全可以做成自动化。 安装软件我们可以通过自动化框架自动点击Next,来自动安装。 卸载软件我们可以通过msiexec命令行工具自动化卸载软件 用msiexec 命令来卸载软件
平常我们手动卸载软件都是到控制面板中的添加/删除程序中去卸载软件 或者通过程序自带的卸载软件来卸载。
我们可以通过 MsiExec.exe /X{ProductCode} 命令来卸载程序。
关于MsiExec.exe 请看 Msiexec (command-line options) | Microsoft Learn 注册表中查找ProductCode
ProductCode是Windows 安装程序包的全局唯一标识符 (GUID) 我们可以通过注册表来获取ProductCode 实例 用MsiExec.exe 自动卸载Xmarks.
Xmarks 是一个用来同步收藏夹的工具 我平常用来同步IE,firefox,chrome的收藏夹。
先用注册表打开如下位置
32位操作系统: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\
注意 如果是64位操作系统:
64位的程序还在 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\
32位的程序而是在 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\ Uninstall下面的注册表子键很多 你需要耐心地一个一个去查找DisplayName, 从而找到程序的ProductCode, 如下图。 从注册表中我们找到UninstallString这个键值: MsiExec.exe /X{C56BBAC8-0DD2-4CE4-86E0-F2BDEABDD0CF}, 那么ProductCode就是{C56BBAC8-0DD2-4CE4-86E0-F2BDEABDD0CF}
我们可以通过 MsiExec.exe /X{ProductCode} 命令来卸载程序.
那么卸载的命令应该为 MsiExec.exe /X{C56BBAC8-0DD2-4CE4-86E0-F2BDEABDD0CF}
然后在CMD中直接调用这个命令, 会弹出一个对话框点击是 后 软件就能被卸载了。 在自动化测试中我们不想弹出这个对话框而是希望直接卸载。同时也不希望系统重启 只要加个两个参数 /quiet /norestart 就可以了
现在的卸载的命令是: MsiExec.exe /X{C56BBAC8-0DD2-4CE4-86E0-F2BDEABDD0CF} /quiet C#中卸载程序 C#的卸载代码比较简单 当然你也可以用其他语言。 Process p new Process();p.StartInfo.FileName msiexec.exe;p.StartInfo.Arguments /x {C56BBAC8-0DD2-4CE4-86E0-F2BDEABDD0CF} /quiet /norestart;p.Start(); C#查找注册表中的ProductCode
最麻烦的在于如何到注册表中获取ProductCode。 如果做非Web程序的自动化测试经常需要跟注册表打交道。
代码为: public static string GetProductCode(string displayName){string productCode string.Empty;// 如果是32位操作系统或者系统是64位程序也是64位string bit32 SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall;// 如果操作系统是64位并且程序是32位的string bit64 SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall;RegistryKey localMachine Registry.LocalMachine;RegistryKey Uninstall localMachine.OpenSubKey(bit32, true);foreach (string subkey in Uninstall.GetSubKeyNames()){RegistryKey productcode Uninstall.OpenSubKey(subkey);try{string displayname productcode.GetValue(DisplayName).ToString();if (displayname displayName){string uninstallString productcode.GetValue(UninstallString).ToString();string[] strs uninstallString.Split(new char[2] { {, } });productCode strs[1];return productCode; }}catch { }}return productCode;}
最后的分享 我这里给你们分享一下我所积累和整理的一些文档和学习资料有需要直接领取就可以了 以上内容对于软件测试的朋友来说应该是最全面最完整的备战仓库了为了更好地整理每个模块我也参考了很多网上的优质博文和项目力求不漏掉每一个知识点很多朋友靠着这些内容进行复习拿到了BATJ等大厂的offer这个仓库也已经帮助了很多的软件测试的学习者希望也能帮助到你。