二、做自己的测试工具
接下来就看怎么做自己的功能回归测试工具,设计的框架如下:
这个框架大致分为四大部分, SPY++ 部分用来做对象的管理添、删、修改等, Object Map 是自定义的伪对象库, Run 进行运行操作过程,运行的过程应该使用多线程运行的机制,大致为三个线程:
1) 负责运行过程。
2) 处理运行过程中的意外窗体的弹出。
3) 负责记录日志和生成报告
接下来要做的事情就是先定义对象库和运行时的“脚本”结构。只取几个属性就好,对象库定义为一个 win.obj 文件,结构如:
其实就是一个 xml 文件,当中的 ID 就是用来唯一标识此对象的,这样不致于在回放的过程找到不正确的或者相似窗体。这样在录制的过程中通过 SetWindowHookEx 来加载鼠标钩子和键盘钩子记录操作的过程,比如在鼠标钩子中可以知道什么时候鼠标产生了什么事件,比如一次单击,那么鼠标钩子就通过单击消息的 lParam 的参数中取出鼠标所单击的坐标,然后通过 GetWindowFromPoint 得到止坐标下窗体的句柄,再使用 GetClassName , GetWindowText , GetWindowRect 等相关函数取得对应的属性的值,存入对象库。