|
Loadrunner与SQL Server的操作可以通过录制的方式来实现,但本文还是通过直接调用loadrunner本身的function来实现sql语句的操作,主要用到的是lr_db_connect和lr_db_executeSQLStatement两个函数,具体的用法这里不做解释,请自行查看loadrunner的帮助说明。
1、脚本协议:选择web service
在函数lr_db_connect的帮助说明中有句“Important: This function is available only from within Web Services scripts.”。这句话决定了,我们在协议选择的时候只能选择Web Services协议。
2、脚本
[objc] view plain copy
- Action()
- {
- int NumRows=0;
- double times=0;
- int i=1;
- //建立连接,ConnectionType=SQL
- lr_db_connect("StepName=DatabaseConnection",
- "ConnectionString=Data Source=172.16.1.215;Initial Catalog=LayIM;Persist Security Info=True;User ID=sa;Password=sa",
- "ConnectionName=MyCon",
- "ConnectionType=SQL",
- LAST );
- /*建立连接,ConnectionType=OLEDB
- lr_db_connect("StepName=Connect",
- "ConnectionString=Provider=SQLOLEDB;Data Source=.;Initial Catalog=my_test;User Id=sa;Password=123456",
- "ConnectionName=MyCon",
- "ConnectionType=OLEDB", //ConnectionType=SQL时,ConnectionString不可以带有Provider;ConnectionType=OLEDB时,必须带Provider
- LAST);
- */
- //执行SQL
- lr_start_transaction("SQL查询");
- NumRows = lr_db_executeSQLStatement("StepName=PerformQuery",
- "ConnectionName=MyCon",
- // 数据库语句
- "SQLStatement=SELECT * FROM layim_user ORDER BY id DESC ",
- "DatasetName=MyDataSet",
- LAST );
- times=lr_get_transaction_duration("SQL查询");
- lr_end_transaction("SQL查询", LR_AUTO);
- lr_output_message("The query returned %d rows.", NumRows);
- lr_output_message("SQL查询语句执行时间 %f ", times);
- //打印查询结果
- /*lr_db_dataset_action("StepName=PrintDataset",
- "DatasetName=MyDataSet",
- "Action=PRINT",
- LAST );*/
- //获取当前第一条记录
- lr_db_getvalue("StepName=GetValue",
- "DatasetName=MyDataSet",
- "Column=nickname",
- "Row=current",
- "OutParam=MyOutputParam",
- LAST );
- // 输出当前查询记录
- lr_output_message("The value is: %s", lr_eval_string("{MyOutputParam}") );
- while (i
|
|