成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

深入剖析Flex程序性能測試

開發 后端
本文向大家簡單介紹一下Flex程序性能測試的概念,Adobe的Flex已經越來越流行,但是Flex程序的性能測試卻還沒有很好的工具。

在學習Flex的過程中,你可能會遇到Flex程序性能測試方面的問題,這里和大家分享一下,本文重點介紹性能測試中如何處理Flex的AMF消息。本文采用的測試工具是TheGrinder,開發語言是Jython和Java。

Flex程序性能測試

Adobe的Flex已經越來越流行,但是Flex程序的性能測試卻還沒有很好的工具。包括著名的性能測試工具LoadRunner都還沒有對新版本Flex性能測試有很好的支持。筆者在實際工作的研究中,發現了一個好的測試Flex程序的方式。本文重點介紹性能測試中如何處理Flex的AMF消息。本文采用的測試工具是TheGrinder,開發語言是Jython和Java。
 
  1.Flex程序性能測試的困惑

  Flex默認使用的是AMF協議進行傳輸。AMF協議在瀏覽器與Server端的交互是通過HTTP協議進行傳輸,如圖1-1。Client端發到Server端:首先是ActionScript的對象,包裝進AMFMessage,AMFMessage對象再被序列化成二進制數組,存入HTTPPOST請求的Data域中,數據傳到服務器后,反序列化成Java版AMFMessage對象,Server端Flex框架再把AMFMessage中的業務對象取出來發送到對應的服務器端Java對象。Server端到Client端是類同的。

  圖1-1FlexAMFMessage的傳輸

 

 

  當用腳本錄制器把AMFMessage錄制下來時,是一串人不可讀的二進制數組。
  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'),))

  如果不需要對發出去的AMFMessage做任何參數化,直接回放腳本即可。但是如果想要看懂AMF消息里面的內容,或者需要依據實際情況修改AMF消息中的內容后再發出去,那么就要想辦法把二進制的數組解析出來。如前面所訴,這個二進制的數組,其實是AMFMessage對象序列化后的數據。可惜的是,這個序列化算法是Adobe自定義的,普通的Java反序列化,并不能解析出來,并且解析成AMFMessage對象以后,還需要重新序列化成二進制,發送到服務器端。筆者曾經嘗試過多種辦法解析和編碼AMFMessage對象,***找到一個方法可以很好的編碼和解析AMFMessage,并在實際測試中予以運用,這個方法同時適用于TheGrinder,和LoadRunner。#p#

  2.解析和編碼FlexAMFMessage

  首先在已部署的Flex應用程序中找到flex-messaging.jar、flex-messaging-common.jar兩個包,通常在war/WEB-INF/lib目錄下。
  開啟Eclipse創建一個JavaObject引用這兩個包,創建一個類AMFTransformer,專門負責解析和編碼AMFMessage。
載入以下對象:
  importflex.messaging.io.SerializationContext;
  importflex.messaging.io.amf.ActionContext;
  importflex.messaging.io.amf.ActionMessage;
  importflex.messaging.io.amf.AmfMessageDeserializer;
  importflex.messaging.io.amf.AmfMessageSerializer;

  解碼,二進制到AMFMessage對象,利用AmfMessageDeserializer類:

 

  AMFMessage解析成Java對象后,可以根據實際需要做任意的修改。

 

 #p#

  編碼,AMFMessage對象到二進制數組,利用AmfMessageSerializer類:

 

  注:AmfMessageSerializer,AmfMessageDeserializer的構造函數在不同版本中略有差異,可能需要SerializationContext作為構造函數的參數。
  AMFMessage解析成對象后,為了更加方便測試人員閱讀和理解,可以利用開源包XStream把Java對象轉儲成XML。

  3.Flex性能測試

  能夠把FlexAMFMessage消息解析和編碼后,就可以利用傳統的Web性能測試工具進行測試了。

  4.后記

  本文書寫倉儲,不可避免有遺漏錯誤之處,如有不對,還往不吝賜教。

【編輯推薦】

  1. 使用FlexSDK4時三大注意事項
  2. FlexBuilder4十大新特性閃亮登場
  3. 解析六大優秀Flex開源項目
  4. 揭開Flex正則表達式的神秘面紗
  5. 技術分享 在Flex中嵌入Flex字體的步驟


 

責任編輯:佚名 來源: csdn.net
相關推薦

2010-08-04 13:52:53

Flex事件機制

2013-12-17 17:05:20

iOS性能優化

2010-08-09 16:01:37

Flex字體

2009-07-01 18:24:59

JSP應用程序JMeter

2010-08-03 16:21:54

FlexFlash

2010-08-04 08:42:28

Flex和Flash

2010-08-06 15:20:25

Flex Builde

2010-08-13 09:54:23

Flex字體

2010-08-03 13:47:26

Flex程序員

2024-12-09 09:50:00

JVM逃逸逃逸分析

2010-08-12 16:10:44

Flex應用程序

2010-08-12 11:29:01

Flex組件

2010-02-04 09:41:03

Android應用程序

2010-08-04 09:43:28

Flex應用程序

2018-11-20 10:50:00

Java性能優化編程技巧

2010-06-11 10:19:22

systemd

2010-07-30 15:35:11

Flex結合

2010-08-11 09:01:41

Flex4布局

2019-02-01 09:50:00

提升Python程序性能

2019-10-17 10:10:23

優化Web前端
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 黄色网址在线播放 | 伊人久麻豆社区 | 精品视频一二区 | 国产视频三区 | 午夜影晥 | 99福利网 | 一区二区三区播放 | 国产伦精品一区二区三区照片91 | 激情欧美一区二区三区中文字幕 | 国产一级淫片a直接免费看 免费a网站 | 国偷自产av一区二区三区 | 国产综合久久 | 91视频国产区 | 国产精品国产三级国产aⅴ中文 | 网站黄色在线免费观看 | 在线观看www高清视频 | 国产精品视频播放 | 日韩中文在线视频 | 日韩播放 | a级片在线观看 | 欧美日韩一区二区三区四区 | 亚洲精品www久久久久久广东 | www.亚洲国产精品 | 日韩不卡一二区 | 久久国产一区二区 | 亚洲伦理自拍 | 91精品国产91久久久久久密臀 | 国产伦精品一区二区三区照片91 | 天天综合网永久 | 四虎影院久久 | 一级a性色生活片久久毛片波多野 | 五月免费视频 | 最新中文字幕第一页视频 | 日韩视频一区二区 | 午夜激情影院 | 国产在线视频在线观看 | 国产在线观看一区二区三区 | 精品免费视频 | 国产九九九九 | 成人夜晚看av | www.av7788.com|