WinForm自动化测试工具开发札记(1)

简介:
序言
        一转眼来北京已经四个月了。度过了回龙观没有暖气的冬天,迎来了春天——脑子终于化开了。
        明天搬家,搬到积水潭,这样可以离工作的地方(Sigma大厦)近一些。我以为我能改变自己夜行动物的习惯,看来努力失败了。还是在晚上工作吧,这回到多晚都没事了,不用急着赶城铁,走着都能回家。
        背后那个组的同仁们自己开发了一个WinForm的自动测试工具,挺好玩儿,那么我就自己开发一个吧。业余时间做一做,一是深化对软件测试的理解,二是提高一下自己的编程水平——在技术与艺术上都追求品质。

2006-03-22
        兵马未动,先搞粮食。
        今天先找了些参考资料,然后决定了一下使用什么技术来开发这个大玩具。
         资料:
        [1] MSDN:这个不用多说吧,百科全书。
        [2] Programming Windows 5th Edition:因为要用到Win32编程,这本书是非常好的参考,以前一直没好好看,今天又祭器这面大旗。
        [3] Effective GUI Test Automation: Developing an Automated GUI Testing Tool:Sybex的书,内容不错,就是有点啰嗦,没办法,参考资料少,咱就耐着性子看吧。
         技术:
        就这个软件本身而言,由于是自动控制计算机(主要是用户输入部分),所以应属于Windows底层程序开发。这种底层开发,Win32是正道,但如果用Win32开发,写UI的难度太大了——除非写个命令行程序。另一个选择就是MFC,可惜UI还是不太好写,更要命的是MFC使用C++,C++对XML的支持实在是让俺不敢怎么恭维。为什么要用XML?是啊,自动化测试吗,测试员要录制测试脚本,再执行测试脚本,用XML语言写脚本比较现成哦,我可不想自己再开发一套脚本Tag。C#借.NET的光,对XML天生支持的不赖,而且写起UI来是飞速完成的。可惜哦,架在.NET Framework的高台上,与底层遥遥相望……调底层的API只能使用PInvoke和内存对齐,而且Win32函数里那些怪怪的数据类型怎么转成.NET的类型呢?(头大)
技术
UI
底层
XML
Win32
X
O
X
MFC
X
O
X
C#
O
X
O
        听背后组的MM说,他们是写了一个COM,然后又在C#里写的UI,对此,俺表示怀疑。第一:写COM干吗呢?写一个原生(非托管)DLL不就结了?搞个COM还要安装,麻烦的不行不行的;第二:……还没想好,回头再说。
        根据上表评估,我还是打算选用C#,底层虽然难搞,但不是不能搞。写个引擎,封装在一个DLL程序集里算了。就这么定了,明天开始概要设计了。
        对了,补两句。刚才试了试用Process类和Form类的一些静态方法,看看能不能避开PInvoke,结果发现使用Process的实例属性“主窗体Handle”得到的数值的确与Win32 的FindWindow得到的一样,可惜用Form的FromHandle来处理这个值就得不到主窗体——K~~~,我不生气,不生气……




