TA的每日心情 | 奋斗 2019-3-7 09:49 |
---|
签到天数: 133 天 连续签到: 1 天 [LV.7]测试师长
|
工作需要,尝试用loadrunner测试oracle的sql查询性能,记录下来,以后遇到使用。
录制脚本使用Oracle(2-Tier)协议,用NCA和11i的都做了实验,发现后边两个录制下来的事务比较少,怀疑可能是协议在不同层,后来一直用Oracle(2-Tier)协议,感觉可以录制下来的细节会比较多。
录制采用win32形式,选择的执行文件是oracle客户端安装之后的sqlplus。开始想偷懒采用PLSQL,但是无论采用哪种协议录制完之后loadrunner的客户端都会崩溃。安装oracle的时候为了保险把所有的组件全部安装了,之后使用的时候感觉没有必要,只安装sqlplus应该也可以,不过这个没有尝试,如果有人看了这个博客如此操作不行可不要怪我哦。
安装oracle客户端完的时候有几个注意的地方,第一个是要在环境变量中配置环境变量ORACLE_HOME为oracle客户端安装的路径(路径中不允许有空格,当然安装时若有是不让安装完成的),第二个是把PLSQL的tnsnames.ora文件复制到oracle客户端安装路径的\NETWORK\ADMIN\文件夹下,如果没有就新建一个,在里边写上要链接的数据库信息,如下:
test = \\数据库名
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521)) \\IP和端口号
)
(CONNECT_DATA =
(SID = test1) \\实例名
)
)
这几步做完之后到sqlplus上去试一下是否能够连接并且执行脚本,如果能够执行则关掉之后把loadrunner的脚本录制打开选择(2-Tier)协议和客户端之后开始录制。loadrunner脚本录制器会自动启动sqlplus,填入用户名、密码、数据库名之后登陆进去,执行需要测试的sql语句,此处注意这个脚本录制仍然需要遵守每步写一个注释的规则,不然后边就区分不开了。如果需要录制的是存储过程,可以放在一个sql文件中然后在sqlplus执行就可以了。sql语句全部执行完之后千万不要忘了用exit命令退出sqlplus,不然场景会失败。
录制完成之后可以和http协议脚本一样进行调试,但是我只是把登录和退出两步分别放在init和end中了,没有做别的操作。在网上看好像如果想做参数还有些需要注意的地方。这个等以后探索了再研究吧。
如果想换sql语句就直接在脚本中把对应的字符串改了就行了,回放的时候会在日志中写出来sql执行的结果。
用场景加载脚本的时候要注意这个时候使用的license和web的时候是不一样的,要用global的才行。
我在执行场景的时候报了一个“Error: lrdo_server_attach:"OCIServerAttach" return-code=OCI_ERROR, error-code=24309:”的错,注意,这里的error-code是数据库反馈回来的错误,要查找到oracle的错误代码含义。我的错误就是第一次录脚本的时候没有从sqlplus中退出,oracle说我已经和它连接,重要求连接的时候就会报错。这就是为什么不要忘了exit命令退出sqlplus。当然把他们分别放在init和end中也可以避免这个问题发生。 |
|