- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《用VS .NET建立UI自动测试工具》.doc
摘要:.NET框架组件为简单快速地建立用户界面测试自动化程序提供了一条令人惊奇的新途径。通过使用System.Reflection和System.Threading名字空间中的对象,你可以在几分钟内写好自动化测试程序。本文介绍了一个典型的基于Windows的应用程序,它将作为测试对象。接着建立了基于C#的测试工具,它模拟点击测试应用程序的UI控件并检查应用程序的状态。在工具建立后,仔细解释了它是怎样工作的,这样你就能在自己的应用中修改并扩充它。
如果你试图写一个用户界面自动化测试程序,你会发现要化很长的时间并且很棘手。通过使用Reflection和.NET框架组件中的ThreadPool对象,你能简单快速地编写强大的用户界面测试自动化程序。本文将介绍一个小的简单的基于Windows的应用程序的建立,强大的测试工具将演示这些.NET特性。
问题
假设你正在开发的Windows应用程序有标准的用户界面。Visual Studio .NET和.NET框架组件使建立按钮、菜单项和所有其它控件很简单。当然,在开发工作中你会通过检测代码中的基本功能对用户界面执行隐含的手工测试。但是假定你希望建立一个自动化的测试,它将把检查用户界面做得更全面。如果你的产品设计是稳定的,并且你有很多时间和资源,解决的方法可能是购买专门的用户界面测试软件。虽然目前有几款好的工具,但是它们都有缺点。它们相对较贵,通常使用专有的脚本语言,并且如果产品变化很大将需要花费很长时间重作脚本。由于这些原因,该方法在很多开发环境中是不适用的,必须有更好的作UI测试自动化的途径。
有了这种想法后,我开始建立一个UI测试自动化工具,它允许你在15分钟内、使用少于1页的代码建立一个测试脚本,可给新测试员使用,并且仅仅使用了.NET的功能,没有外部依赖。
在做了一些试验后我发现.NET实际上提供了建立用户界面测试自动化程序的资源,它符合所有的三个设计目标。由于解决方案实现快速,你能在产品设计经常变化的情况下建立测试自动化程序;由于解决方案容易理解,与你一起工作的人能够使用很少的时间维护测试自动化代码;由于解决方案只使用了.NET代码,没有其它的外部依赖打断测试自动化过程。
应用程序
我们将建立一个简单的应用程序作为测试的基础。启动Visual Studio .NET并建立一个叫做MyWinApp的C# Windows项目。从工具箱中添加三个按钮控件,一个文本框和一个列表框。所有控件的属性都不修改(见图1)。
图1.一个简单的应用程序
双击button1为该按钮记录一个事件处理程序并添加下面的代码,它在textBox1中显示Hello World:
private void button1_Click(object sender, System.EventArgs e) { textBox1.Text = Hello World; }
你可以看到,button1_Click有两个参数。这些参数很重要,在我编写测试自动化它们模拟点击按钮。Sender参数是产生相关事件的对象--在这种情况下是button1。EventArgs参数是相关事件的附加信息。在按钮点击的情况下,没有必要的附加信息。
双击button2并添加下面的代码,它在listBox1中显示两行消息:
private void button2_Click(object sender, System.EventArgs e) { listBox1.Items.Add(Goodbye World); listBox1.Items.Add(Come back again!); }
观察操作listBox1字段包含调用一个属性(Items)上的方法(Add)。当自动化时,我需要访问这些字段、属性和方法。
最后,双击button3并添加下面的代码,它删除textBox1和listBox1中的任何消息:
private void button3_Click(object sender, System.EventArgs e) { textBox1.Text = ; listBox1.Items.Clear(); }
建立并运行该应用程序。该应用程序有不同的状态。初始状态是{textBox1 = textBox1, listBox1 = (empty)},图2中的状态是{textBox1 = Hello World, listBox1 = Goodbye World / Come back again}。当我编写测试自动化时,我必须能够检查状态。
图2. 点击button2的状态
解决方案
现在我们建立一个简单但是强大的自动化测试工具,它模拟点击MyWinApp上的按钮,接着检查按钮的状态。启动Vi
文档评论(0)