jayenho 发表于 2006-8-9 15:15:33

(十万火急)关于测试工具的选择

请问,如果是用java webstart去跑rich client的程序,前后台通信用的是spring的http invoker技术,该选择什么测试工具进行性能测试,哪位同行能告知,万分感谢!

tacy_lee 发表于 2006-8-10 13:36:00

loadrunner就可以实现,关键是要自己写代码

jayenho 发表于 2006-8-10 16:24:16

loadrunner可以录制script,但是录出来的script并不适合使用,因为spring的http invoker有自己的serialize的机制,对传输对象的解析以二进制码(十六进制码)显示,根本不知道哪里可以设置变量,哪里是我们输入的参数值,有什么办法可以让loadrunner能够支持对编解码显示的选择呢,我的意思是把二进制码解释为直观语法,下面是我用http协议录制而成的script,根本不知所云:

BodyBinary=\xAC\xED\\x00\\x05sr\\x005org.springframework.remoting.support.RemoteInvocation_l嫙\\xF6\n\\x11\n\\x02\\x00\\x04[\\x00\targumentst\\x00\\x13[Ljava/lang/Object;L\\x00\nattributest\\x00\\x0FLjava/util/Map;L\\x00\nmethodNamet\\x00\\x12Ljava/lang/String;[\\x00\\x0EparameterTypest\\x00\\x12[Ljava/lang/Class;xpur\\x00\\x13[Ljava.lang.Object;愇X\\x9F\\x10s)l\\x02\\x00\\x00xp\\x00\\x00\\x00\\x01sr\\x008com.hactl.fs.ops.transport.dto.RetrieveFlightCriteriaDTOD醁<%H0\\xD7\\x02\\x00\\x00xr\\x00+"
                "com.hactl.fs.ops.transport.dto.FlightOIdDTO\"!ea\xA5\x51坝\\x02\\x00\\x03L\\x00\nflightDatet\\x00\\x10Ljava/util/Date;L\\x00\\x0EflightFlowTypeq\\x00~\\x00\\x03L\\x00\\x08flightIdq\\x00~\\x00\\x03xr\\x00+com.hactl.fs.ops.base.dto.FoundationBaseDTO\\x7F譎h#馂\\x89\\x02\\x00\\x03Z\\x00\tisDeletedZ\\x00\nisInsertedZ\\x00\tisUpdatedxr\\x006com.hactl.eaf.persistence.impl.AbstractDataTransferObj\xFD\xA6臯峫1\\x10\\x02\\x00\\x03I\\x00\\x07versionL\\x00\tcreatedByq\\x00~\\x00\\x03L\\x00\tupdatedByq\\x00~"
                "\\x00\\x03xp\\x00\\x00\\x00\\x00pp\\x00\\x00\\x00sr\\x00\\x0Ejava.util.Datehj\\x81\\x01KYt\\x19\\x03\\x00\\x00xpw\\x08\\x00\\x00\\x01\r\"\\x02\\xA0\\x00xt\\x00\\x01Et\\x00\\x05CX123sr\\x00\\x11java.util.HashMap\\x05\\x07诹\\xC3\\x16`\\xD1\\x03\\x00\\x02F\\x00\nloadFactorI\\x00\tthresholdxp?@\\x00\\x00\\x00\\x00\\x00\\x0Cw\\x08\\x00\\x00\\x00\\x10\\x00\\x00\\x00\\x01t\\x00\\x0ESESSION_OBJECTpxt\\x00\\x1AretrieveFlightCompositeDTOur\\x00\\x12[Ljava.lang.Class;"
                "\\xAB\\x16桩送Z\\x99\\x02\\x00\\x00xp\\x00\\x00\\x00\\x01vq\\x00~\\x00\\x08",
                LAST

tacy_lee 发表于 2006-8-10 21:29:40

不要录制,直接用java vuser,自己写业务实现,调用后台逻辑

jayenho 发表于 2006-8-11 09:50:33

你的意思是不用录制功能,只是把loadrunner当一个vuser触发器,用java编程实现脚本,对吧。loadrunner的录制最终也是生成脚本,但是问题是,自己写java vuser,怎样才能call得到我们自己的application啊。

jayenho 发表于 2006-8-11 10:39:41

或者这样问,如何让loadrunner能够在classpath里面识别到我们的application(jars)呢?

jayenho 发表于 2006-8-11 12:16:22

已经解决,在vuser的runtime setting里面可以设置runtime所需的jar包,我们现在的workaround solution就是抛开前端是否rich client不管,直接写code去call back end的http invoker,前端的rich client handle的performance不是我们的重点,所以我们可以忽略不计,多谢所有给过我回复的朋友,thank you so much!

jayenho 发表于 2006-8-11 15:41:21

another question

现在script code完后直接跑能成功跑起来,但是放到loadrunner的controller下去跑,就不行,难道写script用的classpath和controller跑的时候用的classpath不一致??我的application是用spring,要用到xml parser,在controller下跑就报下面的错误:
Error: javax.xml.parsers.FactoryConfigurationError: Provider org.apache.xerces.jaxp.DocumentBuilderFactoryImpl not found
但我查过,我的runtime setting里面已经把相应的xml pareser的jar加了进去,而且不说别的,就算是loadrunner自己的classes folder下面也有个jar文件xerces.jar,这两个jar都有这个class存在org.apache.xerces.jaxp.DocumentBuilderFactoryImpl ,怪事怪事!!

tacy_lee 发表于 2006-8-11 16:37:16

你把这个jar放到你的脚本目录里面去试试

jayenho 发表于 2006-8-11 16:48:23

不行,如果我放到vuser的script目录去,这没必要,因为在runtime的时候我的runtime setting已经找得到这个jar了,如果放到controller的senario目录去,我试了,不生效。

tacy_lee 发表于 2006-8-11 16:57:01

rt.jar?

[ 本帖最后由 tacy_lee 于 2006-8-11 17:01 编辑 ]

jayenho 发表于 2006-8-11 18:22:42

rt.jar是指java的runtime所用的jar,我是说在loadrunner里面的runtime setting里面java的classpath设置了我所需的jar文件。

tacy_lee 发表于 2006-8-11 21:44:07

设置了怎么会抛这个错误,仔细检查检查,小问题

jayenho 发表于 2006-8-14 10:39:53

搞不定啊,这个小问题可整死我了,明明设置是没有问题的,就不知道是不是写script用的classpath和controller跑的时候用的classpath不一致??有bug啊!!

tacy_lee 发表于 2006-8-14 11:19:07

是一致的 你在vuser generator里面能跑 到controller里面不能跑 ?

jayenho 发表于 2006-8-14 11:46:13

是啊。

jayenho 发表于 2006-8-14 12:16:48

如何设置controller运行时所用的classpath呢,这个问题好像是runtime时controller和vuser generator所使用的classpath不一致导致的。

lj16329 发表于 2010-5-17 15:14:13

在init里加入以下两行代码就行,具体原因我也不知道,总之是好使了:
        System.setProperty("javax.xml.parsers.DocumentBuilderFactory","com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl");
    System.setProperty("javax.xml.parsers.SAXParserFactory","com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl");
页: [1]
查看完整版本: (十万火急)关于测试工具的选择