当前位置: 首页 > news >正文

自动化压测工具开发(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

相关文章:

自动化压测工具开发(MFC)

1. 背景 为了减轻测试人员在进行MFC程序压力测试时的重复手动操作,本文档描述了开发一个自动化压力测试工具的过程。该工具能够根据程序界面某块区域的预定状态变化,自动执行鼠标点击或键盘输入操作。 2. 技术概览 串口控制:用于控制外部设备,如继电器。MFC CRectTracker…...

【嵌入式DIY实例】-Nokia 5110显示DHT11/DHT22传感器数据

Nokia 5110显示DHT11/DHT22传感器数据 文章目录 Nokia 5110显示DHT11/DHT22传感器数据1、硬件准备2、代码实现2.1 显示DHT11数据2.2 显示DHT22数据本文介绍如何将 ESP8266 NodeMCU 开发板 (ESP-12E) 与 DHT11 数字湿度和温度传感器以及诺基亚 5110 LCD 连接。 NodeMCU 从 DHT11…...

C# —— 字符串拼接

字符串拼接的方式一 之前的算术运算符 只是用来数值类型的相加 主要做的是数学的运算 // 而string 不存在算数运算 但是可以通过加号 进行拼接 string str "123" 字符串拼接 str str "456"; Console.WriteLine(str); // "123456&q…...

css3新增的伪类有哪些

CSS3 引入了许多新的伪类选择器&#xff0c;这些选择器为开发者提供了更多的样式控制选项。以下是一些 CSS3 中新增的主要伪类选择器&#xff1a; 结构性伪类&#xff1a; :root&#xff1a;选择文档的根元素&#xff08;通常是 <html>&#xff09;。:empty&#xff1a;…...

低代码开发:企业供应链数字化的挑战与应对

随着全球数字化浪潮的不断推进&#xff0c;企业供应链管理也面临着日益复杂的挑战。在这样的背景下&#xff0c;低代码开发技术的出现为企业提供了一种更高效、更灵活的数字化解决方案。本文将探讨低代码开发在企业供应链数字化中的应用&#xff0c;以及它所带来的挑战与应对策…...

线程池的创建与使用

目录 一、线程池1.1 线程池概念1.2 线程池原理1.3 创建线程池的方式1.4 不同特点的线程池1.5 ThreadPoolExecutor[重要]本文的思维导图 最后 一、线程池 1.1 线程池概念 如果有非常多的任务需要非常多的线程来完成,每个线程的工作时间不长,就需要创建很多线程,工作完又立即销毁…...

C++ 中的负无穷大赋值

1&#xff0c;代码先行 示例&#xff1a; #include<iostream> #include<limits>using namespace std;int main() {float inf_pos numeric_limits<float>::infinity();float inf_neg -1*inf_pos;cout << "inf_pos " << inf_pos &l…...

python实现九九乘法表

while循环实现&#xff1a; i 1while i < 9: # 控制行的循环j 1while j < i: # 控制每行的输出print(f"{j}*{i}{j * i}\t", end"")j 1print()i 1for循环实现&#xff1a; for i in range(1, 10):for j in range(1, i 1):print(f"{j}*…...

【已解决】chrome视频无法自动播放的问题

问题&#xff1a; 在用datav开发大屏的时候&#xff0c;放了一个视频组件&#xff0c;但是发现视频组件即使设置了自动播放&#xff0c;仍然无法自动播放 原因&#xff1a; 76 以上版本的谷歌浏览器只能在系统静音下自动播放 解决&#xff1a; 音频自动播放浏览器白名单设置&…...

为什么要分析电商用户数据?详解两大用户数据分析维度

零售电商行业的蓬勃发展带来了海量的客户数据&#xff0c;这些数据不仅记录了消费者的每一次点击、浏览、购买行为&#xff0c;还蕴含着巨大的商业价值。如何从这些数据中提炼出有价值的信息&#xff0c;成为电商企业提升竞争力、优化客户体验、实现可持续发展的关键。本文将深…...

Linux系统的FTP文件传输服务

一.FTP简介 Linux环境下高性能的FTP命令行工具&#xff0c;能够利用FTP协议进行高效的文件传输管理。借助此强大工具&#xff0c;用户能轻松连接远程服务器&#xff0c;执行上传、下载、删除及重命名等操作&#xff0c;显著提高两台设备间的文件交互效率。 1.FTP什么 ftp是一…...

redis 08 慢查询日志

1.什么是慢查询日志 2.慢查询和两个参数有关 2.1 2.2 3.例子&#xff1a; 4 参数详细介绍&#xff1a;...

山东大学软件学院项目实训-创新实训-基于大模型的旅游平台(三十一)- 微服务(11)

12.7 DSL查询语法 查询的基本语法 GET /indexName/_search{"query": {"查询类型": {"查询条件": "条件值"}}} 查询所有 GET /hotel/_search{"query": {"match_all": {}}} 12.7.1 全文检索查询 全文检索查询,会…...

DevExpress WPF中文教程:Grid - 如何向项目添加GridControl并绑定到数据

DevExpress WPF拥有120个控件和库&#xff0c;将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序&#xff0c;这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 无论是Office办公软件…...

nodejs湖北省智慧乡村旅游平台-计算机毕业设计源码00232

摘 要 随着科学技术的飞速发展&#xff0c;社会的方方面面、各行各业都在努力与现代的先进技术接轨&#xff0c;通过科技手段来提高自身的优势&#xff0c;旅游行业当然也不能排除在外。智慧乡村旅游平台是以实际运用为开发背景&#xff0c;运用软件工程开发方法&#xff0c;采…...

架构设计 - 根据性能压力测试结果优化服务器性能

概述&#xff1a;web软件项目工程实施过程&#xff0c;经常会用到客户端和服务端建立 KeepAlive 长连接来提高应用效率的场景。例如&#xff1a;移动端应用或者复杂的网页交互需要在用户浏览时频繁地向服务端发送请求。但是随之而来的问题是&#xff0c;需要对服务器端 tomcat …...

【必会面试题】事务的四大特性?ACID

目录 事务的四大特性&#xff0c;即ACID特性&#xff0c;是数据库管理的基石。 原子性&#xff08;Atomicity&#xff09; 定义&#xff1a;事务作为一个整体被执行&#xff0c;其内部的操作要么全部完成&#xff0c;要么全部不完成。如果事务中的任何一部分失败&#xff0c;那…...

【QT】记录一次QT程序发布exe过程

记录一次QT程序发布exe过程 使用windeploy与enigma发布独立的QT程序第一步 QT编译输出 **release** 版本第二步 QT 自带 windepoyqt 补全链接库第三步 enigma virtual box压缩打包为单一exe最后【2024-06-07 17】- 【补充】 贴一个自己用的bat脚本【**QtDeploy2exe.bat**】半自…...

数据分类分级,误把起点当终点

数据分类分级 吉祥学安全知识星球&#x1f517;除了包含技术干货&#xff1a;Java代码审计、web安全、应急响应等&#xff0c;还包含了安全中常见的售前护网案例、售前方案、ppt等&#xff0c;同时也有面向学生的网络安全面试、护网面试等。 01 — 数据分类分级的定义 数据分…...

stm32 启动文件分析

启动文件前面的介绍 启动文件是后缀为.s的汇编语言文本文件&#xff0c;每行前面的分号表示此行是注释行。 启动文件主要完成如下工作&#xff0c;即程序执行过程&#xff1a; - 设置堆栈指针SP __initial_sp。 - 设置PC指针 Reset_Handler。 - 设置中断向…...

OpenClaw安全配置要点:Qwen3.5-4B-Claude-4.6-Opus-Reasoning-Distilled-GGUF本地运行权限管理

OpenClaw安全配置要点&#xff1a;Qwen3.5-4B-Claude-4.6-Opus-Reasoning-Distilled-GGUF本地运行权限管理 1. 为什么需要特别关注OpenClaw的安全配置&#xff1f; 第一次在本地部署OpenClaw时&#xff0c;我犯了一个新手常见的错误——直接使用默认配置启动服务。结果第二天…...

OpenClaw+百川2-13B:个人知识库自动整理与问答系统搭建

OpenClaw百川2-13B&#xff1a;个人知识库自动整理与问答系统搭建 1. 为什么需要本地化知识管理系统 去年整理博士论文资料时&#xff0c;我遇到了一个典型的研究者困境&#xff1a;电脑里堆积了237个PDF、643篇网页存档和无数零散的笔记片段&#xff0c;但需要引用某个概念时…...

Firefox用户福音:免破解!一键安装HackBar 2.1.3旧版本完整教程

Firefox用户福音&#xff1a;免破解&#xff01;一键安装HackBar 2.1.3旧版本完整教程 在安全测试领域&#xff0c;HackBar作为一款经典的渗透测试工具&#xff0c;长期受到开发者和安全研究人员的青睐。然而&#xff0c;随着版本的迭代更新&#xff0c;新版本开始引入许可证验…...

OpenClaw技能扩展指南:为GLM-4.7-Flash添加自定义功能

OpenClaw技能扩展指南&#xff1a;为GLM-4.7-Flash添加自定义功能 1. 为什么需要自定义技能 去年冬天&#xff0c;当我第一次尝试用OpenClaw自动整理电脑上的照片时&#xff0c;发现现有的技能库无法满足我的特殊需求——按照拍摄地点和人物自动分类。这让我意识到&#xff0…...

【架构实战】分布式事务解决方案

一、分布式事务的挑战 在微服务架构下&#xff0c;一个业务操作可能涉及多个服务的数据修改。传统的本地事务无法保证跨服务的数据一致性。 经典场景&#xff1a; 用户下单 → 订单服务扣库存 → 支付服务扣余额 → 物流服务创建运单任何一步失败&#xff0c;都需要回滚之前的操…...

5分钟解锁WeMod专业版:开源工具让你的游戏修改体验全面升级

5分钟解锁WeMod专业版&#xff1a;开源工具让你的游戏修改体验全面升级 【免费下载链接】Wemod-Patcher WeMod patcher allows you to get some WeMod Pro features absolutely free 项目地址: https://gitcode.com/gh_mirrors/we/Wemod-Patcher 还在为WeMod专业版的订阅…...

【专栏二:深度学习】-【一张图讲清楚:什么是向前传输和向后传输】

文章目录前言一、输入数据&#xff1a;训练从样本开始二、向前传播&#xff1a;模型先算出一个预测结果三、先把第一个公式讲明白&#xff1a;为什么会有 z Wx b&#xff1f;四、只有线性计算还不够&#xff0c;所以还需要激活函数1. ReLU2. Sigmoid五、预测结果&#xff1a;…...

双模型灾备方案:OpenClaw同时配置百川2-13B-4bits与Llama3应对服务中断

双模型灾备方案&#xff1a;OpenClaw同时配置百川2-13B-4bits与Llama3应对服务中断 1. 为什么需要双模型灾备 去年冬天的一个深夜&#xff0c;我正在用OpenClaw自动处理一批技术文档的翻译任务。突然收到一连串报警通知——原本稳定运行的Qwen模型服务因为网络波动彻底失联。…...

ROS2数据录制实战:手把手教你用ros2 bag记录Duckiebot图像数据(附常见错误排查)

ROS2数据录制实战&#xff1a;从Duckiebot仿真到真实场景的全流程指南 在机器人开发过程中&#xff0c;数据记录与分析是算法验证和系统调试的关键环节。ROS2提供的ros2 bag工具链为开发者提供了强大的数据采集能力&#xff0c;但实际应用中往往会遇到各种意料之外的问题。本文…...

从HBuilder到npm:UniApp项目迁移与打包实战指南

1. 为什么需要从HBuilder迁移到npm&#xff1f; 很多UniApp开发者最初都是通过HBuilder这个集成开发环境入门&#xff0c;毕竟它提供了开箱即用的UniApp开发体验。但随着项目规模扩大&#xff0c;团队协作需求增加&#xff0c;或者需要更灵活的构建配置时&#xff0c;基于npm的…...