一起谈.NET技术,VS2010测试功能之旅:编码的UI测试(1)

简介:   前言  研究VS2010的自动化测试有一段时间了,在研究的过程中,发现网上的VS2010相关的测试资料十分稀少,这给学习带来比较大的困难。幸运的是,自己因为常用QuickTest Professional做自动化测试,并且对.Net代码比较了解,使得在学习的过程中并不是特别困难,对UI CODED TEST也已经有一定了解。

  前言

  研究VS2010的自动化测试有一段时间了,在研究的过程中,发现网上的VS2010相关的测试资料十分稀少,这给学习带来比较大的困难。幸运的是,自己因为常用QuickTest Professional做自动化测试,并且对.Net代码比较了解,使得在学习的过程中并不是特别困难,对UI CODED TEST也已经有一定了解。本着与大家交流,共同进步的想法,思考之后,决定写这些随笔,来对VS2010的测试功能做一些探索和总结。希望大家能够多多指教!

  自动化测试 

  自动化测试指软件测试的自动化,软件测试就是在预设条件下运行系统或应用程序,评估运行结果,预先条件应包括正常条件和异常条件。

  自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较。在此过程中,为了节省人力、时间或硬件资源,提高测试效率,便引入了自动化测试的概念。

  VS2010编码的UI测试,属于自动化测试中的一种,它可测试应用程序的用户界面是否功能正常。 编码的 UI 测试对应用程序的用户界面控件执行操作,并验证是否以正确的值显示了正确的控件。

  一个简单的示例 

  在上面对于自动化测试的介绍中已经提到,编码的UI测试将对应用程序的用户界面进行操作之后进行验证,对于界面的操作,我们需要预先录制或者直接编写(日后会介绍直接编写的方式),在这个简单的实例中,我们将先使用录制进行操作,录制完毕之后,使用回放功能进行回放(类似于录音机,录制之后再播放)。

  一.新建测试项目

  1、首先打开VS2010,选择测试à新建测试:

  2、选择编码的UI测试,简历一个UI测试,名称为CodedUITest1.cs:

  3、创建完成,我们可以看到创建之后,项目的目录结构如下:

  下面做一个简单的介绍:

  Solution Items:存放该解决方案中各个测试项目公用的设置。

  Local.testsetings文件和TraceAndTestImpact.testsettings是对解决方案中的测试进行整体上的设置,这个是建立测试解决方案的时候默认自动建立的两项,一个用于运行,一个用于调试,当然这两项是可以删除的,testsettings类型文件可以通过右击Solution Items的时候点击添加新建项建立。

  TestProject1.vsmdi:是用于对项目中创建的测试method进行组织和管理,让其能组织成流程线,一个个进行测试。

  TestProject:我们刚才建立的测试项目,可以看到刚才建立的UI测试CodedUITest1.cs。

  二.录制程序并回放

  1、假设我们现在有一个程序(这个示例程序在文章末尾有提供地址),现在我们需要对系统登录的部分进行测试,正确的用户名为”Admin”,密码为”123456”。

  测试的内容是:

  (1).输入错误的用户名或输入错误的密码,检测系统是否提示“用户或密码错误”。

  (2).输入正确的用户名和正确的密码,检测系统是否提示“登录成功”。

  程序的截图如下所示:

  2、现在我们可以开始进行录制,将刚才的测试内容录制成实际的操作:

  3、点击确定之后,可以看到屏幕的右下角弹出一个UI测试生成器,点击录制之后,就可以进行操作了:

  4、之后首先输入错误的用户名和密码,然后点击登录,之后弹出提示框“用户名和密码错误“:

  5、这个时候我们可以在录制面板点击暂停录制,然后点击”生成代码“,并将刚才的操作放入方法InputErrorUidPwd中(至于生成后的代码被放在了哪,现在可以先不用关心,最后我会进行说明)。

  6、这个时候点击录制面板上的准星(这个时候准星已经Enable了),并一直按住鼠标不放,将鼠标拖到刚才的弹出框上面的文字再松开,然后测试生成器的对象库窗口会自动弹出,VS2010将捕获弹出框上的label对象,如下图所示:

  7、现在我们要进行第一个验证,就是验证这个弹出框”用户名或密码错误!”是否弹出来了,如果是,则测试通过,如果不是,则失败,接着先前的步棸,首先要确认左边的列表中“UI用户名或者密码错误Text“对象选中,之后选择右边的列表中的Exists属性(该属性表示label是否存在,存在则是True,不存在则是false),点击添加断言。

  然后弹出为Exists添加断言的窗口,这里我们需要选择AreEqual,比较值是True,表示我们断言”用户名或密码错误”这个label存在,如果运行测试的时候该label确实存在,则该测试步骤是通过的,否则就是失败。

  之后点击录制面板的生成代码,为刚才添加的断言生成方法AssertErrorWindow()(至于生成后的代码被放在了哪,现在可以先不用关心,最后我会进行说明)。

  8、然后我们继续开始录制,录制开启后,首先点击“用户名或密码错误“弹出框的确定,然后用上面介绍的同样的方法,输入正确的用户名和密码,判断弹出框是否为”登录成功”,分别添加InputRightUidPwd()操作方法和AssertRightWinow()断言方法,最后便可以录制结束。

  9、之后我们可以点击运行来进行测试:

  之后VS2010会自动操作刚才演示的程序的登录窗口,然后报告测试结果:

  三.如果现在程序发生异常  

  假设现在刚才的示例程序,本来输入错误的用户名或密码,应该弹出提示“用户名或密码错误”,现在因为开发人员一时疏忽,不慎将提示改成了乱码“咪asd阿什顿”,那么是否刚才录制的测试能够把这个测试出来呢?我们现在可以试试(这个错误的示例程序在文章最后也提供下载)。

  开始运行测试:

  最终不负我们所望,错误还是被测试出来了:

  四.录制生成的代码被放在了哪里? 

  首先我们再看看项目的文件结构:

  可以发现刚才录制之后,VS2010自动生成了UIMap.uitest文件,我们自动生成的代码就放在UIMap.Designer.cs中。

  进入去查看,可以看到刚才录制为我们自动生成的四个方法InputErrorUidPwd(),AssertErrorWinow(),InputRightUidPwd(),AssertRightWinow(),展开之后可以看到详细操作。

  而在CodeUITest1.cs文件中,也自动添加了几句代码,调用UIMap中录制的测试操作:

  演示中提到的示例程序

  说明:RightDemo.exe是演示中使用的没有问题的程序,ErrorDemo.exe是演示中故意修改提示为乱码的那个示例程序。下载点我

