曾经有一段时间,人们习惯于在MSExcel里面编写单元
测试用例,然后开发人员就按照单元测试用例一步一步的来实现用例。这通常是很耗时的漫长的过程,尤其是如果应用很大或者UI很复杂的话。这一套单元测试的执行过程常常成为瓶颈,因为任何代码修改都会带来手工执行大量单元测试,以确保新的修改没有破坏原有功能。如今是个快节奏时代,人们希望工作能够无需人工介入、自动化的快速完成。每个人都喜欢执行一个命令就能把工作搞定,而且在执行期间不需要人工介入。需要做的仅仅是检查一下最终的输出结果。当这个世界正在迈向自动化时,自动化测试也不甘落后,不论是在功能测试方面还是UI测试方面。每天我们都能听说自动化测试方面涌现出的新软件。本文提供了一些信息给那些想用CodedUI自动测试框架来进行应用界面自动化的.Net开发者。什么是CodedUI?最近我一直在寻找一个自动化的用户接口测试的解决方案。用户接口测试需要用户多次进行手工输入 *** 作,这是一个既枯燥又费时的过程。因此,我想寻找一种更智能的自动化UI测试的方案,这种UI测试在不需要人工干预下,能够被保存,记录并提供支持,快速测试代码的改变。CodedUI采用用户接口来驱动应用的进行自动化测试。这些测试包括UI控制的功能性测试。他们使你可以验证整个应用的功能是否正确,其中包括了用户接口。CodedUI尤其适合用于用户接口中存在校验或者其它的登录方式的测试,比如网页。CodedUI也可以用于人工测试用例的自动化。CodedUI测试帮助用户测试应用程序的用户接口。这些测试允许用户验证应用程序的功能。CodedUI多数时间用于帮助验证在UI层本身的有效逻辑。它能够验证值对用户接口的控制的正确性。其它方案市场有许多自动化用户接口的方案,比如HP的QuickTestProfessional,IBMRationalFunctionalTester.其它著名的,易于使用的开源工具解决用户接口自动化问题的有Selenium,也能够记录测试,需要的时候回放。市场上还有来自Microsoft的也能不需要太多努力做同样的事。用VisualStudioMicrosoft还有CodedUI的方案用于单元测试。CodedUI适合在哪儿用?大多数安装了VisualStudio的开发者都喜欢在VisualStudio的环境里进行单元测试,而不是使用第三方工具。由微软提供的CodedUI,在VisualStudio环境里可谓上手即用。在开发者的机器上无需另外安装任何东西。一旦你安装了VisualStudio的Premium版或者Ultimate版,你就同时也安装好了CodedUI。CodedUI可用性为了使用CodedUI,需要安装VisualStudio2010/2012/2013的Premium版或者Ultimate版。CodedUI测试的组成CodedUI测试的组成容易理解。它可分成下列
文件:UIMap.uitest这个文件是UIMap类的XML表示。UIMap类包括视窗,控件,属性,
方法,断言和动作。UIMap.cs对UIMap的自定义部分都存在这文件里。如果修改直接存在UIMap.designer.vb文件的话,那些修改都会在记录结束后丢失,因为这个文件重新创建了。给每个在测应用程序中的每个模块创建一个独立的UIMap文件。UIMap.Designer.cs这是部分类表达各种类。这各种类是给多样的控件和他们的范围,属性,方法的类。提示:不要直接修改UIMap.Designer.cs。加入你这样做,这个修改会被覆盖掉。CodedUITest.cs这类表示的实际的CodeUI测试类,方法调用,和断言调用,所有的方法和断言默认都是从UIMap.Designer.cs文件调用的。这类有具有【codedUITest]属性TestClass和包含具有【TestMethod]属性的多种方法。CodedUI的特性/好处进行用户界面测试的同时进行校验.生成VB.Net/C#代码.测试用例可以被记录和重放.集成了ALMStory能够作为每日构建的一部分来运行.根据需要进行高级扩展.和VisualStudio集成在一起,所以无需单独购买许可.CodedUI对Web和Windows应用同样适用.著名的Microsoft支持.创建CodedUI测试CodedUI测试可以用下列方式创建使用MTM进行快速自动构建从现有的记录(从手动测试中记录下来的 *** 作)中创建CodedUI在CodedUITestBuilder创建的底稿的基础上创建一个新的CodedUI测试.自己写CodedUI.这个白皮书的范围仅限于“在CodedUITestBuilder创建的底稿之上创建一个新的CodedUI测试”。小贴士:尽量使用CodedUITestBuilder。CodedUITestBuilder每一个CodedUI测试的生成都需要遵从下列步骤.记录/停止/暂停编辑记录下来的步骤添加断言生成代码创建CodedUI测试创建新的CodedUI项目要开始使用CodedUI,首先我们需要创建一个测试项目,用来保存所有CodedUI测试。创建一个新的CodedUI项目包含下列步骤打开VisualStudio2012选择File>New>Project选择需要的语言模板(C#orVB.Net).我们选择了C#.选择CodedUIProject输入一个名字点击OK按钮添加CodedUI测试VisualStudio默认配置为创建CodedUI测试使用"GenerateanewCodedUITestfromscratchusingCodedUITestBuilder"提示:在测试的应用程序中,当你创建UI控件时尽量使用有意义的名称,从而对于自动生成的控件显得更加有意义和可用。一旦CodedUI测试工程创建完成,将会自动打开生成CodedUI测试代码的对话框,请给出以下选项的设置。记录 *** 作,编辑UI地图或添加断言使用一个已经存在的 *** 作记录默认情况下选择记录 *** 作,编辑UI地图或添加断言,无需做任何 *** 作,然后点击"ok"CodedUITestBuilder选择了上述选项后,CodedUITestBuilder就会被打开,同时VisualStudio窗口被最小化。这意味着我们已经为记录 *** 作做好了准备。正如之前描述的,CodedUITestBuilder基于下列4个 *** 作来做记录RecordStepsUpdateorDeleteStepsVerifyResults(AddAssertions)GenerateCode小贴士:如果用户界面(UI)变化了,就重新记录测试方法或断言方法,或者重新记录一个既有测试方法中受影响的部分。记录一个序列的 *** 作.记录一个 *** 作主要需要下列几步.StartRecording,通过选择Record按钮即可.PauseRecording,用来处理记录过程中的其它 *** 作,即GenerateCode.Edit/Delete *** 作,以防错误的 *** 作被记录。Generatecode为记录下来的 *** 作创建编号。会给每一个记录下来的 *** 作都生成编号。AddAssertions用来校验结果。小贴士:创建断言最好使用CodedUITestBuilder,因为它会在UIMap.Designer.cs文件中自动添加一个断言方法。为记录动作做计划任何事情的成功都取决于它计划得有多好。较好地计划最大限度保证了任务成功完成。这样总是比较好,在开始记录动作之前,我们计划好所有的所有要计划的步骤。这里我们将要使用应用程序Windows计算器来记录步骤。我们要自动地加和减两个数字。在记录加和减两个数字的时候,下面的步骤将会用到。。点击“开始记录”控件。到开始,点击执行。在执行窗口,输入”calc"。停止记录,看记录的步骤。删除错误的步骤(存在的话)。产生代码;提供和动作相匹配的名字。比如,打开计算器。提示:当你产生一个方法时候,使用一个有意义的方法的名字,代替默认名字。有意义的名字帮助识别方法的木的。。重新记录,提供第一个数字,暂停记录产生代码。重新记录,提供 *** 作(加或者减),暂停记录,产生代码。重新记录,提供第二个数字,暂停记录,产生代码。。加断言提示:产生你的测试作为一系列记录的方法提示:可以的时候,限制每个方法小于10个动作。这模块化的方法让UI改变时候容易替换方法。我们已经看到了CodedUI可以使开发者的生活变得多么轻松,尤其是遇到每次都需要进行很多输入的复杂页面的时候。这时,测试用例只需要被记录一次,就可以按照需要执行任意多次。使用CodedUI比使用其它工具的好处是,它能自动适配Web页面和Windows窗口应用。CodedUI测试可以用VisualStudio2010来运行,也可以用任何版本的VS来运行,它们的功能正变得越来越强大。无需多说,CodedUI是一个由技术领导者提供的强大工具,想要体验CodedUI测试的强大,我们应该开始在项目中使用它看看它能带来多少ROI,我确信CodedUI不会让你失望。一、测试需求描述
对服务后台一系列的http接口功能测试。
输入:根据接口描述构造不同的参数输入值
输出:XML文件
eg: xxx.com/xxx_product/test/content_book_list.jsp?listid=1
二、实现方法
1、选用Python脚本来驱动测试
2、采用Excel表格管理测试数据,包括用例的管理、测试数据录入、测试结果显示等等,这个需要封装一个Excel的类即可。
3、调用http接口采用Python封装好的API即可
4、测试需要的http组装字符转处理即可
5、设置2个检查点,XML文件中的返回值字段(通过解析XML得到);XML文件的正确性(文件对比)
6、首次执行测试采用半自动化的方式,即人工检查输出的XML文件是否正确,一旦正确将封存XML文件,为后续回归测试的预期结果,如果发现错误手工修正为预期文件。(注意不是每次测试都人工检查该文件,只首次测试的时候才检查)
1
新建一台Jenkins服务器,安装并配置好Jenkins
2
配置一个自动化测试脚本的代码库,可以使用Git或者SVN等版本控制工具。然后在Jenkins服务器上配置一个Job,负责自动的同步最新代码到Jenkins服务器上。
3
配置要跑自动化测试的虚拟机VM,推荐干净环境下安装需要跑自动化测试的依赖软件工具或者配置以及自动化测试工具(不提前安装配置也行,可以在跑自动化之前用另外的脚本自动安装配置),配置好之后关机并打一个snapshot镜像快照,并命名为prebuild或其它。
4
新建一个Jenkins Job,用来跑自动化。配置需要连接并使用的自动化测试虚拟机,配置要构建的自动化测试框架xml脚本文件(后面步骤有说明)和target,以及要归档的测试报告,邮件发送等等。
5
接下来的重点就是自动化测试框架的xml脚本文件了,首先里面定义一个target,负责获取自动化测试对象的安装包。
6
接着定义一个target(可选),负责从版本库上获取自动化测试脚本同步到Jenkins服务器上(也可以直接使用Jenkins Job本身的插件配置来获取代码)。
7
定义一个target,负责连接到虚拟机服务器,并恢复到虚拟机的原始状态例如prebuild,然后开机
8
定义一个target,负责拷贝项目产品安装包和自动化测试源代码到目标虚拟机上。
9
定义一个target,负责连接到目标测试虚拟机,并打开自动化测试工具,然后运行自动化测试脚本
10
定义一个target,负责处理自动化测试报告文件和日志文件并把它们从自动化测试虚拟机拷贝到Jenkins服务器对应的Job工作空间下。
11
最后定义一个主target,按照上面的target流程依次调用。这个主target就是Jenkins服务器上的自动化测试Job中配置的需要构建的Target。
评论列表(0条)