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,如需转载请自行联系原作者
目录
相关文章
|
1月前
|
Web App开发 前端开发 测试技术
探索自动化测试工具:Selenium的威力与应用
探索自动化测试工具:Selenium的威力与应用
探索自动化测试工具:Selenium的威力与应用
|
2月前
|
测试技术
测试提交的bug开发不认可怎么办?
测试提交的bug开发不认可怎么办?
|
1月前
|
人工智能 运维 监控
构建高性能微服务架构:现代后端开发的挑战与策略构建高效自动化运维系统的关键策略
【2月更文挑战第30天】 随着企业应用的复杂性增加,传统的单体应用架构已经难以满足快速迭代和高可用性的需求。微服务架构作为解决方案,以其服务的细粒度、独立性和弹性而受到青睐。本文将深入探讨如何构建一个高性能的微服务系统,包括关键的设计原则、常用的技术栈选择以及性能优化的最佳实践。我们将分析微服务在处理分布式事务、数据一致性以及服务发现等方面的挑战,并提出相应的解决策略。通过实例分析和案例研究,我们的目标是为后端开发人员提供一套实用的指南,帮助他们构建出既能快速响应市场变化,又能保持高效率和稳定性的微服务系统。 【2月更文挑战第30天】随着信息技术的飞速发展,企业对于信息系统的稳定性和效率要求
|
2月前
|
Java 测试技术 C#
什么样的自动化测试开发是合格的?
什么样的自动化测试开发是合格的?
|
25天前
|
Web App开发 Java 测试技术
深入理解与应用软件自动化测试工具Selenium
随着软件开发的快速发展,软件测试在保证产品质量方面发挥着越来越重要的作用。其中,自动化测试以其效率高、成本低的特点受到了广大开发者的欢迎。本文主要介绍了自动化测试工具Selenium的基本概念、原理以及在实际开发中的应用,旨在帮助读者更好地理解和使用Selenium进行高效的自动化测试。
22 4
|
1月前
|
Web App开发 前端开发 JavaScript
Python Selenium是一个强大的自动化测试工具
Python Selenium是一个强大的自动化测试工具
|
2月前
|
Web App开发 测试技术 数据安全/隐私保护
Web自动化测试工具Selenium
Web自动化测试工具Selenium
|
2月前
|
监控 测试技术 API
自动化测试工具与电脑桌面监控软件的集成:Selenium与Python的无缝整合
在当今数字化时代,软件质量保证是每个软件开发团队都必须面对的重要挑战之一。自动化测试工具和电脑桌面监控软件的结合,为开发团队提供了一种有效的方式来确保软件的稳定性和性能。本文将介绍如何利用Python编程语言中的Selenium库,与桌面监控软件进行无缝整合,以实现对应用程序的自动化测试和桌面监控。
196 5
|
2月前
|
Java jenkins 测试技术
常见自动化测试框架和工具
常见自动化测试框架和工具
|
12天前
|
数据采集 存储 API
网络爬虫与数据采集:使用Python自动化获取网页数据
【4月更文挑战第12天】本文介绍了Python网络爬虫的基础知识,包括网络爬虫概念(请求网页、解析、存储数据和处理异常)和Python常用的爬虫库requests(发送HTTP请求)与BeautifulSoup(解析HTML)。通过基本流程示例展示了如何导入库、发送请求、解析网页、提取数据、存储数据及处理异常。还提到了Python爬虫的实际应用,如获取新闻数据和商品信息。