`
mmdev
  • 浏览: 13242793 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

使用Windows Mobile Test Framework进行Windows Mobile程序的自动化测试 - (2) 小试牛刀

阅读更多

前言:

上一个小节中给大家简单介绍了WM6 SDK中带的Windows Mobile Test Framework。各位朋友可能对Windows Mobile Test Framework有了一个大概的印象,但是对于怎么使用它还是有些疑惑。由于我的工作比较繁忙,一直没有时间更新这个系列,对此很是抱歉。今天,我们就来用这个Windows Mobile Test Framework来做一个小小的测试,看看它是怎么运行的。让大家对它有个感性的认识。

一、准备工作

1. 打开Visual Studio 2005的菜单中的 工具-〉设备仿真器管理器。然后打开一个Windows Mobile 6的Professional模拟器。然后将该模拟器通过ActiveSync(如果是Vista则用WMDC)与计算机进行连接。

2. 将Windows Mobile Test Framework.zip解开到某一个目录中。双击运行其中的CommandWindows快捷方式。则会弹出来一个命令提示符窗口。您在该窗口中输入“Set”然后回车,会发现“Path”参数中增加了Windows Mobile Test Framework下得Bin目录的路径。以及增加了_WMTFROOT这个变量。

3. 在该命令提示符窗口中输入“SetupDevice”然后回车。则会自动向设备上Copy和安装一些必要的文件。(SetupDevice是一个批处理文件,您也可以在Bin目录下找到)

4.在设备模拟器上,你会发现在“程序”中安装了一个快捷方式“CalView”。在设备的根目录下有一个test目录,里面是刚才copy进来的那些文件。其中包含CalView。您可以打开CalView,它是一个用来查看pOutlook中的日历信息的小程序。

5. 通过ActiveSync或者WMDC将“%ProgramFiles%\Windows Mobile 6 SDK\Tools\Security\SDK Development Certificates\Certs.cab”拷贝到模拟器中,然后安装它。

6. 手动在模拟器中的日历中建立一个条目以备后面的步骤使用。

二、了解测试工程

1. 打开_WMTFROOT下的CalViewSample这个目录,您会发现其中有三个子目录,分别是“AbstractionLayer”,“AreaLibrary”和“Tests”。它们就是在上一小节中介绍过的“UIAL”、“AreaLibrary”和“Tests”层。至于DATK和MTK,呵呵,他们都是微软已经提供了的。您可以在_WMTFROOT下的DeviceFiles目录中找到(分别是Microsoft.WindowsCE.DATK.dll和Microsoft.MobileDevices.MobilityToolKit.dll)。

2. 由于Tests层的代码要引用Area Library层的代码;而Area Library层的代码要引用UIAL层的代码。所以,我们先用VS2005打开AbstractionLayer下的项目。CalView的AbstractionLayer分别针对PPC和Smartphone做了两个版本。我们先打开PocketPC目录下的解决方案。你会发现该解决方案中有两个项目,一个是“Microsoft.MobileDevices.AbstractionLayer.CalView.PocketPC”,一个是“TuxNet”。其中前者就是CalView的PPC版的程序的UIAL层代码,后者其实是一个空的项目,它的目的只是为了将它里面包含的那些文件部署到设备上去。打开UIAL层项目的属性,“设备”选项页。复选中“Authenticode签名”中的“用此证书对项目输出进行签名”。然后点击“选择证书...”,选中“TEST USE ONLY - Sample Privileged Root for Windows Mobile SDK”,这是一个测试用的特权证书。如果这里没有显示这个证书,那么点击“管理证书”,然后导入“%ProgramFiles%\Windows Mobile 6 SDK\Tools\Security\SDK Development Certificates\SamplePrivDeveloper.pfx”。然后再次打开这个选择证书页面就可以看到。它的目的就是给您的UIAL层代码进行测试签名,这样便于访问一些特权函数,避免运行过程中不断的弹出那些提示框,然后再编译此解决方案。接着关闭该解决方案,同样处理以及编译Smartphone版的UIAL层解决方案和Area Library层的解决方案。

3. 打开Tests的解决方案同样处理。然后设置Tests层项目的属性中“调试”选项页中,“启动操作”为“启动外部程序”,并设置其值为“\test\TuxNet.exe”。

三、运行测试程序

1.按下F5运行解决方案,注意请选择您已经启动好的那个模拟器。

2. 您会发现模拟器中系统自动打开运行了CalView这个程序。然后调用了其中的“copy”菜单项来复制了一个日历项目。最后退出程序。

3. 从模拟器中打开\test目录,您会发现一个results.log文件,将它从模拟器中copy到PC端,用记事本打开,它就是刚才的运行记录,内容比较长,我摘录其中几个部分如下:

................................................................

<TESTCASE ID="0">
*** Test Name: Microsoft.MobileDevices.Tests.CalView.CalViewTests.CalViewBVT
*** Test ID: 0
BVT: BVT
Repro: -assembly Microsoft.MobileDevices.Tests.CalView.dll -suites CalViewTests -tests CalViewBVT
Begin Step: CalViewBVT
[1] LaunchApplication(CalView, finder): Attempting to launch from start menu
[1] LaunchFromStartMenu(CalView, WindowFinder, False): Opening start menu
[1] OpenStartMenu(): Clicking on start menu to open it
[1] ClickStartMenu(): Clicking on start menu at (2, 2)
[1] ClickStartMenu(): Start menu successfully opened
[1] LaunchFromStartMenu(CalView, WindowFinder, False): Getting list of start menu items
[1] LaunchFromStartMenu(CalView, WindowFinder, False): Item found - clicking on index 9
[1] countBefore = 1
[1] countAfter = 2
[1] Verification = Pass: Count after is one greater
[1] ClickOK(): Clicking on task bar at (230, 10)
End Step : CalViewBVT
Verification = Pass: CalViewBVT
*** Result: Passed
</TESTCASE>

................................................................

*** SUITE SUMMARY
***
*** Results
*** Passed: 1
*** Skipped: 0
*** Failed: 0
*** Aborted: 0
*** -------- ---------
*** Total: 1
</TESTGROUP>
................................................................

4. 上面Log中的我标记出来的第一部分即是我们刚才跑的一条test case的运行记录;标记的后一段是该运行的整体情况,这次运行总共1条case,结果为pass。

5. 我们看到这条case的名称为Microsoft.MobileDevices.Tests.CalView.CalViewTests.CalViewBVT ,那么我们在tests工程的CalViewTests.cs中可以找到如下代码,它就是这条case:

/**////<summary>
///Addadescriptionofthestepsthistestexecutes.
///eg:
///1)OpenContactapp
///2)CreateaContact
///3)VerifycontactappeatsinMainlistview
///4)CloseContactsapp
///</summary>
///<returns>Log.LogResult.Passonsuccess</returns>

[TestCaseAttribute("BVT",Type=TestType.BVT)]
publicLog.LogResultCalViewBVT()
...{
//Opentheapplication
CalViewAreaLib.General.LaunchApp();

//Storeandlogthebeginningcount
intcountBefore=CalViewAreaLib.MainDialog.GetItemCount();
Utils.GlobalLogger.AddComment(
"countBefore={0}",countBefore.ToString());

//Selectandcopyoneoftheitems
CalViewAreaLib.MainDialog.SelectItem(0);
CalViewAreaLib.MainDialog.CopySelectedItem();

//Storeandlogthecountaftercopy
intcountAfter=CalViewAreaLib.MainDialog.GetItemCount();
Utils.GlobalLogger.AddComment(
"countAfter={0}",countAfter.ToString());

//LogaresultbasedontheconditionalthatcountAfterisonegreaterthancountBefore
Utils.GlobalLogResultManager.Results.Add("Countafterisonegreater",(countAfter==(countBefore+1)));

//Closetheapptocleanup
CalViewAreaLib.General.CloseApp();

//Resultsmanagerkepttrackoftheresultforyou,returnitssummary
returnUtils.GlobalLogResultManager.Results.Summary;

}

从case的步骤我们可以看到/猜测,它先后打开CalView程序,然后选择其中第一个条目,然后复制一个。然后察看是否条目数量增加了一个。最后关闭程序再输出结果。在这里这些代码的含义您可以通过UAIL或者AreaLibrary的代码来查看具体含义,在后面我的Blog中也会陆续进一步介绍。

四、小结

从上面的演示我们看到我们可以很方便的通过我们的代码来模拟用户来操作我们的程序并进行验证。不错吧?smile_teeth

好了,就先介绍到这里吧.在下一节中,我们将会介绍一下Tests层代码的结构以及它的运作机制。

分享到:
评论

相关推荐

    使用Windows Mobile Test Framework进行自动化测试(PPT)

    Windows Mobile Test Framework (WMTF) 是由微软开发的一个专门针对Windows Mobile设备的自动化测试工具。这个框架旨在帮助开发者和测试人员有效地进行移动应用的自动化测试,提高测试效率,减少手动测试的工作量。...

    使用Windows Mobile Test Framework进行自动化测试(Video)

    MSDN Webcast 使用Windows Mobile Test Framework进行自动化测试 Video

    Windows Mobile 连接SQL SERVER数据库

    在早期的移动开发领域中,Windows Mobile 是一个非常流行的平台,它允许开发者创建复杂的应用程序,并且能够与桌面应用或服务器端数据库进行交互。本文将详细介绍如何使 Windows Mobile 设备通过 .NET Compact ...

    蓝牙开关控制测试程序

    标题中的“蓝牙开关控制测试程序”表明这是一款用于测试Windows Mobile设备上蓝牙开启与关闭功能的应用。Windows Mobile是微软为移动设备开发的操作系统,它在功能手机和早期智能手机时代广泛使用。蓝牙技术则允许...

    selenium framework design data driven testing

    2: SELENIUM FRAMEWORK UTILITY CLASSES 3: BEST PRACTICES FOR BUILDING SELENIUM PAGE OBJECT CLASSES 4: DEFINING WEBDRIVER AND APPIUMDRIVER PAGE OBJECT ELEMENTS 5: BUILDING A JSON DATA PROVIDER 6: ...

    TestMobile Player

    TestMobile Player的开发需要熟悉Windows CE和.NET Compact Framework,了解如何在有限的资源和内存环境下进行优化。 2. **FFmpeg集成**:FFmpeg提供了丰富的编解码库,包括常见的H.264、MPEG-4、MP3等格式。Test...

    Mobile App Development with Ionic 2

    Mobile App Development with Ionic 2: Cross-Platform Apps with Ionic, Angular, and Cordova by Chris Griffith English | 10 Apr. 2017 | ASIN: B06Y5Q24B2 | 310 Pages | AZW3 | 2.93 MB Learn how to build ...

    Windows Mobile中Alpha透明C#例子

    7. **AlphaMobileControls和AlphaMobileControls.TestApp**:可能是项目的主要源代码文件夹和测试应用程序,它们包含了实现Alpha透明功能的类库和验证其功能的测试用例。 通过这个示例项目,开发者可以学习如何在...

    robotframework-appiumlibrary:AppiumLibrary是RobotFramework的appium测试库

    在本案例中,"python testing library"、"test-automation"、"appium"、"robotframework"和"mobile-testing"都是标签,它们反映了AppiumLibrary的核心特性,即它是基于Python的测试库,专注于自动化测试,特别是与...

    开放源代码测试自动化工具的web应用程序,移动应用程序和api - mcdcorp/opentest

    "开放源代码测试自动化工具的web应用程序,移动应用程序和API" 这个标题揭示了我们要讨论的核心内容:一个开源的自动化测试工具,它覆盖了Web应用、移动应用以及API的测试需求。这表明该工具具有广泛的适用性,能够...

    Mobile DevOps-Packt Publishing(2018).epub

    Xamarin is a cross-platform mobile application development framework from Microsoft that can be used to create iOS, Android, and Windows apps using a shareable code base and design. Apart from ...

    新版Android开发教程.rar

    的 Android SDK 提供了在 Android 平台上使用 JaVa 语言进行 Android 应用开发必须的工具和 API 接口。 特性 • 应用程序框架 支持组件的重用与替换 • Dalvik Dalvik Dalvik Dalvik 虚拟机 专为移动设备优化 • ...

    WindowsMobileTestFramework.rar_Windows_CE_Visual_C++_

    Windows Mobile Test Framework是专为Windows CE开发设计的一个测试框架,旨在帮助开发者进行系统级和应用程序级别的测试。它包含了一系列工具和库,能够实现自动化测试、性能分析、内存泄漏检测等功能,从而提升...

    Build Mobile Apps with Ionic 2 and Firebase: Hybrid Mobile App Development

    Build Mobile Apps with Ionic 2 and Firebase: Hybrid Mobile App Development 27 May 2017 | English | ISBN-10: 1484227360 | 276 pages | PDF | 2.9 Mb Learn to build hybrid mobile apps using Ionic and ...

    cloudtest-1.0.4-b201302231138PM Release

    About CloudTest License CloudTest is an open source project initiated by the individual, which is distributed on Apatche Licenses 2.0 releases. Every organization or individual is fully granted for ...

    test_rda.rar_2005 ce_CE_SqlServer CE_windows CE CSharp

    标题中的“test_rda.rar_2005 ce_CE_SqlServer CE_windows CE CSharp”表明这是一个关于2005年版本的SQL Server CE(Compact Edition)在Windows CE平台上使用C#语言进行远程数据访问(RDA,Remote Data Access)的...

    Sencha+Touch+Mobile+JavaScript+Framework.pdf

    ### Sencha Touch Mobile JavaScript Framework知识点解析 #### 一、Sencha Touch简介 Sencha Touch是一款专为移动设备设计的强大且灵活的JavaScript框架。它利用HTML5技术构建原生外观的应用程序,支持包括苹果iOS...

    cordova-plugin-test-framework:Apache Cordova

    Cordova插件测试框架cordova-plugin-test-framework插件允许插件作者向他们的插件添加测试(手动和自动)。 为了达到这个目的并测试直接在现有的Cordova项目中运行,因此您可以在测试和开发之间快速切换。 您还可以...

    Ionic : Hybrid Mobile App Development

    Ionic : Hybrid Mobile App Development by Rahat Khanna English | 14 Jun. 2017 | ASIN: B072N8FRG8 | 544 Pages | AZW3 | 18.96 MB An end–to-end journey, empowering you to build real-time, scalable, and ...

Global site tag (gtag.js) - Google Analytics