用LR11测试flex开发的平台(zt)
标签:
flexloadrunnerit |
分类: LoadRunner |
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之类的,如下几图:
这个什么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,如下图:
重新生成脚本时,可能还会缺少某些类,可与开发人员沟通获得;也有可能报如下错误:提示为: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资源,最好先注释掉这段代码,待调试结束后,再将代码还原 |
| 想看回放时,loadrunner提交的数据和服务器响应,可以进入Tree视图--snapshot页签内查看repaly时,loadrunner的request和服务器响应reponse |
浙公网安备 33010602011771号