IBM®
跳转到主要内容
    中国 [选择]    使用条款
 
 
Select a scope:Search for:    
    首页    产品    服务与解决方案     支持与下载    个性化服务    
跳转到主要内容

developerWorks 中国  >  Rational | SOA and Web services  >

使用 IBM Rational Performance Tester 对移动 Web 应用程序进行性能测试

两种测试方法,使用 WebSphere Everyplace Mobile Portal (WEMP) 作为一个范例

developerWorks
文档选项

未显示需要 JavaScript 的文档选项

讨论

英文原文

英文原文


级别: 高级

Rakesh Kumar Dash (rakesdas@in.ibm.com), 性能顾问, IBM India
Jigar N Kapasi (kjigar@in.ibm.com), 软件开发人员, IBM India

2008 年 3 月 13 日

这篇文章介绍了两种定制 IBM®Rational®Performance Tester 的方法,用它来记录和产生那些模拟从无线或者移动设备下载的请求。作者还讨论了这些方法的挑战和执行这些定制的最佳实践。这些方法是基于 Bharti SDP (telecom) 成功使用的基础的,并且用作模型服务于移动 Web 应用软件(Mobile Web Application) 的性能测试。

前言

典型情况下,IBM®Rational®Performance Tester (RPT) 是用来产生 Web 网站流量的。然而,在几种特定的情形下您可能需要驱动无线负荷,理解系统性能特性。这篇文章通过以创新的方式使用现有的 RPT 特性的方法来介绍达到这个目的的方法。WebSphere®Everyplace Mobile Portal server (WEMP) 用作一个服务器组件实例。它接受了无线请求。

第一种方法:利用默认的 Microsoft Internet Explorer 浏览器

第一种方法使用默认的 Microsoft®Internet Explorer® 浏览器来定制 Rational Performance Tester,从而产生无线请求到这个门户服务器并得到性能度量。这个请求源可以用 User-Agent 值来区分。例如,对于 Internet Explorer, 这个 User-Agent 值是:

Mozilla/4.0 (兼容的; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)

您可以在 Rational Performance Tester 脚本种更高这个值到移动或者无线设备中。只需编辑这个产生 RPT 脚本请求的标题就可以进行修改。这样就可以在所有 User-Agent 字符串使用的地方反映这个变更了。

这些 User-Agent 字符串是几个无线设备常用的:

  • OpenWave-OPWV-SDK UP.Browser/7.0.2.3.119 (GUI) MMP/2.0 Push/PO
  • NokiaN70-NokiaN70-1/1.0552.0.7Series60/3.0Profile/MIDP-2.0Configuration/CLDC-1.1
  • NokiaN93-NokiaN93i-1/10.0.025
  • Sony Ericssion-SonyEricssonP900/R102

与 Internet Explorer 一起使用 Rational Performance Tester

  1. 为 RPT, Internet Explorer 使用默认浏览器,创建一个新项目叫作 SimpleProject,并一个新测试来记录事件。
  2. 记录一个样例 Web portal,您将得到一个登陆页面,如图 1所示。
  3. 登陆
  4. 运行一系列事件,然后关闭浏览器停止记录。例如,图 2描述了这个 World Clock Portal 页面

图 1. Web Portal 登陆页面
Web Portal 登陆页面


图 2. World Clock Portal 页面
World Clock Portal 页面

