工作中的点点滴滴,慢慢积累。

loadrunner调用java的类

上一篇 / 下一篇  2007-01-11 13:11:09 / 个人分类:Loadrunner

最近公司需要测试几个具有一定功能类的性能,虽然我觉得这已经是白盒测试的范畴了,但是领导要求这样做,我也就只好进行技术的研究.要求就是能够传参数给类,并且可以接收到类返回的参数,并且进行正确与否的判断。51Testing软件测试网#[ ? QI7\
第一步,总的思路。51Testing软件测试网*p*t$H0[d(M
以前我都是用loadrunner直接进行录制,但是有些协议的确不好弄不知道怎样进行录制,像vb,c++,java语言做的东西我觉最简单的方式就是直接调用相关的类文件,动态链接库,直接用代码的方式进行调用。在这种思想下,于是试着在loadrunner中写程序调用java类。51Testing软件测试网%Gv| f2L"o.i1A
第二步,做符合要求的实验用的java类。
%pQ8g&s~"sw!A.r0说实话难度太大了对我来说,我一点不懂java,好在我知道C++,但是java的代码编写方式和编译环境,都是我从来没有见过的。慢慢学,多多问,好不容易最初级别的搞定了这些,首先要装j2sdk在系统盘下。,然后再系统环境变量中添加上%java_home%\bin;就可以用cmd命令进行java的编译和运行的操作了。编译和运行的命令分别是你所写java类目录下的运行javac test.java和java test 参数,例如,如果你的类在c:\test目录下,你就应该在cmd中使用cd \test,转到这个目录下,再用javac test.java和java test 参数进行操作。51Testing软件测试网;lab6e4bIRp:~
我从网上找到了一个现成的简单的java类,现将源代码放在下面。51Testing软件测试网!Rn~`9wCB3A
package MAIN;51Testing软件测试网[m#Y7e!\+DKk)N~)X$h
import java.io.PrintStream;51Testing软件测试网 uy8K ?(D`
public class Birthday51Testing软件测试网,g^V2tj3]4]
{
`%s#y%v*r4{;U(l^ S)\0        public String year;51Testing软件测试网\-xCP8APVwu'~:l
        public String month;
C%Yt#u9{'J;|sL;_&Y0        public String day;
Mj,w5u|{ z0        public Birthday()51Testing软件测试网` uF;{M$`8y
        {51Testing软件测试网T/R/i rm:y c
            year="1900";51Testing软件测试网"o fi{&v7q:_
            month="01";
:|j&l+Ctf~"W0            day="01";51Testing软件测试网-y7O-z Q?
        }
+m^qrN#Tn@0        public Birthday(String y,String m,String d)
1dtI2T&kSP0        {
`Ris ]Fr#U0            year=y;51Testing软件测试网E$d8MDRr1Va@
            month=m;
4IHY__!~%},zC0            day=d;
Nf}&g|(vi Q \ ]0            System.out.println("OK");
z$e:AJH;LV&Y0        }
T5f(vx}!l&o0        public String getBirthday()
6?K3Cd7I2BJ0        {51Testing软件测试网r(C/]4C;i"^S O
            String fullbirthday=month+'/'+'/'+day+'/'+year;51Testing软件测试网(P|#d;M8[
            return fullbirthday;51Testing软件测试网{-srP Vf
        }51Testing软件测试网I%W&[1P)\O7H
}51Testing软件测试网N Q){*t.r Q P)n7]6w"Mb
类很简单,用上述方法编译也是很容易就通过了。51Testing软件测试网T'{ \k&u\$N
51Testing软件测试网Hm}-r+lqC
第三步,如何在Loadrunner中将这个类调用起来。51Testing软件测试网aV6Y]2OXb
想了很久,决定用java vuser这种脚本的方式进行写java代码,这点代码是一定要写的。熟悉一阵子java语言之后,决定用import将类引入,于是问题又来了,*.class文件该放在什么地方呢,中间试验的过程暂且不表,将最后结果写在这里就好。目前我得到的结果是将*.class文件放在,你loadrunner安装的路径下classes\main这个目录下。懂java的很容易就搞定了这一步,包括路径和import的语句。
c Hjs9}0{3Oe*Xd0于是Loadruner中的java代码如下:
t%vf"su0import lrapi.lr;51Testing软件测试网Hr0}c!V/{
import MAIN.Birthday;
A-K xa-L051Testing软件测试网5K%l#U?9k*?l HB&z
public class Actions51Testing软件测试网K'Y*_m*k
{
I*^^Wd)G |m0LT _051Testing软件测试网eI^RO"^
    public int init() {51Testing软件测试网bWUm_,|
        return 0;
U2[_+p/l3F+mv0    }//end of init51Testing软件测试网S"`{A*|d qw"L(q
51Testing软件测试网$lu3[xI ]
51Testing软件测试网 U Gan6ZW
    public int action() {51Testing软件测试网r$v1aas)pj
               Birthday bir=new Birthday("1981","6","1");
        //bir.getBirthday
        System.out.println(bir.getBirthday());
x[1GtX`0] O0
        return 0;
_dJ-xD z$Z"Ft0    }//end of action
Zd'z;c1WEJ8s b \051Testing软件测试网\ T#@c"j$oM#}c
51Testing软件测试网(U `@j6R0z0f
    public int end() {51Testing软件测试网cbfp}0eO$nM
        return 0;51Testing软件测试网cOq"sM/Gt3G
    }//end of end51Testing软件测试网&zJLG5E!wET,\
}
u5e[$oH}X { u@0注意红色的字体,这里完成了对类的调用和初始化,并且传递了参数进去,最后调用类的方法,把一个值返回,并打印出这个值,至于怎样检查这个值是否正确就很简单了,这里就不累赘了.51Testing软件测试网0DM3bJW9UU'K3|7]R
一天一点积累!工作上我的座游铭。51Testing软件测试网;z]/WQ] a

