51Testing丛书:性能测试进阶指南—LoadRunner 11实战(23)

发表于:2012-6-18 10:52

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:陈霁    来源:51Testing软件测试网原创

8.10.1  使用.NET Vuser测试SQL Server 2008数据库性能

  我们使用.NET来测试一下使用ADO.NET连接SQL Server 2008读取一张表的响应时间。

  使用VS 2010开打Vugen新建的项目,完成转换格式后,首先在项目上选择属性,修改编译目标版本从2.0升级到3.5(4.0的编译对象无法在Vugen中运行)。接着为该项目添加system、system.data、system.xml的对象引用。编写下面的代码:

using System;
using System.Data.SqlClient;
using System.Data;
namespace Script
{
 public partial class VuserClass
 {
 public int Action()
 {
 string title;
 title="cloud";
            
  lr.start_transaction("ado");
 
 SqlConnection con = new SqlConnection("server='(local)'; database='cloudsample';uid='sa';pwd='51testing'");
 con.Open(); //打开数据连接
 
 string strsql = "select * from webservicetable where chartitle like '" + title + "%'";   //生成SQL语句
            
   lr.start_transaction("search");
 
 SqlDataAdapter da = new SqlDataAdapter(strsql, con);      //创建适配器
            
   lr.end_transaction("search", lr.AUTO);
 
 DataSet ds = new DataSet();  //创建数据集
 
 int i = da.Fill(ds, "mytable"); //填充数据集
 
 con.Close();
            
   lr.end_transaction("ado", lr.AUTO);
 
 return 0;
 }
 }
}

  在数据库的表中有10000条随机记录,当我们运行该脚本时就可以得到准确的SQL执行时间和.NET部分ADO连接时间,Vugen日志如下:

Notify: Transaction "ado" started.
Notify: Transaction "search" started.
Notify: Transaction "search" ended with "Pass" status (Duration: 0.0006).
Notify: Transaction "ado" ended with "Pass" status (Duration: 0.0984).

  可以看到查询数据库的时间只有0.0006秒,而ADO连接是整个查询中开销最大的部分,同时我们还可以在SQL Server Managerment Studio中对该语句做一个单独的查询分析,结果如图8.36所示。

图8.36  查看SQL语句的客户端统计

  通过SQL执行客户端统计信息可以看到执行一次这样的SQL语句需要开销的时间大概在14毫秒左右;和我们通过ADO连接得到的事务时间基本接近。在确认脚本的正确性后我们可以使用Controller进行多用户负载,得到系统在面临多用户ADO连接时数据库端和应用端的响应时间,从而定位性能瓶颈。

  所以使用.NET Vuser用户开发脚本相当于我们自己重写了一个富客户端,从而可以方便地在其中插入各种探针和分离各种干扰因素。

32/3<123>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号