自动化压测工具开发(MFC)
1. 背景
为了减轻测试人员在进行MFC程序压力测试时的重复手动操作,本文档描述了开发一个自动化压力测试工具的过程。该工具能够根据程序界面某块区域的预定状态变化,自动执行鼠标点击或键盘输入操作。
2. 技术概览
- 串口控制:用于控制外部设备,如继电器。
- MFC
CRectTracker
:实现截图功能,创建简单的截图对话框。 - GDI+:用于图像处理和屏幕捕获。
mouse_event
:模拟鼠标点击。keybd_event
:模拟键盘输入。- MD5:用于图像内容校验。
3. 串口通信控制
串口通信用于控制继电器的上下电状态,进而控制USB设备的电源。
3.1 串口初始化
bool CComTest::InitialCom(int iComID, int iComPort, DWORD iBaudRate) {// 省略部分错误检查和资源清理代码...// 配置串口参数DCB dcbSerialParams = {0};GetCommState(m_hCom, &dcbSerialParams);dcbSerialParams.BaudRate = iBaudRate;dcbSerialParams.ByteSize = 8;dcbSerialParams.StopBits = STOPBITS_ONE;dcbSerialParams.Parity = NOPARITY;SetCommState(m_hCom, &dcbSerialParams);// 设置串口超时COMMTIMEOUTS timeouts = {0};timeouts.ReadIntervalTimeout = MAXDWORD;SetCommTimeouts(m_hCom, &timeouts);// 完成串口初始化return TRUE;
}
3.2 读取串口
DWORD CComTest::ReadCom(BYTE *pBuff, int nCount) {DWORD dwRead = 0;ReadFile(m_hCom, pBuff, nCount, &dwRead, N