本文转自 水之真谛 51CTO博客,原文链接:http://blog.51cto.com/liutiemeng/18761,如需转载请自行联系原作者
目录
相关文章
|
运维 Prometheus 监控
3 年部署经验总结:用自动化工具轻松管理 300+ 服务器开源软件
三年前接手公司IT部门时,我满怀信心,却发现部署效率低下。尽管使用了GitLab、Jenkins、Zabbix等100+开源工具,部署仍耗时费力。文档厚重如百科,却难解实际困境。一次凌晨三点的加班让我下定决心改变现状。偶然看到一篇国外博客,介绍了自动化部署的高效方式,我深受启发。
486 0
|
机器学习/深度学习 人工智能 测试技术
EdgeMark:嵌入式人工智能工具的自动化与基准测试系统——论文阅读
EdgeMark是一个面向嵌入式AI的自动化部署与基准测试系统,支持TensorFlow Lite Micro、Edge Impulse等主流工具,通过模块化架构实现模型生成、优化、转换与部署全流程自动化,并提供跨平台性能对比,助力开发者在资源受限设备上高效选择与部署AI模型。
1001 9
EdgeMark:嵌入式人工智能工具的自动化与基准测试系统——论文阅读
|
人工智能 搜索推荐 UED
一个牛逼的国产AI自动化工具,开源了 !
AiPy是国产开源AI工具,结合大语言模型与Python,支持本地部署。用户只需用自然语言描述需求,即可自动生成并执行代码,轻松实现数据分析、清洗、可视化等任务,零基础也能玩转编程,被誉为程序员的智能助手。
|
人工智能 数据可视化 数据挖掘
团队日报不用愁!自动化生成工具亲测:任务进度实时同步
本文深入分析了传统手动日报在数据孤岛、格式混乱和时效性差三大痛点,并探讨了自动化日报带来的效率提升、决策优化等四大核心价值。通过对板栗看板、SmartBrief、n8n 等六款主流工具的功能、适用场景及实战效果进行测评,为企业提供科学的选型建议与实施路径。
团队日报不用愁!自动化生成工具亲测:任务进度实时同步
|
Java 测试技术 API
自动化测试工具集成及实践
自动化测试用例的覆盖度及关键点最佳实践、自动化测试工具、集成方法、自动化脚本编写等(兼容多语言(Java、Python、Go、C++、C#等)、多框架(Spring、React、Vue等))
942 6
|
前端开发 Java jenkins
Jmeter压力测试工具全面教程和使用技巧。
JMeter是一个能够模拟高并发请求以检查应用程序各方面性能的工具,包括但不限于前端页面、后端服务及数据库系统。熟练使用JMeter不仅能够帮助发现性能瓶颈,还能在软件开发早期就预测系统在面对真实用户压力时的表现,确保软件质量和用户体验。在上述介绍的基础上,建议读者结合官方文档和社区最佳实践,持续深入学习和应用。
2410 10
|
人工智能 供应链 数据可视化
工作流梳理工具实战教程:手把手教你绘制第一张自动化流程图
本文剖析了团队因流程混乱导致重复劳动和效率低下的问题,提出通过工作流梳理提升协作效率的解决方案。总结了流程梳理的六大核心需求,并深度测评了6款主流工具,国内有板栗看板那,国外有kiss flow结合团队规模与需求提供选型建议,助力企业高效落地流程优化。
|
人工智能 缓存 自然语言处理
86_自动化提示:AutoPrompt工具
在当今人工智能领域,提示工程(Prompt Engineering)已成为释放大语言模型(LLM)潜能的关键技术。随着LLM规模和能力的不断增长,如何设计高效、精确的提示词成为研究和应用的焦点。然而,传统的手工提示工程面临着巨大挑战
781 0
|
安全 搜索推荐 机器人
风险规则引擎-RPA 作为自动化依赖业务决策流程的强大工具
机器人流程自动化(RPA)是一种通过软件“机器人”自动执行重复性任务的技术,能大幅提升工作效率。它适用于财务、电商等领域的标准化流程,如账单处理和退货管理。然而,RPA在复杂决策场景中存在局限,需结合决策模型(DMN)和业务规则管理系统(BRMS)实现流程与决策的协同自动化,从而增强灵活性与业务价值。
|
运维 监控 持续交付
还在为部署开源工具烦恼?自动化部署工具 Websoft9一键部署 300+ 开源应用
在数字化时代,开源工具因免费、灵活、可定制等特性广受欢迎,但其部署过程却常因环境配置复杂、依赖繁琐、耗时长等问题令人头疼。本文介绍了传统部署的三大难点,并提出两种解决方案:传统手动部署与集成化控制台部署。
还在为部署开源工具烦恼?自动化部署工具 Websoft9一键部署 300+ 开源应用