• 1. 自动化测试 自动化测试指软件测试的自动化,软件测试就是在预设条件下运行系统或应用程序,评估运行结果,预先条件应包括正常条件和异常条件。 自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较。在此过程中,为了节省人力、时间或硬件资源,提高测试效率,便引入了自动化测试的概念。 VS2010编码的UI测试,属于自动化测试中的一种,它可测试应用程序的用户界面是否功能正常。 编码的 UI 测试对应用程序的用户界面控件执行操作,并验证是否以正确的值显示了正确的控件。
  • 2. 测试准备vs2010 高级专业版或旗舰版 下面几个暂时可以不装(影响不是很大) Vs2010 SP1 VS2010 FP1,FP2 VS10-KB2403277-x86.exe
  • 3. 测试支持Platform :Silverlight 4,Winform,WPF,IE, Dynamics CRM Web client OS :Windows XP with Service Pack 3 Windows Server 2003 with Service Pack 1 Windows Server 2003 with Service Pack 2 Windows Server 2008 and Windows Server 2008 R2 Windows Vista with Service Pack 1 Windows Vista with Service Pack 2 Windows 7 http://msdn.microsoft.com/en-us/library/dd380742(VS.100).aspx
  • 4. 简单示例:信贷系统登录 正常登录(简单录制) 实现原理 用户错误登录 (添加断言) 各种错误登录(数据驱动)
  • 5. 1.新建一个项目 2.新建一个文件夹Maps(用来存放uimap) 3.新建ui map and Code UI Test
  • 6. 分别新建Code UI Test 和 CodeUI Test Map
  • 7. 生成 UIMap :Login 生成CodedUITest1.cs
  • 8. 选中需要录制的UIMap,开始录制。 录制内容都存放在LoginMap中,具体会在下面讲到。 可以再Maps文件夹中添加新的UIMap,并开始新的录制,UIMap之间互不影响
  • 9. 输入 “user Name”, “password”,then click “登录”.Recorded Actions ( 如果录制出错,可以删除部分Action) 开始录制
  • 10. 点击蓝框,定义一个方法,点击红框
  • 11. 打开Login.Designer.cs,可以看到自动生成的代码 LoginOpp方法体内的就是刚才录制的操作,具体下面会讲到。
  • 12. 打开CodedUITest1.cs文件,新建方法 TestCase_Login(),并标记上[TestMethod] 方法体内加上调用 Login Map的方法
  • 13. Open Test View.
  • 14. Click refresh select the CodedUITest.. ,click Run Selection
  • 15. 实现原理录制或手动添加控件一个xml文件保存控件到.uitest 生成转化 调用Login类里面的方法
  • 16. Code UI Test Builder录制(控件录制和Actions模拟) 通过录制,会将控件和鼠标键盘操作保存 到Login.uitest 文件中 具体录制步骤(可删除) 控件的 增删改查 其实就是对Login.uitest文件的增删改查 生成Login.Designer.cs 通过读取Login.uitest,自动生成代码.
  • 17. Login.uitestConfiguration:是对环境进行一个描述和配置,对测试几乎没有影响,可以忽略 InitializeActions:指初始化需要执行的操作 ExecuteActions:指测试过程中的操作 CleanupActions:指测试完毕需要清理资源的Actions OnErrorAction:则指代异常处理Actions Maps:是我们需要关注的对象库,我们操作过程中所识别的所有控件都是会存放到这里 ValueMap:是值映射,类似于参数记载,实际功能也不是特别大
  • 18. Login.uitest to Login.Designer.cs对应Login.uitest的ExcuteAction,就是一些鼠标键盘操作,和控件赋值。
  • 19. Login.uitest to Login.Designer.cs红框中是用来传递方法参数(数据驱动中会使用到)绿框中对应Login.uitest的Maps
  • 20. Login.Designer.cs to Login.cs因为Login.Designer.cs文件内容由Login.uitest决定,修改Designer文件是无效的。为了能手动修改,可以选择使用Login.cs. 将Login.Designer.cs的方法move到Login.cs,双击Login.uitest,如上图 其他方法自己看,此界面用来方便修改Login.uitest中的ExcutionAction
  • 21. 添加断言(重新录制,输入错误用户名)用户名错误登录
  • 22. LoginDesigner.cs打开CodeUITest.cs,调用断言AssertMethod1
  • 23. 各种错误登录用户名不存在 密码错误 用户名为空 通过数据驱动实现上面3种情况
  • 24. 新建 TestCase.xml 输入数据 绑定数据到指定方法 修改方法参数,实现数据驱动
  • 25. 添加 TestCase.xmlTestCase.xml,输入数据UserInfo
  • 26. 进入TestView,右击需要绑定的方法,点属性选择DataConnection String,点击后面的浏览按钮
  • 27. 选择XML File,Next
  • 28. 浏览
  • 29. 选择表(通过添加不同的表,可以添加各种不同类型的数据) Next
  • 30. 选中UserInfo,完成
  • 31. 以上配置步骤完成后,就是自动编辑了 CodeUITest.cs,可以打开该文件验证配置是否实现
  • 32. 由原来的[TestMethod]基础上加了很多其他配置 这些配置就是对于该方法的数据绑定,点击保存,进入TestView运行
  • 33. 数据驱动带来的回放失败这里的失败原因很明显,是找不到控件(红框表示)。 为什么找不到控件?因为此时弹出的窗口不是我们原来录制的窗口了,程序通过上面的属性找不到这个控件。这个时候,我们可以把查找范围扩大一点,让他能找到。 通过观察可以发现此时弹出的窗口的Name 属性变了,不再是”用户名不存在”,而是”用户名为空”。
  • 34. 解决办法修改Login.uitest Maps 下的控件,将控件的其中一个查询条件去掉。 右击Login.uitest,重新生成 观察Login.Designer.cs ,如下图 还有一种解决办法就是直接写在Login.cs中。
  • 35. MSTEST.exe
  • 36. 相关资料http://www.cnblogs.com/realdigit/category/277694.html http://social.msdn.microsoft.com/Forums/en-US/vsautotest/threads
  • 37. END Thank youweijiangzhu@hengtiansoft.com