BlackBerry 应用程序开发者指南 第一卷:基础--第13章 测试和调试


作者:Confach 发表于2006-04-28 21:50
版权信息:可以任意转载, 转载时请务必以超链接形式标明文章原始出处 和作者信息.
http://www.cnblogs.com/confach/articles/387920.html

13

              第13 测试和调试



测试应用程序

使用调试工具

测试应用程序

通过在BlackBerry设备模拟器或在一个已连接的BlackBerry设备上运行应用程序来测试它们。

  1.       BlackBerry IDEDebug菜单中,点击Go.

  2.       将应用程序部署到设备。为获得更多信息,参看166页的使用BlackBerry桌面软件部署应用程序

  3.       在模拟器或一个BlackBerry使用应用程序。

  4.       BlackBerry IDEDebug菜单中,点击Break Now

  5.       进行下列任何操作:

操作

过程

重新运行应用程序

Debug菜单,单击Continue

完成调试

Debug菜单,单击Stop Debugging

使用设备模拟器测试应用程序

BlackBerry IDE中,当运行应用程序时,设备模拟器会自动启动。

在访问BES,模拟器设计为模拟一个在BlackBerry设备上运行应用程序的各个方面,包括email状况,浏览器状况,HTTP/TCP连接,以及push功能.

在没有访问BES的情况下,你需要使用BlackBerry MDS模拟器来模拟浏览器状况,第三方应用程序的http/tcp连接,以及push功能.为获得更多信息,参看176页的测试HTTP网络连接”.

你需要一个BlackBerry邮件服务器模拟器(邮件模拟器)来发送和接收BlackBerry设备模拟器以及一个计算机邮件应用程序之间的消息.为获得更多信息,参看173页的使用邮件服务器模拟器”.

动作

鼠标过程

键盘过程

滚动滑轮

滚动鼠标的滑轮.

在键盘上按UP ARROWDOWN ARROW

点击滑轮

点击鼠标的滑轮按钮.

回车键.

运行一个应用程序

选择适合的图标,点击鼠标滑轮按钮.

回车键.

按键

-

按键盘上的键.

分配Escape按钮给滑轮

1.在设备模拟器中的Edit菜单,点击Map Cursor Key To Escape.

2.完成下面的一个操作:

  • 为分配Left给滑轮,要么选择Right
  • 为分配Right给滑轮,要么选择Left.

 

 

测试BES APIIT策略

:设备模拟器需要的版本为4.0以及更高的BES.

设备模拟器可以连接到BES上的一个帐户.如果你可以访问一个BES,可以把一个模拟的BlackBerry设备连接到BES.使用选项来模拟BES API以及应用的IT策略.这个选项需要有BES管理员的知识,并且它为测试应用了网络依赖.你不需要一个BlackBerry MDS模拟器或一个邮件服务器模拟器.你可以模拟BES 扩展API的使用,应用的IT策略,邮件和浏览器消息,HTTP/TCP连接以及push功能.

   1.     启动设备模拟器.

   2.       在主屏幕上,单击”Turn Wireless Off”.

   3.       在微软窗口的任务栏,点击开始>程序>BlackBerry>Desktop Manager.

   4.      在模拟器菜单,完成下面任一操作:

动作

过程

模拟USB连接.

点击Simulate>USBConnected

模拟序列端口连接

点击Simulate>Serial Connected

  5.     单击Yes.

  6.      完成执导操作生成一个新的加密键.

  7.       在初始的插件中:Verifying Application对话框,点击Cancel.

当和计算机的初始同步完成时,企业激活就启动了.

使用邮件服务器模拟器(ESS)

