- 浏览: 1451549 次
- 性别:
- 来自: 苏州
文章分类
- 全部博客 (564)
- 算法 (7)
- 流金岁月 (1)
- Javascript (30)
- actionscript (108)
- as3.0 game (14)
- flex (84)
- fms2 (27)
- 正则表达式 (7)
- 开源组件代码(as3.0) (1)
- Pv3d (13)
- Cairngorm (4)
- vbs (54)
- VB程序设计 (26)
- 计算机应用与维护 (4)
- 职场实用穿衣技巧 (3)
- 历史风云 (15)
- 淡泊明志,宁静致远 (12)
- 情感 (26)
- 杂谈 (41)
- 越南风 (14)
- DirectX (9)
- Dev-cpp (11)
- 回望百年 (2)
- 建站经验 (2)
- Python (24)
- 网络赚钱 (4)
- php (2)
- html (1)
- ob0短址网 (1)
- ob0.cn (1)
- wordpress (1)
- pandas logistic (1)
- haxe (1)
- opencv (1)
- 微信小程序 (3)
- vue (3)
- Flutter (1)
最新评论
-
GGGGeek:
第一个函数滚动监听不起作用,onPageScroll可以
微信小程序--搜索框滚动到顶部时悬浮 -
naomibyron:
解决办法:工具 -> 编译选项 -> 编译器 ...
dev-c++中编译含WINSOCK的代码出现错误的解决方法 -
haichuan11:
这个…… 代码不全真的是让人很憋屈的感觉啊
actionScript 3.0 图片裁剪及旋转 -
chenyw101:
老兄能留个QQ号吗?具体的我有些东西想请教下你
用VB制作网站登陆器 -
yantao1943:
貌似有点问题,只派发一次事件啊
使用ActionScript 2.0或ActionScript 3.0处理音频文件的提示点(cue
Flex 程序性能测试
作者:叶晖俊 yehuijun2001@163.com
2008 年 4 月 11 日
注: Flex 程序的性能测试, 作者叶晖俊。 本文版权归属作者所有,可以自由转载,但是必须注明出处和作者,否则将追究法律责任。
简介: Adobe 的 Flex 已经越来越流行,但是 Flex 程序的性能测试却还没有很好的工具。包括著名的性能测试工具 LoadRunner 都还没有对新版本 Flex 性能测试有很好的支持。笔者在实际工作的研究中,发现了一个好的测试 Flex 程序的方式。 本文重点介绍性能测试中如何处理 Flex 的 AMF 消息。 本文采用的测试工具是 The Grinder , 开发语言是 Jython 和 Java 。
关键字: Flex 测试、 Flex 性能测试、 AMF Message 解码
1. Flex 程序性能测试的困惑
Flex 默认使用的是 AMF 协议进行传输。 AMF 协议在浏览器与 Server 端的交互是通过 HTTP 协议进行传输, 如图 1-1 。 Client 端发到 Server 端:首先是 Action Script 的对象,包装进 AMF Message , AMF Message 对象再被序列化成二进制数组,存入 HTTP POST 请求的 Data 域中, 数据传到服务器后,反序列化成 Java 版 AMF Message 对象, Server 端 Flex 框架再把 AMF Message 中的业务对象取出来发送到对应的服务器端 Java 对象。 Server 端到 Client 端是类同的。
图 1-1 Flex AMF Message 的传输
当用脚本录制器把 AMF Message 录制下来时, 是一串人不可读的二进制数组。
result = request1201.POST( '/home/messagebroker/amfsecure' +
'?RND' ,
( 0x00 , 0x03 , 0x00 , 0x00 , 0x00 , 0x01 , 0x00 , 0x04 ,
0x6E , 0x75 , 0x6C , 0x6C , 0x00 , 0x02 , 0x2F , 0x31 ,
0x00 , 0x00 , 0x00 , 0xCB , 0x0A , 0x00 , 0x00 , 0x00 ,
0x01 , 0x11 , 0x0A , 0x81 , 0x13 , 0x4D , 0x66 , 0x6C ,
0x31 , 0x30 , 0x37 , 0x37 , 0x34 , 0x32 , 0x45 , 0x31 ,
... ,
0x07 , 0x6E , 0x69 , 0x6C , 0x01 , 0x04 , 0x00 , ),
( NVPair( 'Content-Type' , 'application/x-amf' ), ))
如果不需要对发出去的 AMF Message 做任何参数化,直接回放脚本即可。 但是如果想要看懂 AMF 消息里面的内容,或者需要依据实际情况修改 AMF 消息中的内容后再发出去, 那么就要想办法把二进制的数组解析出来。如前面所诉,这个二进制的数组,其实是 AMF Message 对象序列化后的数据。 可惜的是,这个序列化算法是 Adobe 自定义的,普通的 Java 反序列化,并不能解析出来, 并且解析成 AMF Message 对象以后,还需要重新序列化成二进制,发送到服务器端。笔者曾经尝试过多种办法解析和编码 AMF Message 对象, 最后找到一个方法可以很好的编码和解析 AMF Message ,并在实际测试中予以运用, 这个方法同时适用于 The Grinder, 和 LoadRunner 。
2. 解析和编码 Flex AMF Message
首先在已部署的 Flex 应用程序中找到 flex-messaging.jar 、 flex-messaging-common.jar 两个包, 通常在 war/WEB-INF/lib 目录下。
开启 Eclipse 创建一个 Java Object 引用这两个包,创建一个类 AMFTransformer ,专门负责解析和编码 AMF Message 。
载入以下对象:
import flex.messaging.io.SerializationContext;
import flex.messaging.io.amf.ActionContext;
import flex.messaging.io.amf.ActionMessage;
import flex.messaging.io.amf.AmfMessageDeserializer;
import flex.messaging.io.amf.AmfMessageSerializer;
解码 , 二进制到 AMF Message 对象, 利用 AmfMessageDeserializer 类:
AMF Message 解析成 Java 对象后,可以根据实际需要做任意的修改。
编码 , AMF Message 对象,到二进制数组, 利用 AmfMessageSerializer 类:
注: AmfMessageSerializer , AmfMessageDeserializer 的构造函数在不同版本中略有差异,可能需要 SerializationContext 作为构造函数的参数。
AMF Message 解析成对象后,为了更加方便测试人员阅读和理解,可以利用开源包 XStream 把 Java 对象转储成 XML 。
3. Flex 性能测试
能够把 Flex AMF Message 消息解析和编码后,就可以利用传统的 Web 性能测试工具进行测试了。 关于传统 Web 程序的性能测试,请参见笔者另外一篇文章《电子商务系统的性能测试》。
4. 后记
本文书写仓储,不可避免有遗漏错误之处,如有不对,还往不吝赐教。 另外本人还提供电子商务系统的性能咨询服务。如有需要,请在本人博客上留言,或 EMAIL 给我。
免责申明:
本文纯属技术探讨,不对使用本方法是否侵犯他人版权负责。 请读者自行斟酌,或咨询 Adobe 公司确认该方法合法。
注: 《 Flex 程序性能测试》, 作者叶晖俊, yehuijun2001@163.com 。 本文版权归属作者所有,可以自由转载,但是必须注明出处和作者,否则将追究法律责任。
发表评论
-
Apache FlexJS 0.0.1 和 Apache Flex FalconJX 0.0.1发布
2015-11-01 19:44 554原文地址:http://note.sdo.com/u/634 ... -
Flash Catalyst 常用键盘快捷键
2011-03-28 15:38 1065转自:http://www.riameeting.com/ ... -
8款很实用的Actionscript写的位图(BitMap)操作类
2011-03-24 12:09 1943AS3 Scale9 Bitmap ... -
VC++ 项目中使用 FLEX
2011-03-24 09:13 19491, http://hi.baidu.com/qinpc/ ... -
flex应用开发/flash应用开发 代做flash作业/flex作业
2011-01-09 20:37 347专业承接flex应用开发/flash应用开发 ... -
脑袋里的秘密,输入姓名就可以知道你在想什么! flex版
2010-12-29 11:34 2548输入名字就可以知道她/他在想什么的工具~~ -
一个flex聊天机器人
2010-12-18 10:42 1657无聊之下所作,供大伙娱乐,随边聊聊。。。 -
Flex:基于Flex-config.xml的命令行编译
2009-07-01 09:33 1893关键字: Flex Flex2 编译 mxmlc ... -
抽出flash与java 用AMF交互代码
2009-06-30 15:09 3661最近做的一个java 与flash通讯的项目,由于项目框 ... -
BulkLoader类和PV3D
2009-06-26 17:02 1969AS3取消了movieclip的loader类,所以加 ... -
使用 Flex Builder 3.x 分析工具 Profile
2009-06-25 11:26 3415前言 关于分析工具 (原文见Flex Builder ... -
AMF3+JAVA的调用范例
2009-06-24 17:44 2564[AS3]AMF3+JAVA的调用范例 amf是Ad ... -
Flex RemoteObject类参考
2009-06-19 11:39 1243<mx:RemoteObject>标记 ... -
flex画的菱形
2009-05-11 16:19 3456package com { impo ... -
理解 Flex itemRenderer - 第 4 部分: 状态和过渡
2009-05-08 09:23 1718itemRenderer 最擅长与应用 ... -
理解 Flex itemRenderer - 第 5 部分: 效率
2009-05-08 09:21 1769如果您要显示大量 itemRenderer-无论在 Dat ... -
VO to XML converter
2009-05-04 09:00 1152private function convertToXM ... -
Flex全屏
2008-09-26 11:11 1795private function goFullScreen( ... -
ExternalInterface在Firefox下出错的bug
2008-09-16 09:28 3181使用Document Class为避免命名空间冲突,通常会取消 ... -
Flex与Win32通信实例之ExternalInterface
2008-09-11 16:34 3490关键字: flex win32 vc++ vc externa ...
相关推荐
【Flex性能测试】是针对基于Flex技术构建的富互联网应用程序(RIA)进行的性能评估过程。Flex是由Adobe公司开发的一种支持RIA开发和部署的技术,它主要用于创建具有高度交互性和动态用户体验的企业级应用。Flex的...
而当我们需要对这些Flex应用程序进行自动化测试时,"sfapi"(可能是Flex Selenium API的简称)就显得尤为重要。 "sfapi" 提供了一个接口,使得测试工具,如Selenium,能够与Flex应用程序的控件进行交互。Selenium是...
### Flex 应用程序性能:改善客户端应用程序和服务器性能的技巧与技术 #### 概述 随着互联网技术的发展,富互联网应用(RIA)的需求日益增长。Macromedia Flex 是一个强大的平台,它允许开发者创建高性能的 RIA。...
通过这个"flex例子.flex源程序",你不仅可以了解Flex的基本语法和组件使用,还能学习到如何组织和管理一个Flex项目,以及如何利用FlexCover这样的工具进行测试和质量控制。在深入学习过程中,还可以尝试扩展和修改...
LoadRunner是一款强大的负载和性能测试工具,9.5版本对于Flex应用的支持使得它能够对基于Adobe Flex技术构建的Web应用程序进行深入的性能评估。性能测试是确保系统在高并发用户负载下稳定运行的关键步骤,而Flex应用...
总之,"Flex 4.5 开发安卓程序文档"是学习如何使用Flex进行Android开发的重要资料,涵盖了从项目创建到应用发布的全过程,同时也包含了一些性能优化和调试技巧。对于想要跨入Flex移动开发领域的开发者来说,这是一份...
为了评估Flex与JSP在实际应用中的性能差异,研究选择了实现相同的购物车应用程序作为测试案例。通过使用MXML和JSP分别构建这个应用,研究人员能够更直观地对比两种技术在服务器端的表现。 #### 对单一Flex商店应用...
在模拟高并发场景的压力测试中,Flex应用程序的表现同样优秀。尽管Flex和JSP应用程序都消耗了大约75MB的平均内存,但是Flex应用程序对服务器CPU的占用率仅有0.8%,而JSP应用程序的这一数值达到了21.2%。这表明,在...
LoadRunner for Flex是HP公司推出的一款强大性能测试工具,专为Flex应用程序设计,能够帮助我们评估和优化Flex应用的性能、容量和稳定性。本教程将详细介绍在LoadRunner中如何正确引用Flex相关的包,以确保性能测试...
标题 "flex 性能,查看内存" 暗示了我们正在讨论Adobe Flex,这是一个用于构建富互联网应用程序(RIA)的开源框架,基于ActionScript和Flash Player或Adobe AIR。Flex应用通常涉及大量的交互和动态数据处理,因此...
通过对Adobe Flex应用程序进行细致的性能优化,不仅可以提升用户体验,还能有效减少服务器负载,提高整体系统效率。开发者应该密切关注应用的实际运行情况,适时调整优化策略,以应对不断变化的需求和技术环境。
Flex持续集成之单元测试是开发过程中一个至关重要的环节,它主要关注的是Flex应用程序的模块化测试,确保每个独立的代码单元都能正常工作。通过单元测试,开发者可以预先发现和修复问题,提高代码质量和稳定性,同时...
在Flash Builder 3中开发Flex应用程序,用户可以利用其强大的集成开发环境(IDE),包括代码编辑、调试和性能分析工具,简化开发流程。Flash Builder 3是专为Flex和ActionScript开发设计的,提供代码提示、自动完成...
通过以上步骤,你已经成功搭建了一个Flex测试站点,可以开始你的Flex应用程序开发之旅。记得定期更新软件以保持最佳性能和安全性。在开发过程中,遇到问题可以查阅官方文档或社区论坛,那里有丰富的资源和经验分享。
4. **性能测试**:Flex应用可能需要处理大量数据或复杂的动画,因此性能测试至关重要。我们可以使用Adobe Scout或第三方工具如JMeter来分析性能瓶颈。 5. **兼容性测试**:Flex应用需要在不同的浏览器、操作系统和...
【Flex性能分析】Flex是一种基于ActionScript的开源框架,用于构建富互联网应用程序(RIA)。它提供了丰富的用户界面组件和强大的数据绑定能力。在开发过程中,性能优化是必不可少的一环,而`Flex Profile`就是用于...
在本主题中,我们将深入探讨如何使用Flex调用Web服务,尤其是与Java程序的交互。 1. **Flex与Web服务的交互** Flex可以通过SOAP(简单对象访问协议)或AMF(动作消息格式)来调用Web服务。SOAP是一种基于XML的通信...
可能是关于开发Flex应用程序的实践指南,可能包含项目管理、团队协作、调试技巧、测试策略等方面的内容,旨在帮助开发者提高开发效率和代码质量。 6. **flex中文文档.pdf**: 这是一份中文版的Flex文档,对于中文...
1. **Flex SDK**:Flex Software Development Kit包含了一组工具和库,允许开发者创建、编译和测试Flex应用程序。它包括了Flex编译器、Flex Builder IDE(基于Eclipse)、命令行工具以及Flex组件库。 2. **Flex组件...