如何用LR11测试flex开发的平台

【被测系统说明】以Flex为前端应用,JAVA为后台处理的B/S系统。flex3.5+jdk1.5+LR11
     Flex做界面,Java处理后台业务逻辑
 

【测试脚本录制】

项目是Flex技术作为前端开发的应用,所以我们需要启动loadrunner的Flex/Web脚本。(采用双协议)

录制之前,有必要说一下Flex的交互机制。浏览器作为客户端与服务器之间交互的媒介是amf,amf(二进制流)将服务器返回的数据编译后,到客户端进行解析,而本项目服务器端返回的数据解析后都是xml

录制协议的选择

①flex协议;(LR 11支持此协议的license为:AEACFSJI-YJKJKJJKEJIJD-BCLBR)

  ②flex+web(http/html)的双协议;(建议使用)客户端到服务端使用的依然是web协议,

录制脚本结束后可能出现提示你code generation error。主要是缺少了某些class之类的,如下几图:

用LR11测试flex开发的平台

用LR11测试flex开发的平台

用LR11测试flex开发的平台

这个什么DSK的当时开发都找不到相关的jar包,class,真不知道是什么东西来着。它是在我更换了电脑上jdk之后出现的。

图中的错误描述为“序列化错误——外部化对象类型不支持。”即脚本无法解析,这时需要引入一些JAVA  class,从而序列化生成由客户端与服务端产生的AMF消息,编译、解析二进制信息(Flex默认使用AMF协议进行通讯)。

引入JAVA class,缺少的包可在服务端如下位置取得:

\WebRoot\WEB-INF\lib(一般开发人员可提供如下包)

flex-messaging-common.jar

flex-messaging-core.jar

flex-messaging-opt.jar

flex-messaging-proxy.jar

flex-messaging-remoting.jar

flex-rds-server.jar;

jar存放位置最好为英文路径。引入了这些包后,生成脚本时若还提示缺少某些类,可与开发人员沟通获得。

引入方式:在Virtual user generator组件下,点击Tools->Recording Options->Flex->Externalizable Objects->选择序列化对象,通过自定义java class,如下图:

用LR11测试flex开发的平台

重新生成脚本时,可能还会缺少某些类,可与开发人员沟通获得;也有可能报如下错误:

用LR11测试flex开发的平台

    提示为:bad version number in …..此错误为jdk版本不一致。因为此次项目的jdk版本为1.6,而LR11的默认jdk则为1.5(可在安装路径:…\HP\LoadRunner\jre下的readme文档中查看到)。

    解决方法:可用最新jre1.6或jre1.7替换loadRunner11 下的jre即可解决这个问题(整个jre文件夹替换!)。将与被测系统版本一致的jre替换到“安装路径…\HP\LoadRunner\”下的jre

    至此问题解决,可以正常解析flex协议下所有请求数据了,录制到的脚本结构更加清晰,方便查阅与编辑。

    若用web(html/http)的单协议方式,要选择url-based script的方式进行录制,但是录制到的脚本不是很清晰,不便于编辑。
==============================分割线,网上摘抄的===================================


回放前,先设置一下输出日志的内容,Vuser-->Run-time Settings-->log-->log messages at the detail level of-->Extended log中勾选Data returned by server(由服务端返回给客户端的数据) (如下图)

注意:这个日志选项会带来一些麻烦,如果服务器返回的是一个.swf页面的话,回放时,loadrunner解析返回输出数据的速度很慢,所以如果代码中有请求.swf资源,最好先注释掉这段代码,待调试结束后,再将代码还原

用LR11测试flex开发的平台

想看回放时,loadrunner提交的数据和服务器响应,可以进入Tree视图--snapshot页签内查看repaly时,loadrunner的request和服务器响应reponse


-------------------------------------------------------------------------------------

flex协议默认使用AMF协议进行通讯。部分文档内容可见链接:http://www.docin.com/p-318854950.html

用LR11测试flex开发的平台

用LR11测试flex开发的平台

LoadRunner对flex的支持:Loadrunner提供flex和amf两个 虚拟用户协议
AMF:
用LR11测试flex开发的平台

Flex:
用LR11测试flex开发的平台

用LR11测试flex开发的平台

--------------------===========---------------------====================---------
Flex 虚拟用户脚本函数:
Flex Vuser script emulate communication between a Flex client and a Flex application.
用LR11测试flex开发的平台

用LR11测试flex开发的平台
用LR11测试flex开发的平台
用LR11测试flex开发的平台



用LR11测试flex开发的平台

用LR11测试flex开发的平台



==============================================================
2个名词的解释:
AMF(Action Message Format)是ActionScript对象序列化后的二进制流。用于Adobe Flash应用和远端服务的通讯。由于它是基于二进制的数据传输,所以相对于XML SOAP,json,WebService等基于字符串的数据格式,有数据体积小和效率高的特点。


BlazeDS是一个 基于服务器Java远程调用(remoting)和 Web消息传递(messaging) 技术,使得后台的Java应用程序和运行在浏览器上的 Flex应用程序能够相互通信。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值