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

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

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

Rakesh Kumar Dash, 性能顾问, IBM India

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



Jigar N Kapasi (kjigar@in.ibm.com), 软件开发人员, IBM India

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



2008 年 3 月 13 日

前言

典型情况下,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 的数据池特性来为不同用户的不同移动设备的装载设置参数,这样您可以模拟一个现实的情景来获取有用的结果。

参考资料

学习

获得产品和技术

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Rational, SOA and web services
ArticleID=294934
ArticleTitle=使用 IBM Rational Performance Tester 对移动 Web 应用程序进行性能测试
publish-date=03132008