使用WEB SERVICES协议测试数据库响应性能
上一篇 /
下一篇 2014-03-12 10:03:44
/ 个人分类:LOADRUNNER
之前有个项目需要对
数据库响应时间做
性能测试,非ORACLE,MSSQL,MYSQL,是一款国产数据库,开发接口使用ODBC。刚开始的时候,通过WEB SERVICES进行脚本编写后,可正常执行,脚本如下:
lr_start_transaction("TEST");
lr_db_executeSQLStatement("StepName=SQL6",
"ConnectionName=db1",
"SQLStatement=...;",
"DatasetName=Mydataset",
LAST);
lr_end_transaction("TEST", LR_AUTO);
本来需求是统计整个事务的时间,包括发起请求---数据库执行---响应,但是在并发场景中发现它把数据库执行时间算成了浪费时间,给直接忽略了。而在场景选项中,又没有发现能够统计浪费时间选项配置(如有大神知道,请指导,谢谢)。
这个时候就卡住了,难道就没有办法解决这个了么。找啊找啊,确实发现了可以统计持续时间和浪费时间的函数,但是统计来的东西需要输入到文本,这个时候问题来了,如果有上千个结果,需要人为的去统计分析,那不是很麻烦吗?强大的LR应该有处理方案才对啊。再次F1,看它相关的函数,最后终于找到了一个函数lr_set_transaction,以此结合lr_get_transaction_wasted_time,最终解决了一直困扰的问题。最终的脚本改写为:
double trans_time;
lr_start_transaction("Q12");
lr_db_executeSQLStatement("StepName=SQL12",
"ConnectionName=db1",
"SQLStatement=...;",
"DatasetName=Mydataset",
LAST);
trans_time=lr_get_transaction_wasted_time("Q12");
lr_set_transaction("SQL12_CAST",trans_time,LR_AUTO);
lr_end_transaction("Q12", LR_AUTO);
这样,人为的把数据库执行的时间为指定给一个事务,加入LR的统计项,得到想要的数据。
当然,这仅仅是我的一个处理方案,可能还有配置项或者更优的处理方案,如有大神指导,不胜感激。
收藏
举报
TAG: