【LoadRunner】利用lr_db_connect函数对Oracle数据库压测的完整流程
项目中常常会有直接对数据库进行压测的需求,以前都是通过Jmeter实现的,但是Jmeter本身图表及结果收集方面没有Loadrunner那么强大,所以利用loadrunner工具自己的函数整理了一个脚本。思路大致如下:
1、环境准备
Oracle 11g
LR11
适用于WebService协议
2、Oracle数据库环境说明
Oracle安装步骤这里不进行说明,详细步骤请参考:https://jingyan.baidu.com/article/363872eccfb9266e4aa16f5d.html
重点注意:Oracle安装完毕后,在本地计算机命令行解释器键入“regsvr32 D:\oracle\11.0\db\BIN\OraOLEDB11.dll”,其中路径为Oracle安装路径BIN目录下的OraOLEDB11.dll,否则会报“未在计算机注册‘OraOLEDB.Oracle.1’”错误。
3、lr_db_connect函数连接目标数据库
脚本如下:
//创建Oracle数据库连接
lr_db_connect("StepName=Connect",
"ConnectionString=Provider=OraOLEDB.Oracle.1, "
"Data Source=SID;Server=服务器IP;Port=端口号;"
"Persist Security Info=True; "
"User ID=username;Password=pw",
"ConnectionName=db1",
"ConnectionType=OLEDB",
LAST);
注意:一定要先进行上一步的环境注册
执行脚本,报“Error: DB Connection failed {"ORA-01017: invalid username/password; logon denied"}”错误,但是在本地登录时用户名、密码都是对的,最后修改用户名(可以改成一样的)或新建用户登录成功。
原因可参考:http://www.51testing.com/html/36/614336-858335.html
4、SQL执行及查询结果判断
成功连接数据库后,执行SQL语句,具体脚本如下:
int i=;
#数据条数
int NumRows=; //执行SQL
i = lr_db_executeSQLStatement("StepName=Query",
"ConnectionName=db1",
"SQLStatement=select * from TEST.table1",
"DatasetName=MyDataset",
LAST ); //查看数据条数
lr_output_message("数据条数:%d",i); //打印执行结果
lr_db_dataset_action("StepName=RemoveDataset",
"DatasetName=MyDataset",
"Action=PRINT",
LAST ); //利用循环获取具体字段的取值-----根据DatasetName
while (i<) {
lr_db_getvalue("StepName=GetValue",
"DatasetName=MyDataset",
"Column=id",
"Row=next",
"OutParam=ID",
LAST );
lr_output_message("The value is: %s", lr_eval_string("{ID}") );
i=i+;
} //释放结果
lr_db_dataset_action("StepName=RemoveDataset",
"DatasetName=MyDataset",
"Action=REMOVE",
LAST);
5、场景设计及执行
脚本调试好(事务、判断等自行添加即可)就可以根据实际需求进行场景设计了,执行场景等测试流程。。。
【LoadRunner】利用lr_db_connect函数对Oracle数据库压测的完整流程的更多相关文章
- LoadRunner调用java函数测试oracle
LoadRunner调用java函数测试oracle 测试oracle的方法有很多,可以使用loadrunner的oracle协议直接调用oracle进行测试,也可以调用开发的java程序对oracl ...
- 利用Navicat Premium连接Oracle数据库
利用Navicat Premium连接Oracle数据库 Navicat premium是一款数据库管理工具,支持多种数据库,也非常轻量: 安装包准备:Navicat Premium_11.1.8简体 ...
- 利用powerDesigner15.1连接oracle数据库并自动生成表结构
利用powerDesigner15.1连接oracle数据库并自动生成表结构 参考:http://blog.csdn.net/qq_24531461/article/details/76713802 ...
- 利用PL/SQL从Oracle数据库导出和导入数据
转自:https://www.jb51.net/article/109768.htm 本文实例为大家分享了使用PL/SQL从Oracle数据库导出和导入数据的方法,供大家参考,具体内容如下 1.导出数 ...
- eclipse利用sql语句对Oracle数据库进行操作
对Oracle数据库执行操作的sql语句中表名和列名都需用英文双引号("")括起来. 注(\为转义符) 1.插入数据 sql = "insert into \" ...
- 压力测试(四)-Mysql数据库压测实操
1.Jmeter压测实战之JDBC request压测Mysql讲解 简介:讲解jdbc压测mysql相关准备工作,jar包添加,配置讲解 1.Thread Group -> add -> ...
- Loadrunner根据PV量来确定需要进行压测的并发量
在实际做压力测试的过程中,我们有时不知道用怎样的并发量比较好,下面是几个用PV量去确定并发量的公式,这个在我们公司是比较适用的,大家可以根据自己的业务进行运算. 方法一:这个方法是我在网上查到的80- ...
- 利用python对websocket进行并发压测
简述 产品经理鉴于运营反馈并对程序的websocket长连接保持怀疑的态度,让我对websocket服务器进行压力测试,我内心是拒绝的. 开发思路 查阅websocket的相关资料,查到python的 ...
- Zabbix利用orabbix插件监控Oracle数据库
一.jdk的安装(Orabbix Server) 1.软件解压,放到固定位置 1 2 tar zxf jdk-8u51-linux-x64.tar.gz mv jdk1.8.0_51/ /usr/lo ...
随机推荐
- 网页游戏中PK系统的实现
在游戏开发过程中,写过一个简单的PK系统面板,涉及到前端和后端的交互,我将自己制作的流程分享给大家,大概流程是这样:前端发送PK邀请给后端,后端受到请求后将信息返回给前端处理,先来看下整个流程图及思路 ...
- SQL重复记录查询-count与group by having结合查询重复记录
查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断select * from peoplewhere peopleId in (select peopleId from p ...
- WebAPI项目添加定时服务
开发平台: VS2019 背景: 在开发小程序的API服务的时候,由于access_token的有效期为7200秒,也就是2小时,这就需要后端定时的去更新这个access_token,便于调用小程序的 ...
- JavaWeb中五种转发方式(转)
今天本来是想找一下在jsp中实现转发的方式的,无意中看到了一篇文章,然后稍微综合了把服务器端的转发也包括在内. 1. RequestDispatcher.forward() 是在服务器端起作用,当 ...
- 解决IE下面诡异地使用quickrIE5模式打开页面的有关问题
解决IE下面诡异地使用quickrIE5模式打开页面的有关问题 <!doctype html public "-//w3c//dtd html 4.01 transitional//e ...
- linux 命令——36 diff(转)
diff命令是 linux上非常重要的工具,用于比较文件的内容,特别是比较两个版本不同的文件以找到改动的地方.diff在命令行中打印每一个行的改动.最新版本的diff还支持二进制文件.diff程序的输 ...
- TFS看板晨会
迭代任务看板 打开任务看板 打开燃尽图查看剩余工作情况,如果离发布较近,但是还有很多剩余工作,可能需要提前准备移除一部分优先级低的需求,如果剩余工作较少,适当安排一些需求 任务板按照人员分组,查看每个 ...
- TFS看板的迭代规划
故事点 故事点更多体现的是用户情景或者bug的规模,采用斐波拉契数列(1,2,3,5,8,13)这样的数字表示,包含如下内容: 相对工作量 复杂度 风险和不确定性 相对工作量 下面演示一个Case来说 ...
- Jmeter命令行参数
一.在linux中,使用非gui的方式执行jmeter.若需更改参数,必须先编辑jmx文件,找到对应的变量进行修改,比较麻烦.因此,可以参数化一些常用的变量,直接在Jmeter命令行进行设置 二.参数 ...
- 标准对象 -------JavaScript
本文摘要:http://www.liaoxuefeng.com/ 在JavaScript的世界里,一切都是对象. 但是某些对象还是和其他对象不太一样.为了区分对象的类型,我们用typeof操作符获取对 ...