小工具之崩溃模拟工具

本文章转载于搜狗测试

在功能测试的过程中,我们可能会有一类这样的测试需求:测试被测软件的异常处理模块,确保异常处理模块工作正常。例如:搜狗浏览器开发的过程中,加入了Exception handle的处理机制,无论是主进程还是子进程,当程序出现异常崩溃时,搜狗浏览器可以弹出异常对话框,同时在%temp%目录下生成se.zip的崩溃信息文件并上传,以便开发人员可以快速定位崩溃原因进行修复。同样,如QQ、Word等软件都有类似的机制。

现在问题来了,为了验证崩溃处理机制正常,我们如何构造程序崩溃的情况呢?

在项目早期,我们可能掌握着数量可观的崩溃BUG,所以回答以上问题很容易。但是随着崩溃BUG逐步地修复,以上问题就变得很难处理了。

本次分享,小编将介绍搜狗同学自己做的一款崩溃模拟工具,使用它可以对任意指定进程进行崩溃模拟操作。

PS:感兴趣的各位读者也可以去Git上下载源码进行修改。

程序下载地址:

http://url.cn/ekZwQ3

源码下载地址:

https://github.com/sogou/Test-InjectDll.git

源码解读:

崩溃模拟过程大致是:

1.向指定进程(如搜狗浏览器)注入一段执行代码,使得该进程执行LoadLibrary加载指定的一个DLL文件(如InjectDll.dll)。

2.该Dll被上述的指定进程加载后,启动一个线程,在该线程中执行能够造成程序崩溃的操作(如除0操作)。

注入代码执行LoadLibrary的实现:

Dll加载并构造崩溃的实现:

工具使用方法:

示例:小编现在要构造搜狗浏览器主进程的崩溃

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 177,295评论 25 709
  • 一、温故而知新 1. 内存不够怎么办 内存简单分配策略的问题地址空间不隔离内存使用效率低程序运行的地址不确定 关于...
    SeanCST阅读 12,422评论 0 27
  • 以后常看
    三个梦阅读 1,526评论 1 0
  • 我一直想 抓住时光的手 轻摇漫舞中走过 走过一片一片的风景 犹如天上小鸟的飞羽 托着日月的光辉 偏偏是时光 拎我上...
    独钓云烟阅读 1,472评论 7 11
  • disable-tls 使用命令关闭检查 任然没有解决,算了还是安装一下OpenSSL吧,由于现在一直是windo...
    Godtoy阅读 9,254评论 0 0

友情链接更多精彩内容