软件测试中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 。

时间: 2024-11-18 13:24:36

软件测试中Flex程序性能测试的相关文章

软件测试中的WEB性能测试简介

测试人员应该具备的技能: 1.掌握常见的自动化测试工具的使用: 2.具有一定的编程能力: 3.掌握基础的数据库知识: 4.掌握常见的操作系统知识: 5.掌握一些Web应用服务器的使用,如:Weblogic.Webshpere: 6.具有综合分析问题的能力: 性能测试术语: 1.并发用户: 1)严格意义的并发: 所有的用户在同一时刻做同一件事情或者操作,这种操作一般指做同一类型的业务: 2)广义范围的并发: 多用户对系统发出了请求或者进行了操作,但是这些请求或者操作可以相同,也可以不同: 2.用户

《应用程序性能测试的艺术(第2版)》目录—导读

作者简介应用程序性能测试的艺术(第2版)Ian Molyneaux,EMEA地区的性能领域专家,是Intechnica公司总裁.Intechnica公司是一家总部位于英国曼切斯特的软件咨询公司.他精通企业级应用性能保证,在管理,流程和工具方面都颇有建树.本书特色本书作者具有15年的性能测试经验.本书详尽阐述了不完善的性能测试策略会带来哪些问题.本书也提供了一种健壮的,结构化的方法用以保证你的应用能够性能表现优异,特别是在需求增长的时候也能够做到可扩展. 图书评论应用程序性能测试的艺术(第2版)时

论黑盒测试与白盒测试在软件测试中的不同作用

摘要:黑盒测试着眼于外部结构,不考虑内部结构,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明:而白盒测试着眼于内部结构,对软件的过程性细节做细致的检查. 关键词:黑盒测试:白盒测试:测试用例 一.引言 随着软件市场的成熟,人们对软件作用的期望值也越来越高,我国的软件企业已越来越意识到软件测试的重要性,逐渐加大软件测试在整个软件开发的系统工程中的比重. 软件测试并非传统意义上产品交付前单一的"找错"过程,而是贯穿于软件过程的始终,是一个科学的质量控制过程.而对于任何工程产

剖析软件测试中的压力测试

概念之一[压力测试]来自VisualStudio.NET设计分布式应用程序可靠性测试:是指模拟巨大的工作负荷以查看应用程序在峰值使用情况下如何执行操作.对每个单独的组件进行压力测试后,应对带有其所有组件和支持服务的整个应用程序进行压力测试.集中测试从最基础的功能测试开始.您需要知道编码路径和用户方案.了解用户试图做什么以及确定用户运用您的应用程序的所有方式.测试脚本应根据预期的用法运行应用程序.例如,如果您的应用程序显示Web页,而且99%的客户只是搜索该站点,只有1%的客户将真正购买,这使得提

CA收购开放源代码应用程序性能测试企业BlazeMeter

2016年9月20日--格林尼治标准时间20:49(东八区标准时间04:49) CA公司在星期二表示,该公司已经收购了BlazeMeter,这是一家专注于开放源代码应用程序性能测试的企业.这笔交易让CA能够更好地在其应用程序性能和DevOps产品组合同开放源代码的努力之间架起一道桥梁. 这笔交易将扩充CA的DevOps产品组合和应用程序交付工具.这笔交易将于今年年底完成,交易的条款未被披露. BlazeMeter的开放源代码工具将被用于更好地将CA的技术同开发人员连接在一起.BlazeMeter

软件测试中的测试用例复用技术

摘要:软件测试是确保软件质量的可靠手段,是软件开发过程中必不可少的重要环节.本文提出了面向复用的测试用例设计过程,为测试用例复用提供了实现策略.测试用例的复用对于缩短软件开发周期和降低软件开发成本具有极其重要的意义. 关键词:软件测试:测试用例 1.引言 随着软件工程领域的拓展,在软件产业飞速发展的今天,软件测试成为保证软件质量的重要手段.测试用例的选择对于软件测试的成败起着决定性作用,因此如何设计最少的测试用例实现最大的测试覆盖成为自动化测试领域中的主要研究对象.测试用例是确定一组最有可能发现

一种改进的轻量级.NET应用程序性能测试框架

摘要:本文从实际应用出发,提出一种轻量级.NET应用程序性能测试框架设计方案.该方案是对已有结果的进一步扩充,具有更强的实用性和扩展性.  1 引言 文[1]提出一种.NET应用程序"性能测试框架",其基本思路是通过多个线程执行通过委托传递过来的待测试的程序块,各线程所运行的程序块的主逻辑是相同的,不同的是执行条件(如初始参数.执行次数等).这样就可以得到不同"环境"下算法的执行时间,进而得到整体的时间消耗分布情况.应该说,这种方法的思路是很清晰的,使用也很方便.文

《应用程序性能测试的艺术(第2版)》—第2章 2.1节性能测试工具架构

第2章 选择合适的性能测试工具应用程序性能测试的艺术(第2版)生活中,人们只需要两种工具:让设备运转起来的WD-40(一种润滑剂)和使其停滞的冷缠胶. --G. Weilacher用于性能测试的自动化工具在过去20年的大部分时间里都以某种形式存在.在这期间,应用技术发生了巨大的改变,从胖客户端到Web架构,到如今越来越多的应用以无线的方式来提供服务.相应的,自动化工具所需提供的功能也越来越面向Web和无线开发,而不再是支持传统的二层应用架构中常用的技术.应用技术的集中化对于性能测试人员来说是一件

《应用程序性能测试的艺术(第2版)》—第1章 1.1节从终端用户角度看性能

第1章 为什么要做性能测试应用程序性能测试的艺术(第2版)快过极速子弹! --动作漫画,超人欢迎开启性能测试之旅!在开始探索性能测试的基础知识之前,我想在第1章里花点时间探讨一下什么是我们认为的好性能.什么是差性能以及为什么性能测试是整个软件生命周期(Software Development Lifecycle,SDLC)当中至关重要的一个环节.性能糟糕的应用通常无法为企业带来期望的收益.这些应用纯粹是耗费时间和资金,无法获得客户的认可,因此并不能有效转化为企业资产.如果一个应用/软件无法保证高