r*p eZ0S3pw \ e0最后发现,loadrunner中有很详细介绍资料,哎,感慨自己的英文水平呀!51Testing软件测试网WWT6zm&i kX
最后发现loadrunner导入类的路径是可以自己设置的,不需要专门把所有的类都放到classes目录下,具体设置的地方在runtime settings里面class path项里进行设置就可以了,每一个脚本都可以这样设。关于具体的并发的时候如何取脚本,这些有关于laodrunner的布置问题,这里不多说。
+Hla;W#Bw(o/uq0
tSs-{)Q5i5ri:u7c3?0

TAG: LoadRunner Loadrunner

jiao_jiao_89的个人空间 引用 删除 jiao_jiao_89   /   2008-08-08 11:15:54
3
而且是一个继承接口的没有构造函数的类且参数是数组怎么办啊。
Figo改变工作,改变生活 引用 删除 figo007   /   2007-06-25 15:23:41
我也遇到这样的问题。怎么解决?
引用 删除 mckobe   /   2007-02-14 18:02:02
我和你做的相似,但是遇到了问题,如下

通知: Found jdk version: 1.6.0.        [MsgId: MMSG-22986]
警告: Warning: Failed to find Classes.zip entry in Classpath.
        [MsgId: MWAR-22986]
通知: classpath=D:\Code\Java\Birthday\;c:\program files\mercury\loadrunner\classes\srv;c:\program files\mercury\loadrunner\classes;.;C:\Program Files\Java\jdk1.6.0\lib;D:\Code\Java\Birthday\Birthday.class;;;        [MsgId: MMSG-22986]
通知: Path=C:\PROGRA~1\Mercury\LOADRU~1\bin;C:\PROGRA~1\Mercury\LOADRU~1\bin\tulip\bin;C:\Program Files\PC Connectivity Solution\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\PROGRA~1\SecureFX;C:\Program Files\Java\jdk1.6.0\bin;;C:\PROGRA~1\COMMON~1\MUVEET~1\030625;        [MsgId: MMSG-22986]
通知: VM Params: .        [MsgId: MMSG-22986]
错误: Java VM 内部错误: Error Loading javai.dll.
。        [MsgId: MERR-22995]
警告: 扩展 java_int.dll 报告在调用函数 ExtPerProcessInitialize 时出现错误 -1        [MsgId: MWAR-10485]
错误: 线程上下文: 调用驱动程序的服务失败。原因 – 线程上下文未在此线程上初始化。
 

评分:0

我来说两句

日历

« 2024-04-25  
 123456
78910111213
14151617181920
21222324252627
282930    

我的存档

数据统计

  • 访问量: 16387
  • 日志数: 12
  • 建立时间: 2007-01-10
  • 更新时间: 2007-01-19

RSS订阅

Open Toolbar