CodeUITest基础介绍—下集目录CodeUITest的常用模块FastConfg性能测试MCPMManager安装包自动化测试数据驱动的测试总结和讨论CodeUITest的常用模块1.UIMap.uitest整个结构图如上。Configuration:是对环境进行一个描述和配置,对测试几乎没有影响,可以忽略InitializeActions:指初始化需要执行的操作ExecuteActions:指测试过程中的操作(目前我们所通过录制所生成的操作都默认放在ExecuteActions,大家现在可以回过去仔细看看ExecuteActions节点的内容)CleanupActions:指测试完毕需要清理资源的ActionsOnErrorAction:指代异常处理ActionsMaps:是我们需要关注的对象库,我们操作过程中所识别的所有控件都是会存放到这里的ValueMap:是值映射,类似于参数记载,实际功能也不是特别大CodeUITest的常用模块1.UIMap.uitestExecuteActions的Action集(黄色是目前录制的时候经常用到的Action)CodeUITest的常用模块1.UIMap.uitest一般性应用:(1)通过ExecuteActions进行方法和判断式的修改和删除修改案例:录制判断式时,将属性判断Selected选成了Focus,直接修改文件,然后重新更新脚本。AssertActionUIObjectName=UIMap.UIMCPMManagerInstallShWindow.UIIdonotacceptthetermsWindow.UIIdonotacceptthetermsRadioButtonParameterName/PropertyNameSelected/PropertyNameExpectedValueTrue/ExpectedValueTypeBoolean/TypePropertyConditionAreEqual/PropertyCondition/AssertAction删除案例:录制步骤时,录了重复步骤。直接删除该操作的动作键Action和标记键TestStepMarkerAction(如果标记键包括了多个Action,只删其中一个动作,则不需删除标记键)(2)通过Maps修改映射对象的名称和删除无效映射修改案例:国际化时修改中英文。(暂未使用过)删除案例:不小心录制了没用到的映射,通过删除相应的映射组UIObject。CodeUITest的常用模块1.UIMap.uitest一般性应用:(1)通过ExecuteActions进行方法和判断式的修改和删除修改案例:录制判断式时,将属性判断Selected选成了Focus,直接修改文件,然后重新更新脚本。AssertActionUIObjectName=UIMap.UIMCPMManagerInstallShWindow.UIIdonotacceptthetermsWindow.UIIdonotacceptthetermsRadioButtonParameterName/PropertyNameSelected/PropertyNameExpectedValueTrue/ExpectedValueTypeBoolean/TypePropertyConditionAreEqual/PropertyCondition/AssertAction删除案例:录制步骤时,录了重复步骤。直接删除该操作的动作键Action和标记键TestStepMarkerAction(如果标记键包括了多个Action,只删其中一个动作,则不需删除标记键)(2)通过Maps修改映射对象的名称和删除无效映射修改案例:国际化时修改中英文。(暂未使用过)删除案例:不小心录制了没用到的映射,通过删除相应的映射组UIObject。CodeUITest的常用模块2.CodedUITest1.cs(可自定义名称)[TestMethod]:在函数前添加这个定义,即把该函数的整个过程当成一个独立的测试过程。如:运行CodeUITest的常用模块3.常用函数(1)ApplicationUnderTest,调起运行程序举例:启动D盘该目录下的FastConfig程序stringpath=@D:\CETR5\FastConfig\FastConfig.exe;ApplicationUnderTestrunFastConfig=ApplicationUnderTest.Launch(path);(2)待控件属性满足条件后继续下一步。WaitForControlCondition():控件满足某种条件后再往下执行WaitForControlEnabled():控件有效后再往下执行WaitForControlExist():控件可以被找到后再往下执行WaitForControlNotExist():控件不存在时再往下执行WaitForControlPropertyEqual():控件的某个属性等于等值后再往下执行WaitForControlPropertyNotEqual():控件的某个属性不等于等值后再往下执行WaitForControlReady():控件准备就序后再往下执行举例:待UICancelButton控件出现后,再进行按钮操作CodeUITest的常用模块3.常用函数(3)延时等待,Sleep举例:该方法脚本运行完后等待2s钟再结束。(4)结束进程,Kill(需引用usingSystem.Diagnostics;)举例:运行到某个步骤后,不需要考虑后面的结果,直接结束进程。CodeUITest的常用模块4.测试列表编辑器菜单栏”测试”-”窗口”-”测试列表编辑器”作用:(1)运行需要测试的测试项,和顺序测试项(顺序测试项第5节讲)(2)通过测试列表统一管理测试单元CodeUITest的常用模块5.顺序测试菜单栏”测试”-”新建测试”-”顺序测试”新建顺序测试后,会在测试列表编辑器中显示。作用:组织各个测试项目,批量运行测试。FastConfg性能测试1.总体流程录制单步操作脚本-调试脚本-建立测试单元-建立顺序测试-运行FastConfg性能测试2.录制单步操作脚本总共有:新建厂站、更新厂站、更新通道三种模式。(1)新建厂站模式:启动程序-导入文件-单击设备列表-单击测点列表-单击下一步-单击报警列表-单击遥控列表-单击下一步-单击全新模式-单击新建厂站-单击上传配置并输入登录信息-确定-退出程序(2)更新厂站模式:启动程序-导入文件-单击设备列表-单击测点列表-单击下一步-单击报警列表-单击遥控列表-单击下一步-单击全新模式-单击更新到已有厂站-单击上传配置并输入登录信息-确定-退出程序(3)更新通道模式:启动程序-导入文件-单击设备列表-单击测点列表-单击下一步-单击报警列表-单击遥控列表-单击下一步-单击更新通道模式-单击上传配置并输入登录信息-确定-退出程序总共录制的脚本为:启动程序;导入文件;单击设备列表;单击测点列表;单击下一步;单击报警列表;单击遥控列表;单击下一步;单击全新模式;单击新建厂站;单击上传配置并输入登录信息;确定;退出程序;单击更新到已有厂站;(更新厂站模式新增)单击更新通道模式;单击上传配置并输入登录信息;(更新通道模式新增)FastConfg性能测试3.调试脚本总共有:新建厂站、更新厂站、更新通道三种模式。公共步骤为:启动程序-导入文件-单击设备列表-单击测点列表-单击下一步-单击报警列表-单击遥控列表-单击下一步在UIMap.cs用一个函数把它封装起来,命名为publicvoidcomstep()(1)在UIMap.cs用newfactoryrun()封装新建缠着模式:comstep()+单击全新模式-单击新建厂站-单击上传配置并输入登录信息-确定-退出程序(2)在UIMap.cs用oldactoryrun()封装更新厂站模式:comstep()+单击全新模式-单击更新到已有厂站-单击上传配置并输入登录信息-确定-退出程序(3)在UIMap.cs用updaterun()封装更新通道模式:comstep()+单击更新通道模式-单击上传配置并输入登录信息-确定-退出程序FastConfg性能测试4.建立单元测试将前面的各个步骤单独放到CodedUITest1.cs用[TestMethod]分开。FastConfg性能测试5.建立顺序测试FastConfg性能测试6.运行MCPMManager安装包自动化测试1.总体流程录制单步操作脚本-添加判断式-整理运行逻辑-调试脚本--编辑脚本建立测试单元-建立顺序测试-运行MCPMManager安装包自动化测试2.录制单步操作脚本1.启动程序2.第一界面:下一步操作,取消操作3.第二界面:返回操作,下一步操作,取消操作4.第三界面:返回操作,下一步操作,取消操作,同意操作,不同意操作,打印5.第四界面:输入信息(公司信息,个人信息,授权码),返回操作,下一步操作,取消操作6.第五界面:改变文件路径,输入路径,确认,取消,返回操作,下一步操作,取消操作7.第六界面:返回操作,安装操作,取消操作8.第七界面:完成安装9.取消操作界面:确认,取消说明:红色为本次没有录制的操作,蓝色为跟已重复不需再录制的操作。MCPMManager安装包自动化测试3.添加判断式1.第一界面:返回操作不可用、继续和取消操作可用、取消操作确认、取消操作撤销2.第二界面:返回操作,继续操作、取消操作、选中不同意时继续操作不可用、选中同意时继续操作可用3.第三界面:返回操作,继续操作、取消操作、计算机特征信息为空时继续操作不可用、信息码错误时继续操作时弹提示框4.第四界面:返回操作,继续操作、取消操作、路径不正确时弹提示框5.第五界面:返回操作,安装操作,取消操作说明:蓝色为跟已重复不需再录制的操作。MCPMManager安装包自动化测试4.整理运行逻辑MCPMManager安装包自动化测试5.编辑脚本编辑脚本主要将UIMap.Designer.cs的方法拷贝到UIMap.cs中进行。(1)编辑Action操作。由于多个动作运行时,后一个动作依赖前一个动作,否则会出现查找不到相应的控件,导致执行失败。所以需要添加相应的WaitForControl操作。举例:UIMap.Designer.cs中方法为step1_cancel,将方法拷贝到UIMap.cs,并重命名为step1_cancel1,并在方法中添加UICancelButton出现时才进行按钮操作。原脚本:编辑后的脚本:MCPMManager安装包自动化测试5.编辑脚本编辑脚本主要将UIMap.Designer.cs的方法拷贝到UIMap.cs中进行。(2)编辑判断式。录制的脚本预期的结果是一个常量(固定值),由于实际使用中可能是多种预期结果,所以需要将预期结果变成可变量。举例(1):将计算机信息输入值修改为可变量。原脚本:编辑后的脚本:MCPMManager安装包自动化测试5.编辑脚本举例(2):将按钮是否可用判断变为可选择原脚本:编辑后的脚本:MCPMManager安装包自动化测试6.调试脚本-建立测试单元-建立顺序测试-运行(跟FastConfig类似,略)数据驱动的测试1.编辑数据源本例已SQL数据库表作为数据源举例,以PecConfig的登录界面为例。整理三组数据如下:输入1、输入2、测试类型、特征信息数据驱动的测试2.导入数据源菜单栏”测试”-”窗口”-”测试视图”-选中需添加数据源的测试项,右键”属性”-“数据连接字符串”-进入数据向导本例已SQL数据库表作为数据源举例。添加成功后在CodedUITes