ESS允许你发送和接收设备模拟器和任意一个计算机邮件程序,例如Microsoft Outlook Express或者邮件服务器如POP3SMTP,之间的消息.使用ESS代替连接一个设备模拟器到BES来进行测试单机上的本地应用程序..

  1.    在任务栏,单击开始>程序>Research In Motion>BlackBerry JDE 4.1.0>ESS.

  2.    完成下面任一操作:

  • Standalone mode(单机模式):存储消息到本地文件系统,和一个计算机邮件程序直接通信.你不需要一个POP3SMTP服务器.
  • 打开计算机邮件程序,
  • 设置POP3服务器到本地的110端口号.
  • 设置SMTP服务器到本地的25端口号.
  • Connected mode.邮件模拟器为接收消息poll用户POP3邮件服务器,并且使用SMTP服务器发送消息.邮件模拟器需要有效的POP3SMTP服务器.

   3.   为了从本地文件系统移除邮件模拟器,单击Clean FS

  • Outgoing域,输入你的帐户使用的SMTP服务器的主机名。
  • Incoming域,输入你的帐户使用的POP3服务器的主机名。
  • User name域,输入用户名连接到你的帐户。
  • Password域,输入密码连接你的消息帐户。
  • Poll inbox域,指定邮件模拟器检查收件箱新消息的频率(以秒为单位)。
  • Name域,输入一个名字,它显示在设备模拟器发出的消息中。
  • Email域,输入消息帐户地址,它显示在BlackBerry设备模拟器发出的消息中。
  • PIN域,输入设备模拟器使用的PINPersonal Identification Number,个人验证码)(缺省值为0x2100000A)。

  4         点击Launch

    如果你在ESS窗口中改变了参数值,一个对话框将提示你保存修改。

  5          检查命令行窗口中的启动信息,它也包含了任何错误日志。

当邮件模拟器启动时,使用模拟器里的消息列表来发送和接收带有一个帐户的消息。

:如果你从命令行启动设备模拟器,指定/rport=0x4d4e参数和ESS通讯。

在模拟器中使用同步来测试一个应用程序

          1.  退出BlackBerry桌面软件。

2.    在你的计算机的COM1COM2之间连接一个空的modem线。

3.    BlackBerry IDEEdit菜单,单击Preferences

4.    在首选项窗口,挡架Basic标签。

5.  选择Set Serial port for device(s)选项,输入1

6.    单击OK

7.    BlackBerry IDE中,编译和允许应用程序。

8.    在模拟器启动后,启动BlackBerry桌面软件。

9.    BlackBerry桌面管理窗口的Options菜单里,单击Connection Settings

10. 点击Detect检测模拟器。

:如果BlackBerry桌面软件没有检测到模拟器,重启计算机。重复步骤710

使用一个已连接的BlackBerry设备测试应用程序

当你将一个BlackBerry设备连接到一台计算机时,在BlackBerry设备上运行应用程序,并且利用BlackBerry IDE调试工具来完成测试以及优化。

:为了将BlackBerry IDE附加到一个序列化端口连接的BlackBerry设备,需要安装Java通信API v2.0,http://java.sun.com/products/javacomm/可得到它。当BlackBerry设备连接到USB端口时此API则不需要。

安装.debug文件

为了使用BlackBerry设备调试应用程序,BlackBerry IDE中的.debug文件必须和BlackBerry设备的版本号相匹配。

1.    BlackBerry开发区 http://blackBerry.com/developersBlackBerry设备软件版本号下载.debug文件。

2.    BlackBerry IDEEdit菜单,单击Preferences

3.    单击Debug标签。

4.    单击Other标签。

5.    Handheld debug file location域,输入下载的.debug文件的路径。

加载一个应用程序进行测试

:在加载一个应用程序进行测试之前,请备份你的BlackBerry设备应用程序信息.

JavaLoader.exe工具允许你使用命令行增加或更新BlackBerry设备上的应用程序.仅当以开发和测试目的时使用本工具.对于产品应用程序,使用BlackBerry桌面软件.

:你必须按照依赖关系的正确顺序加载应用程序. 如果项目A依赖项目B,在加载项目A之前先加载项目B.

1. 退出桌面软件.

2. BlackBerry设备连接到计算机.

3. 在命令行里,找到BlackBerry JDE安装目录下的Bin文件夹.

4. 输入下面的命令:

JavaLoader [-usb] [-p<port> [-b<bps>] [-w<password>] load <files>

选项

描述

port

BlackBerry设备连接的COM端口(缺省为1).如果BlackBerry使用USB端口连接,BlackBerry设备的PIN(-usb选项必须指定).

bps

到序列端口的位速率(缺省为115200).

password

BlackBerry的设备密码,如果你设置了一个的话.

files

加载到BlackBerry设备中的一个或多个.cod文件名,它们分别以空格分开.

BlackBerry删除应用程序

在命令行,输入下面的命令行:

JavaLoader [-usb] [-p<port>] [-b<bps>] [-w<password>] erase [-f] <files>

在这里,-f选项删除应用程序,甚至此应用程序正在使用.

BlackBerry IDE调试器和BlackBerry设备相连

1. 为了将BlackBerry IDE调试器与使用USB端口连接的BlackBerry设备连接,启动BBDevMgr.exe.BlackBerry桌面软件3.5.1以及后续版本安装BBdevMgr.exe工具.

C:\program files\Common Files\Research In Motion\USB Drivers.

   1.        完成下面任一操作:

操作

过程

BlackBerry IDE调试器连接一个使用序列端口的BlackBerry设备

单击Attach to>Handheld>COM n,在这里n是你的BlackBerry设备连接的序列端口.

BlackBerry IDE调试器连接一个使用USB端口的BlackBerry设备

单击Attach to>Handheld>USB(PIN),在这里PIN是已连接的BlackBerry设备的PIN..

  • 对于一个连接到序列端口的BlackBerry设备, 单击Attach to>Handheld>COM n,在这里n是你的BlackBerry设备连接的序列端口.
  • 对于一个连接到USB端口的BlackBerry设备, 单击Attach to>Handheld>USB(PIN),在这里PIN是已连接的BlackBerry设备的PIN.

测试HTTP网络连接

为了测试一个需要HTTP网络连接的应用程序,使用BlackBerry MDS模拟器,它是一个BlackBerry JDE的组件.

> 在任务栏里,单击开始>程序>Research In Motion>BlackBerry JDE 4.1.0>MDS.

:当设备模拟器启动时,为了启动MDS服务模拟器,BlackBerry IDEEidt菜单,单击Preferences.点击Simulator标签,选择Launch Mobile Data Service(MDS) with simulator选项.

使用一个WAP网关

你可以使用服务商提供的一个WAP网关来配置HTTP连接.BlackBerry设备支持WAP 1.1.

WAP服务仅在你所选的无线网络可以得到.在你开始开发之前,联系你的服务商获得更多关于WAP网关的信息.

>为了使用WAP建立一个HTTP连接,Connector.open()URL后的末尾包含WAPGatewayIP以及WAPGetwayAPN参数.

Connector.open("http://host;WAPGatewayIP=127.0.0.1; WAPGatewayAPN=rim.net.gprs");

使用分号(;)分隔WAP参数,验证WAP参数没有空格.

参数

描述

缺省

WapGatewayIP

网关的IP地址

-

WapGatewayAPN

APN(仅为GPRS),为了测试,使用net.rim.gprs

-

WapGatewayPort

网关端口值

9201

WAP_GETWAY_PORT_DEFAULT

 

 

WapSourceIP

IP地址

127.0.0.1

WAP_SOURCE_IP _DEFAULT

 

 

WapSourcePort

源端口值

8205

WAP_SOURCE_PORT_DEFAULT

 

 

TunnelAuthUserName

APN对话或PAPCHAP验证的用户名.

TunnelAuthPassword

APN对话或PAPCHAP验证的密码.

WapEnableWTLS

打开或关闭WTLS(如果你没有指定这个参数,那么到端口8203的连接将使用WTLS).BlackBerry设备支持WTLS级别1(仅加密,没有认证)和级别2(加密和服务器验证).

:在BlackBerry设备模拟器中,当你测试一个需要APN连接的应用程序,增加命令行选项/rport=<wap_source_port>,一般为/rport=8205.模拟器的APNnet.rim.gprs.

增加模拟器命令行选项

BlackBerry IDEEdit菜单里,单击Preferences.

单击Simulator标签.

点击Advanced标签

Simulator Command Line域里,增加命令行选项.

配置BlackBerry MDS模拟器

1.       在文本编辑器中,打开rimpublic.property文件(MDS\Config文件夹下).

2.       编辑参数,配置下列特性:

  • 参看178页的日志级别参数获得更多信息.
  • 参看178页的”HTTP支持参数获得更多信息.
  • 参看178页的”HTTPS支持参数获得更多信息.
  • 参看179页的”Push支持参数获得更多信息.
  • 参看179页的”Internet消息的地址-PIN映射获得更多信息.

  3.       重起BlackBerry MDS模拟器.

:在产品环境中,BES系统管理员通过使用BlackBerry管理器来配置MDS服务参数.联系你的管理员获得更多信息.

日志级别参数

参数

描述

缺省

Logging.level

如果启用日志,这个参数指定记录写到日志中的信息类型.

l         1:仅写入事件信息,例如MDS服务的启动和停止.

l       2:写事件和错误

l        3:写事件,错误和警告.

l        4:写事件,错误,警告以及调试信息.

4

Logging.console.log.level

如果启用日志,这个参数指定在控制台输出的信息类型.参看Logging.level参数的描述.

4

HTTP支持参数

参数

描述

缺省

application.handler.http.

logging

此参数打开(TRUE)或关闭(FALSE)HTTP标准日志(HTTP)

TRUE

application.handler.http.

logging.verbose

此参数打开(TRUE)或关闭(FALSE)HTTP调试日志(HTTP数据和头).当需要调试一个特殊的问题时,此参数设置为TRUE.

FALSE

application.handler.http.

cookieSupport

此参数打开(TRUE)或关闭(FALSEcookie的存储。如果选择TRUEBlackBerry MDS服务代替BlackBerry设备来管理cookie存储。这明显减少了BlackBerry上的加载。

TRUE

application.handler.http

.AuthenticationSupport

此参数打开(TRUE)或关闭(FLASE)用户验证信息的存储。

TRUE

application.handler.http. AuthenticationTimeout

如果HTTP验证设为TRUE,在验证信息无效之前此参数决定时间的长短。无论何时,当用户发布一个为某一域调用验证信息的时候,这个计时器都会重置。

3600000

application.handler.http. device.connection.timeout

在一个连接试图访问BlackBerry设备时,如果BlackBerry不可用,此参数设定过期时间的长短(以毫秒计)

140000

application.handler.http. server.connection.timeout

在一个连接试图访问服务器时,如果服务器不可用,此参数设定过期时间的长短(以毫秒计)

150000

HTTP支持参数

参数

描述

缺省

application.handler.https.logging

此参数打开(TRUE)或关闭(FALSE)测试目的的HTTPS日志

TRUE

application.handler.https. allowUntrustedServer

此参数允许MDS服务连接到一个不信任的服务器(TRUE),或者仅受限访问一个可信任的服务器(FALSE),如果服务器的证书安装在MDS服务主机上,那么服务器是信任的。参看190页的“使用keytool安装一个证书”获得更多信息。

FALSE

PUSH支持参数

不要改变这些参数。

参数

描述

缺省

WebServer.listen.host

此参数定义了MDS服务监听发送HTTP POST请求的PUSH应用程序所在的计算机。

localhost

WebServer.listen.port

此参数定义了MDS服务监听发送HTTP POST请求的PUSH应用程序所在的端口。

8080

 

Internet消息的地址-PIN映射

在一个产品环境里,BES自动将用户的internet消息地址映射到BlackBerry设备的PIN上。在BlackBerry JDE,你可以模拟internet消息地址和PIN之间的映射。

:如果你正在测试一个push应用程序,你仅需要配置internet消息地址到PIN之间的映射。为获得更多信息,参看137页的“创建一个client/server push应用程序。

rimpublic.property文件里,在你的BlackBerry JDE安装目录下的MDS/config子目录下,增加或修改【simulator】部分的入口。入口使用下面的格式:

Simulator. <PIN>=<host> :< port>, <messaging_address>

例如:

Simulator.2100000a=<local machine IP>:81, user2100000a@blackberry.com

改变internet消息地址,以致你可以测试使用实际的internet消息地址的应用程序。发送push的数据到一明确的BlackBerry设备模拟器。

模拟器缺省的PIN2100000a

为了改变模拟器PIN,设置/rsim选项。在BlackBerry IDEEdit菜单,单击Preferences。单击Simulator标签,然后单击Advanced标签。在Simuator Command Line域里,修改为/rsim-0x2100000A.

端口必须和IPPP.push.listen.tcp.port参数里的值相匹配。缺省是81

使用调试工具

:本部分提供BlackBerry IDE中一些可用调试工具的概括。参看BlackBerry IDE在线帮助获得更多关于使用BlackBerrry IDE的详情。

分析代码覆盖

为了显示已经运行代码的概括,使用覆盖工具。当你设计和运行测试案例时,一个概括是有用的,因为你可以看到什么已经精确的测试了。

1.  设置2个或多个断点。

2.blackBerry IDEView菜单中,点击Coverage

3.  为将信息重置为0,在覆盖(coverage)区域,点击Clear

4.  运行你的程序到下一个断点。

5.  为了显示你单击Clear后运行的代码的覆盖率,在覆盖区域,单击Refresh

使用profiler

使用BlackBerry IDE profiler工具优化你的代码。Profiler工具显示了每个代码区所花费的时间百分比,一直到当前运行点。

:当你运行profiler时,为了改善结果的可信度,退出其他的Microsoft windows应用程序。

运行profiler

1.  在代码段的开始,按F9设置一个断点。

2.  在代码段的末尾,按F9设置一个断点。

3.Debug菜单里,单击Go

4.  在模拟器里使用应用程序运行合适的代码,直到它达到断点。

5.  View菜单,单击Profile

6.  profile区域,单击Options

7.  选择方法属性的类型,一个有序的方法,以及信息的类型给Profile。为获得更多信息,参看181页的“设置profle选项

8.  单击OK

9.  为删除profiler数据,并且重设运行时时间,在profile区域,单击Clear

10. Debug菜单,单击Go

11.  在模拟器里使用应用程序运行合适的代码,直到它达到断点。

12.  如果profile区域不可见,在View菜单里单击Profile

13.  为了获得所有精确的profile数据,在profile区域里,单击Refresh

14.   单击Saveprofile区的内容保存到. 以逗号分割的csv文件中。

Profile视图

描述

Summary

Summary视图显示关于系统和垃圾回收的普通统计。它显示了Java VM空闲时间,运行代码,以及完成快速和完全垃圾回收的时间的比例。Percent列显示了总的VM运行时间,包括空闲和回收时间的比例。

Methods

Methods视图显示了一列模块,他们要么根据你正在profile的信息排序,要么根据每项运行的次数排序,

Source

Source视图显示了单个方法的源代码行。它允许你通过调用的或被调用的方法来找到那个方法。单击BackForward按钮来跟踪你在Source视图里访问过的方法的历史记录。

在这个视图里,ercent列显示了总的VM运行时间,不包括空闲和回收时间的比例。

 

设置Profile选项

1.  单击Options标签

   1         Method attribution下拉列表中,选择下列任一选项

  • 为了计算执行方法和它调用的方法里字节代码所花费的时间,选择Cumulative
  • 为了只计算执行方法里字节代码所花费的时间,选择In Method only。当调用另外的方法时,计时器停止。

2        Sort method by下拉列表中,选择Count根据项运行的次数将Profile视图里的方法进行排序,或者选择其他选项根据profile的数据将方法排序。

3        What to profile下列列表中,选择profile的数据类型。

查找内存泄漏

使用内存统计和对象来查找和修正内存泄漏.

使用内存统计工具

内存统计工具显示了对象数以及对象处理,RAM,以及闪存用到的字节数的统计.

1        View菜单,单击Memory statistics.

2         在你的代码中设置2个或多个断点.

3         运行你的程序到第一个断点.

4         单击Refresh刷新内存统计.

5         单击Snapshot得到一个快照.

6         将程序运行到下一个断点.

7         单击Refresh.

8         单击Compare to Snapshot.

9         为了将内存统计的内容存储到一个逗号分隔的.csv文件中,单击Save.

使用对象工具

对象工具显示了内存中所有的对象,它帮助你定位到发生泄漏的对象.对象泄漏可能导致VM在闪存的外部运行,它将重新设置你的BlackBerry设备.

1         BlackBerry IDEDebug菜单,单击Go.

2         Debug菜单中,单击Break Now.

3         View菜单中,单击Objects

4         单击GC.

5         单击Snapshot.

6         Debug菜单,单击Continue.

7         在程序里完成的任务不应增加可达到的对象的数量;例如,创建一个新的联系人,然后再删除它.

8         Debug菜单,单击Continue.

9         在对象域里,单击GC.

单击Compare to Snapshot.对象域,它将显示自上一次快照以来删除和增加的对象数.如果增加的对象数和删除的对象数不一样,你可能有一个对象泄漏.使用TypeProcess过滤项查看特定的对象.

10     为了将内存统计的内容存储到一个逗号分隔的.csv文件中,单击Save.

posted @ 2006-04-28 21:50  张太国  阅读(4866)  评论(0编辑  收藏  举报