本帖最后由 云层 于 2011-11-23 12:53 编辑
使用lr_db_connect对数据库进行性能测试 云层 2011-11-23
废话这里不多说了,截取《性能测试进阶指南2》脚本开发部分,觉得这个对大家应该比较有用先拿出来了,由于没有出版社排版,不太好看的地方大家将就一下。
在Web service协议中,可以使用LR内置的数据库连接函数lr_db_connect来完成对各种常见数据库的连接,从而进一步通过场景并发进行数据库性能测试。 lr_db_connect函数默认支持四种数据库连接模式: ·
SQL (原生MS SQL Server) ·
OLEDB (使用 OLEDB 连接数据库) ·
ODBC ·
ORACLE 例如我们需要完成一个对Oracle数据库的连接,那么我们可以通过OLEDB的方式来完成,代码如下:
- int NumRows=0;
- int i;
- lr_db_connect("StepName=Connect",
- "ConnectionString=Provider=OraOLEDB.Oracle.1, Data Source=ORCL; Persist Security Info=True; User ID=cloudchen;Password=123456",
- "ConnectionName=db1",
- "ConnectionType=OLEDB",
- LAST );
- lr_start_transaction("SQL");
- NumRows = lr_db_executeSQLStatement("StepName=PerformQuery",
- "ConnectionName=db1",
- "SQLStatement=select * from USERS",
- "DatasetName=MyDataset",
- LAST );
-
- lr_end_transaction("SQL", LR_AUTO);//获得查询记录所开销的时间
- lr_output_message("The query returned %d rows.", NumRows);
- while(i<NumRows) {
- lr_db_getvalue("StepName=GetValue",
- "DatasetName=MyDataset",
- "Column=USER_NAME",
- "Row=next",
- "OutParam=MyOutputParam",
- LAST);
- lr_output_message("The value is: %s", lr_eval_string("{MyOutputParam}") );
- i=i+1;
- }
- lr_db_disconnect("StepName=Disconnect",
- "ConnectionName=db1",
- LAST);
复制代码
老规矩 |