VS2010测试功能之旅 

——编码的UI测试系列之一

RealZhao,2011年2月14日

目录
相关文章
|
5月前
|
Web App开发 人工智能 JavaScript
主流自动化测试框架的技术解析与实战指南
本内容深入解析主流测试框架Playwright、Selenium与Cypress的核心架构与适用场景,对比其在SPA测试、CI/CD、跨浏览器兼容性等方面的表现。同时探讨Playwright在AI增强测试、录制回放、企业部署等领域的实战优势,以及Selenium在老旧系统和IE兼容性中的坚守场景。结合六大典型场景,提供技术选型决策指南,并展望AI赋能下的未来测试体系。
|
4月前
|
人工智能 Java 测试技术
单元测试覆盖率的自动控制技术
Jacoco是Java程序覆盖率工具,可以在pom.xml通过配置来自动控制程序的覆盖率
125 5
|
5月前
|
人工智能 资源调度 jenkins
精准化回归测试:大厂实践与技术落地解析
在高频迭代时代,全量回归测试成本高、效率低,常导致关键 bug 漏测。精准化测试通过代码变更影响分析,智能筛选高价值用例,显著提升测试效率与缺陷捕获率,实现降本增效。已被阿里、京东、腾讯等大厂成功落地,成为质量保障的新趋势。
|
7月前
|
安全 测试技术 持续交付
软考软件评测师——基于风险的测试技术
本文详细阐述了测试计划的核心要素与制定流程,涵盖测试范围界定、实施策略规划、资源配置及风险管理机制。通过风险识别方法论和评估模型,构建了完整的质量保障体系。同时,针对不同测试级别与类型提供具体配置建议,并提出技术选型原则与实施规范,确保测试活动高效有序开展,为项目成功奠定基础。内容结合实际经验,具有较强指导意义。
|
数据可视化 前端开发 测试技术
接口测试新选择:Postman替代方案全解析
在软件开发中,接口测试工具至关重要。Postman长期占据主导地位,但随着国产工具的崛起,越来越多开发者转向更适合中国市场的替代方案——Apifox。它不仅支持中英文切换、完全免费不限人数,还具备强大的可视化操作、自动生成文档和API调试功能,极大简化了开发流程。
|
7月前
|
Java 测试技术 容器
Jmeter工具使用:HTTP接口性能测试实战
希望这篇文章能够帮助你初步理解如何使用JMeter进行HTTP接口性能测试,有兴趣的话,你可以研究更多关于JMeter的内容。记住,只有理解并掌握了这些工具,你才能充分利用它们发挥其应有的价值。+
1155 23
|
9月前
|
SQL 安全 测试技术
2025接口测试全攻略:高并发、安全防护与六大工具实战指南
本文探讨高并发稳定性验证、安全防护实战及六大工具(Postman、RunnerGo、Apipost、JMeter、SoapUI、Fiddler)选型指南,助力构建未来接口测试体系。接口测试旨在验证数据传输、参数合法性、错误处理能力及性能安全性,其重要性体现在早期发现问题、保障系统稳定和支撑持续集成。常用方法包括功能、性能、安全性及兼容性测试,典型场景涵盖前后端分离开发、第三方服务集成与数据一致性检查。选择合适的工具需综合考虑需求与团队协作等因素。
1487 24
|
11月前
|
JSON 前端开发 测试技术
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
890 10
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
|
9月前
|
SQL 测试技术
除了postman还有什么接口测试工具
最好还是使用国内的接口测试软件,其实国内替换postman的软件有很多,这里我推荐使用yunedit-post这款接口测试工具来代替postman,因为它除了接口测试功能外,在动态参数的支持、后置处理执行sql语句等支持方面做得比较好。而且还有接口分享功能,可以生成接口文档给团队在线浏览。
419 2
|
11月前
|
JSON 前端开发 API
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
647 5
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