在Loadrunner中也提供了C对数据库操作的相关功能函数,以下这些数据库功能函数只能用于Web Services协议。51Testing软件测试网#Yg^B5r+y%i `
各函数语法如下:
AC+nO[ N0lr_db_connect("StepName", "ConnectionString=<connection_string>", "ConnectionName=<connection_name>", "ConnectionType=<connection_type>", LAST);51Testing软件测试网3Y5ql:N4IBgx
lr_db_disconnect("StepName=<step_name>", "ConnectionName=<connection_name>", LAST);
UfdK,P#d0lr_db_executeSQLStatement("StepName=<step_name>", "ConnectionName=<connection_name>", "SQLStatement=<statement>", ["DatasetName=<dataset_name>",] LAST);51Testing软件测试网*xR1oum7L:e9S8G
lr_db_dataset_action("StepName=<step_name>", "DatasetName=<dataset_name>", "Action=<action>", LAST);51Testing软件测试网8\Y*?xX
lr_db_getValue("StepName=<step_name>", "DatasetName=<dataset_name>", "Column=<column>", "Row=<row>", "OutParam=<output_parm>", LAST);51Testing软件测试网eJ t3`x
下面以oracle数据库为例:
[C)e"u6n|3U0Action()51Testing软件测试网-oLSI"]rI%|
{51Testing软件测试网6j*ov)By5`3~f
intNumRows=0;
-lfx7~0a
Ac0inti=1;
;vX#_8n%c1U7U0
H
g2S-]%u8Y ]~\0//建立数据库连接51Testing软件测试网nv1a"Ii
lr_db_connect("StepName=DatabaseConnection",51Testing软件测试网Fd;GqtbO\i
"ConnectionString=Provider=OraOLEDB.Oracle.1;Password = test ;Persist Security Info=True; User ID = test ; Data Source = betadb ; Server = 172.19.188.191",
0~9J fvX&IF*l0"ConnectionName=InvDatabaseConnection",
Aii ri4@0"ConnectionType=OLEDB",51Testing软件测试网Q"f'Q,b@;C
o
LAST);
p0C*r-T;Ft7N.m!q4~0
2`t)W4Whfq$Rr0//执行SQL语句51Testing软件测试网,k'|s9T ~
NumRows=lr_db_executeSQLStatement("StepName=PerformQuery",51Testing软件测试网Mt)b@n;zR}
"ConnectionName=InvDatabaseConnection",51Testing软件测试网P2K9q.aT
"SQLStatement=SELECT cons_no,cons_id FROM c_cons where rownum<10",51Testing软件测试网;x nYL&P;frt P @E.b
"DatasetName=MyDataset",51Testing软件测试网y(JW6E[r
LAST);51Testing软件测试网1a)m%\'cA6S`
lr_output_message("The query returned %d rows.", NumRows);
!|*e|
`#R051Testing软件测试网"cA zpN{2?
//打印出结果
Ja*fi4]*c0lr_db_dataset_action("StepName=PrintDataset",
,[fS5e/L]|2| `0"DatasetName=MyDataset",51Testing软件测试网5f%LRP'e~
"Action=PRINT",
1D7C*a.Z1oU$f|m0LAST);51Testing软件测试网hQka_`S
NvO.f
z
E
j/g)~051Testing软件测试网f;T!F~ kYl
//利用循环检索数据值
#SI5u-~No2q0while(i<10) {51Testing软件测试网Ay#g$j{,U^K%Z
A
lr_db_getvalue("StepName=GetValue",
M|J Q&~,^!{I0"DatasetName=MyDataset",51Testing软件测试网a Q.}/k5mft'EB
"Column=CONS_NO",51Testing软件测试网'V4f9Or$e
"Row=next",
b,M%l QRi h0"OutParam=MyOutputParam",51Testing软件测试网:WE7I jW#V
LAST);
9O2y%\v J1?6k0lr_output_message("The value is: %s", lr_eval_string("{MyOutputParam}") );
r6ueb8s0SA#t0i=i+1; }
4[F^zRb3D051Testing软件测试网$`3ncA3U
51Testing软件测试网MD;Cxc`
i
//释放结果51Testing软件测试网~~W,V1Pi
lr_db_dataset_action("StepName=RemoveDataset",
3K8U ER$K'V i0"DatasetName=MyDataset",
;{s!sI4e8]0"Action=REMOVE",
g
bU.f
U0LAST);
i6e-\p i0
\`&i&`E1c'yC\%bb L0
auR K2Htab:^m`-T0//断开数据库连接
UxY7?%c$pg(?0lr_db_disconnect("StepName=Disconnect",
T6Z;aQXU9`D2o]0"ConnectionName=InvDatabaseConnection",
!D#UGcV0LAST);51Testing软件测试网$V Dc&_Ng1OC
51Testing软件测试网*Ep,N.`RU.xY
return0;
HWt(~J5?0}
运行后,输出信息如下:51Testing软件测试网~C.o0uc*M8l8b
Virtual User Script. started
*TCq^MAU0Starting action vuser_init.
HK)}/N7p+rU!o0Ending action vuser_init.51Testing软件测试网$l*r'H&K:r2O$B@
Running Vuser...
#b1vCHff6p*D0Starting iteration 1.51Testing软件测试网K @j.YUT#z
Starting action Action.
cB {-ax7O$CugRR0Action.c(6): DB Connection "DatabaseConnection" started ... Wait ....
n"U,`? R6EC0Action.c(6): DB connection was successful51Testing软件测试网 [:kd3W0I1l,@
Action.c(13): SQL Statement execution "PerformQuery" started
:AHxX3m9BI OQ Bz0Action.c(13): SQL Statement execution was successful51Testing软件测试网 ] m#]'b~g?:D
Action.c(13): ================================================
iI$Q V+Cj}W'R0Action.c(18): The query returned 9 rows.
p#|r-w3x@0Action.c(20): Dataset action "PrintDataset" started51Testing软件测试网4Le?/T8c
Action.c(20): 51Testing软件测试网&lvwJ]l|R
Action.c(20): ******** Start printing ***********
j%zP&`:z~a8b1|1_0Action.c(20): Number of records in dataset = 9
H6?e+[s0Action.c(20): Num. CONS_NO CONS_ID 51Testing软件测试网)u0x+mn
^)}
Action.c(20): =========================================================51Testing软件测试网E2u!q0OcX
Action.c(20): 1 3096451321 310306247 51Testing软件测试网+yj7Y;a+D
^PB3J%tK
Action.c(20): 2 3097730300 3376536
oz6Z0f_WMcp0Action.c(20): 3 0000265443 3376537 51Testing软件测试网 Na-BMLxE
Action.c(20): 4 0000265456 3376538 51Testing软件测试网Q-JV+]q)eXqe
Action.c(20): 5 0000265469 3376539 51Testing软件测试网 ft_"Z6{
Action.c(20): 6 0000265472 3376540
U-VGg p])|g0Action.c(20): 7 3098976354 314348099
(?z7D\n-irg0Action.c(20): 8 0000265498 3376542
V"Be _i3]j0Action.c(20): 9 0000265502 3376543 51Testing软件测试网uZaUavs!J*{
Action.c(20): ********End printing ***********
X F3o3^l!A&o"Y0b9}0Action.c(20):
H Se0G6RCi0Action.c(20): Dataset action was successful51Testing软件测试网z,qwtlK6R5Pa7^'u
Action.c(27): Get db value "GetValue" started51Testing软件测试网v^.pOkFo
Action.c(27): Get db value was successful
-W-t V.Q,MkU?SG0Action.c(27): ================================================51Testing软件测试网:R3Kq+@u`9Guy*Z0t
Action.c(33): The value is: 3096451321
o:c4?M&u0Action.c(27): Get db value "GetValue" started
cF(R Tn3M0Action.c(27): Get db value was successful51Testing软件测试网-a?
z9K'H[J {#^
Action.c(27): ================================================
PY
m0wh%I d)d0Action.c(33): The value is: 3097730300
{I^"yDuG0Action.c(27): Get db value "GetValue" started
1rg_+M
a [5i$ykV4l0Action.c(27): Get db value was successful51Testing软件测试网6Oe)u_+g6HJ#exe
Action.c(27): ================================================
x4nKM9f&mW5MJ0Action.c(33): The value is: 0000265443
}g7?:JyIW0Action.c(27): Get db value "GetValue" started
pEm*_8hl0Action.c(27): Get db value was successful
9Ie8Q3l)T0Action.c(27): ================================================51Testing软件测试网'{&a USK"f
Action.c(33): The value is: 000026545651Testing软件测试网;d;C5m:h1os"S
Action.c(27): Get db value "GetValue" started
\
s+S+b_7dE6e0Action.c(27): Get db value was successful
$m{
S*hM0Action.c(27): ================================================
+k}(L Dl5yO&X6P.^-YD+T0Action.c(33): The value is: 0000265469
k%D4\,V{!X8MI&Ff0Action.c(27): Get db value "GetValue" started51Testing软件测试网6|5f._ z,U.C} [
Action.c(27): Get db value was successful51Testing软件测试网N2LB4qB[
Action.c(27): ================================================51Testing软件测试网TU/~#d/Zl R2O_
Action.c(33): The value is: 0000265472
8D8TB1`
X!Y7W0Action.c(27): Get db value "GetValue" started
uC
Dbj3s[g0Action.c(27): Get db value was successful51Testing软件测试网"R;@#S+n`].m0V/mOa\
Action.c(27): ================================================
6mJ
b3[_0Action.c(33): The value is: 3098976354
:u8@zU:[(FMI\R0Action.c(27): Get db value "GetValue" started
W,pQ?HJ%wl*r0Action.c(27): Get db value was successful51Testing软件测试网'io1bX!u%W
Am
Action.c(27): ================================================51Testing软件测试网\]]g_Z/UyU+?
Action.c(33): The value is: 0000265498
x{ irB8j'l0Action.c(27): Get db value "GetValue" started
nx.c5`7c0Action.c(27): Get db value was successful
$L
e4\`;iSO0Action.c(27): ================================================51Testing软件测试网8~uP3} ~;K
Action.c(33): The value is: 000026550251Testing软件测试网%~)}1T$\,j']5q9c4Fu
Action.c(36): Dataset action "RemoveDataset" started
)|2Uc_#W;Me5O0Action.c(36): Dataset action was successful51Testing软件测试网%A)oUI3f
b*r9[8wfX
Action.c(41): DB disconnect "Disconnect" started51Testing软件测试网Db1t:dXC `(~#k*s
Action.c(41): DB disconnect was successful51Testing软件测试网pYi4P
c$V-K#V
Action.c(41): ================================================51Testing软件测试网:e&@Y}m_
Ending action Action.
:F
y'y'][1DW~OX0Ending iteration 1.
.nUju;h%Y0Ending Vuser...51Testing软件测试网 rFLE
~D&[
Starting action vuser_end.
|$M3^+lhN0O0Ending action vuser_end.51Testing软件测试网BdD/h"EQ;K
Vuser Terminated.51Testing软件测试网^.GQ_-P5F-XE`Q/T