在这个例子中,产生的这个脚本取名为 TestClockWeb1。使用的 User-Agent 是 SonyEricssonP900/R102。对于 Internet Explorer,我们利用原始的 User-Agent 字符串来取代它(Mozilla/4.0 (兼容的; MSIE;6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727),模拟一个 WAP (Wireless Application Protocol) 或者门户请求(图 3):


图 3. TestClockWeb1a 脚本的详细情况
TestClockWeb1a 脚本的详细情况

  1. 要在请求的脚本中更改这个 User-Agent 字符串值,就要将代表浏览器的值更改为代表无线设备的值:

SonyEricssonP900/R102

  1. 您可以在保存这个更改之后,验证 RPT 工作区的 Protocol Data 标签中的 User-Agent 字符串值(图 4)。

图 4. Test Protocol Data 标签
Test Protocol Data 标签

  1. 在这个记录细节中您还需要为重要的页面插入新的记录,比如 TPS(每秒中的记录)。

创建一个叫作testSchedule 新的性能调度。

注意:
在这个例子中,我们在运行测试之前,为这个调度设置了一个两秒钟的思考时间,不像默认的那样,使用记载的思考时间。

(在图 5中显示例子中,这个调度测试5个用户一起运行,并且有10次迭代——这将显示在General标签中。)


图 5. 测试调度详细情况
测试调度详细情况

  1. 监控这个门户服务器登陆有效,无论这个请求来自移动门户还是 Web 门户。列表 1中的这个日志表明这个例子是一个 WAP 请求。

列表 1. 门户服务器日志表明这个请求是来自 WAP 门户的
                
[7/28/07 18:32:06:590 GMT+05:30]  c2cd097 SystemOut     
O WAP request Header property: x-network-info; Context msisdn: null
[7/28/07 18:32:06:590 GMT+05:30]  c2cd097 SystemOut     
O *******hdrValue*****null
[7/28/07 18:32:06:590 GMT+05:30]  c2cd097 SystemOut     
O WAP request Header property: x-network-info; Context msisdn: null


[7/28/07 18:32:06:590 GMT+05:30]  c2cd097 SystemOut     
O WAP request Header property: x-network-info; Context msisdn: null
[7/28/07 18:32:06:590 GMT+05:30]  c2cd097 SystemOut     
O *******hdrValue*****null
[7/28/07 18:32:06:590 GMT+05:30]  c2cd097 SystemOut     
O WAP request Header property: x-network-info; Context msisdn: null

  1. 要了解这个请求来自于哪种的设备,您可以监控这个日志。例如,它们可以显示您在列表 2 中看到的内容。

列表 2. 日志可以显示设备的类型
                
[7/28/07 18:31:12:691 GMT+05:30] 68f3d093 PmiRmArmWrapp I PMRM0003I:  
parent:ver=1,ip=10.5.72.57,time=1185620240612,pid=319690,reqid=8843,event=1
 - current:ver=1,ip=10.5.72.57,time=1185620240612,pid=319690,
reqid=8844,event=1 type=JDBC detail=select POLICY
 , VALUE , REVISION from VMPOLICY_VALUES where PROJECT = 
'mobile-portal' and NAME = 'SonyEricsson-P900' elapsed=22

同样地,如果使用了任何其它设备,而且这个脚本如这里所描述的那样定制,那么 这个门户服务器日志将指示相应的设备细节。另外,您还可以审查 Multi-Channel Server (MCS) 日志来寻找发送的设备类型 (列表 3)。

注意:Multi-Channel Server 是可以产生设备详细内容的 WEMP 的一个组件。


列表 3.
                
com.volantis.mcs.devices.DevicesHelper Servlet.Engine.Transports : 4
  User Agent is 'SonyEricsson-P900'

您可以在 mcs-jlog.xml 文件中,通过设置 com.volantis.mcs 属性到 debug 中来启用这个 MCS 日志。

第二种方法:利用 Mozilla Firefox 浏览器和它的 Modify Headers add-on

第二种方法利用 Mozilla®Firefox®浏览器和这些 Firefox add-ons 安装的请求:

  • Modify Headers
  • XHTML Mobile Profile
  • wmlbrowser

按照以下步骤来这个方法:

  1. 安装和重新启动 Firefox 之后,点击 Tools 菜单,然后点击 Modify Headers
  2. 为您的移动电话提供 MSISDN 数字和用户代理人。在您提供用来模拟电话的门户 URL 地址之前,要激活数字和用户代理人(图 6)。

在图 6中, Nokia N70 在这个例子中设置为 User-Agent 。


图 6. Firefox Modify Headers 插件
Firefox Modify Headers 附加功能

当您提供了这个门户 URL 地址之后,您将看到显示在图 7中的门户页面,这与您使用 Nokia N70 地址看到的页面是一样的。


图 7. Sample Portal 页面
Sample Portal 页面

在 Mozilla Firefox 浏览器中使用 Rational Performance Tester

在 Rational Performance Tester 中为 HTTP 记录器提供相同的值,来记录这个脚本并模拟载入。记录时,按照以下步骤来记录通过 Firefox 模拟无线载入的事件。

  1. 更改 HTTP Recorder 默认浏览器到 Mozilla Firefox:
    1. 选择 Windows > Preferences > Test > HTTP Recording
    2. Application 区域,将它设置为 Mozilla
    3. Application path中,键入 Firefox 安装在您系统中的路径。
  2. 创建一个叫作 SimpleTest 的Test Projec。
  3. 打开一个叫作 TestPurchase 的 HTTP 记录来作为一个 Mozilla Firefox 浏览器例子。
  4. 启动 Modify Headers 插件,然后键入门户 URL 地址查看门户页面。

注意:
在 Rational Performance Tester 记录器打开 Firefox 浏览器以后,要确保已经打开 Modify Header 窗口并且是活动窗口。如果 Modify Header 窗口在记录之前就是活动的,它将返回这个错误:这个记录对任何安装的 Test Generator 都包含 NO Protocol。这是由于缺少 HTTP 地址流量造成的,这个地址流量是通过网络代理记录器在本地主机端口1080按照线路发送的。

  1. 浏览这个页面并执行这个任务来记录。
  2. 关闭 Firefox 浏览器和 Modify Headers 窗口从而停止记录。

然后这个记录器会开始 TestSample 脚本的产生(图 8)。修改这个脚本,在每个页面中插入事务,这样反映时间和每秒的交易事务都能很好地计算出来。这个度量有助于理解记录的执行行为。

这个例子中的记录包括导航到第一个 WPS 门户页面,它还被引用作为 Sample 页面。这个页面还列有两个连接,分别链接到另外两个不同的移动门户页面。它们分别是 svt_portlet_mobile_world_clock svt_portlet_welcome_page。这个记录步骤包括这些页面的导航以及关闭这个浏览器 ,基于这个浏览器,RPT 记录器会自动产生 TestSample 脚本。


图 8. TestSample 详细情况
TestSample 详细情况

  1. 完成这些步骤以后,创建新的执行调度,叫作 testSchedule(图 7)。它将运行这个脚本,并用不同的虚拟用户来模拟用户从 Nokia-N70 移动设备发送请求。

注意:
这个例子中的思考时间设定为2秒钟,不像默认的那样 ,利用记录的思考时间。


图 9. 新的执行调度称作 testSchedule
新的执行调度称作 testSchedule

  1. 当您运行这个执行调度以后,要监控这个门户服务器日志,来验证这些请求是否利用预期的 MSISDN 真正模拟了一个 Nokia-N70 装载。

列表 4 展示了跟踪输出的样例,使模拟生效。


列表4. 跟踪输出的样例
                
“[7/28/07 15:57:31:813 GMT+05:30] 1b90825f SystemOut     
O WAP request Header property: x-network-info; Context msisdn: 9810400684
[7/28/07 15:57:31:813 GMT+05:30] 1b90825f SystemOut     
O *******hdrValue*****cdp, 919810009263, oasidujho
[7/28/07 15:57:31:813 GMT+05:30] 1b90825f SystemOut     
O WAP request Header property: x-network-info; Context msisdn: 9810400684


在记录这个测试访问前,记录的 MSISDN 数字和 User-Agent 标识符与规定嵌入在 Modify Headers 插件中的一样。

另外,您可以从不同的设备检查 MCS 多通道服务器日志,如列表 5所示。


列表 5. 通过审核服务器日志使模拟生效的样例
                
com.volantis.mcs.devices.DevicesHelper Servlet.Engine.Transports : 4
  User Agent is NokiaN70.


提示:
使 MCS 日志生效,在 mcs-jlog.xml 文件中设置 com.volantis.mcs属性为 debug

这个性能度量显示了运行的性能,并提供了相关的详细资料。您可以按照您的意愿定义事务在页面交易的次数。

利用 Rational Performance Tester 模拟现实情景

尽管这里详细描述的步骤有助于性能测试门户时对 Rational Performance Tester 的理解和使用,它们根本不考虑高速缓冲特性。例如,如果您 使用一个 Nokia-N70 设备来发送来自各种用户的请求,这个数据可以从 MCS/WEMP 缓冲中提交。建议使用 Rational Performance Tester 的数据池特性来为不同用户的不同移动设备的装载设置参数,这样您可以模拟一个现实的情景来获取有用的结果。

分享这篇文章……

digg 提交到 Digg
del.icio.us 发布到 del.icio.us
Slashdot Slashdot 一下!



参考资料

学习

获得产品和技术

讨论


作者简介

Rakesh Kumar Dash 在 High Performance On Demand Solutions (HiPODS) 团队工作,是一名性能技术顾问。他对性能工程、SOA、 RMI、Java Virtual Machine、WebSphere Application Server、WebSphere Portal 以及类似 Rational Performance Tester 的性能工具有着广泛的了解。


Jigar Kapasi 是来自 IBM India Software Lab 从事于 High Performance On Demand Solutions (HiPODS) 团队的一名咨询软件构架师。他目前正带领一个团队在 Bharti Telecom 从事关于 Service Delivery Platform 端点对端点的性能工作。他最近的阅历包括若多个客户的咨询工作,领导构架,测试,调试以及工具等相关方面的性能工作。他有着十年(有九年在 IBM)的工作经验,同时还从事开发测试自动化工具,Web 开发以及 MQSeries L3 Service 开发的工作。他在班加罗尔大学获得了信息技术的学士学位。




对本文的评价

太差! (1)
需提高 (2)
一般;尚可 (3)
好文章 (4)
真棒!(5)

将您的建议发给我们或者通过参加讨论与其他人分享您的想法.




回页首


IBM 公司保留在 developerWorks 网站上发表的内容的著作权。未经IBM公司或原始作者的书面明确许可,请勿转载。如果您希望转载,请通过 提交转载请求表单 联系我们的编辑团队。
    关于 IBM 隐私条约 联系 IBM 使用条款