LoadRunner?是一种预测系统行为和性能的工业标准级负载测试工具。它通过模拟数据以千万计用户来实施并发负载来对整个企业架构进行测试,来帮助您更快的查找和发现问题。关于LoadRunner?更全面的描述及使用,请参考《LoadRunner 使用手册》或Mercury Interactive 公司提供的联机帮忙文档。
LoadRunner这个商用性能测试工具就不多说了。我感兴趣的是如何使用LR8.1测试 Oracle10g性能。第一次做的话,会遇到不少问题,如下:
问题1:
用LoadRunner8.1破解版测试 Oracle10g,结果遇到如下的错误信息:
Error... You do not have a license for this Vuser type.
Please contact Mercury Interactive to renew your license.
解决方法:使用了另外一个100用户的全协议license。
问题2:
测试run起来之后,会有好多Vuser出现Error,具体如下:
Action.c(37): Error: lrdo_ora8_exec: "OCIStmtExecute" return-code=OCI_ERROR,error-code=00054:
解决方法:
把
lrd_ora8_exec(OraSvc1, OraStm<i>, 0, 0, &uliRowsProcessed, 0, 0, 0, 0, 0);
改为:
lrd_ora8_exec(OraSvc1, OraStm<i>, 0, 0, &uliRowsProcessed, 0, 0, 0, 0, 1);
问题3:Action.c(13): Error: lrdo_server_attach: "OCIServerAttach" return-code=OCI_ERROR, error-code=12514:
用LR测试Oracle10g,启动VuGen并进行相应的设置。启动sqlplus,开始录制。
录制完成之后,使用Controller分发负载,但是最后测试数据只有如下4条性能曲线:
Running Vusers
Trans Response TIMe
Trans/Sec(Passed)
Total Trans/Sec(Passed)
其余的 Throughput
HTTP Responses per Second
Connections 等等
这些性能统计项显示为灰色,没有统计数据。是不是哪儿设置的有问题呢?
解决:因为sqlplus.exe是一个win32程序,那么在测试的过程中只统计上面的四项,它不
会统计Throughput这些Web测试才有的性能曲线。
所以,如果想对数据库服务器测试的更全面,这个时候就要使用isqlplus来发出查询。
1)在DB server上启动isqlplus服务:isqlplusctl start
2)启动VuGen,在客户端(压力机)启动isqlplus的Web页面
3)输入用户名、密码,我这里采用scott/tiger@lr
OK!录制完成之后,施加压力执行测试。顺利结束之后,可以看到如下曲线已经抓取出来
了:
Throughput
HTTP Responses per Second
Connections
问题5:
Action.c(26): Error: C interpreter run time error: Action.c (26): Error -- Unresolved symbol : lrd_session_begin.
解决:
在vuser_init中添加 #include "lrd.h"
问题6:
Action.c(41): Error: lrdo_ora8_exec: "OCIStmtExecute" return-code=OCI_ERROR, error-code=00054:
解决:同问题1
问题7:
Starting iteration 1.
Starting action Action.
Action.c(13): Error: lrdo_server_attach: "OCIServerAttach" return-code=OCI_ERROR, error-code=12541:
Action.c(13): Error: ORA-12541: TNS: 没有监听器
Action.c(13): server_attach: ERROR, return-code=LRDE2009. ServerHandle=OraSrv1, ServerID="lr"
解决:启动数据库服务器,开启listener。如果需要使用isqlplus的话,开启服务:$isqlplusctl start
问题8:
Action.c(13): Error: lrdo_server_attach: "OCIServerAttach" return-code=OCI_ERROR, error-code=12514:
Action.c(13): Error: ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME
Action.c(13): server_attach: ERROR, return-code=LRDE2009. ServerHandle=OraSrv1, ServerID="lr"
解决:
检查压力机Oracle客户端解析文件tnsnames.ora,确保正确配置了这个文件。
检查测试的数据库服务器,确保正确配置了监听,并已经开启。
性能监视相关。
问题9:压力机资源监视
Monitor name :windows Resources. Cannot connect to machine lr071129.Reason: 找不到网络路径。
解决:
在弹出的Add Machine窗口,name项输入IP地址,正确选择Platform。
问题10:UNIX资源监视问题
Monitor name :UNIX Resources. Cannot initialize the monitoring on 10.152.**.**. Error while creating the RPC client. Ensure that the machine can be connected and that it runs the rstat daemon (use rpcinfo utility for this verification). Detailed error: RPC: Failed to create RPC client.
RPC-TCP: Failed to establish RPC server address.
RPC-TCP: RPC Server <100001, 3, 17> is not registered on host '10.152.11.26'. (entry point: CFactory::Initialize). [MsgId: MMSG-47190]
解决:
[root@oratest ~]# cd /etc/rc.d/init.d
[root@oratest init.d]# ll | grep rstatd*
-rwxr-xr-x 1 root root 1009 May 4 2005 rstatd
[root@oratest init.d]# ./rstatd start
Starting rstat services: [ OK ]
[root@oratest init.d]#