OscarXie.net

关注质量与体验——电子商务与自动化测试

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

八、监视与分析

—监视器和分析器

—关系图

—表

—错误与阈值

—SQL跟踪

—分析错误

—创建插件

监视器和分析器

—监视器用来实时查看负载测试结果

—分析器用于检查已经保存的所有负载测试结果

 

—分析前提,设置了负载测试结果存储区

 

嵌入的状态栏显示测试状态以及错误或阈值冲突的总数。

使用“计数器”窗格中的树结构来快速查看各种性能计数器或各个计算机。

—计数器

显示已添加到负载测试中的性能计数器

—关系图

显示关系图上来自运行期间收集到的数据的绘制点

—点

“关系图”窗格的一部分。显示当前关系图中使用的数据。

—摘要

显示从运行中得来的摘要数据。

—表

显示一组包含运行数据的表,例如“错误”表和“阈值”表。在分析器中可以查看 SQL 跟踪数据。

关系图

 

图形化计数器的图例显示一些有用的数据列

默认关系图(显示用户负载、吞吐量和响应时间)


 

—表选项:

错误

显示在运行期间创建的错误列表。

显示在运行中使用的页列表。

请求

显示在运行期间发送的所有 HTTP 请求。其中包括从属请求,如图像。

测试

显示负载测试中使用的测试列表。

阈值

显示运行期间超过的阈值的列表。

事务

显示运行中的事务列表。

SQL 跟踪

只有在使用 SQL 跟踪时,才可在运行后的分析器中看到该选项。

代理

只有在包含多个代理的 rig 上运行测试时,才可看到该选项。

错误与阈值

—错误和阈值计数在嵌入的状态栏上显示为链接。

—单击其中一个链接便会激活相应的表:“错误”表或“阈值”表。

计数器树显示了阈值冲突。如果当前的采样间隔内发生了阈值冲突,则除了节点名称外,您还会看到一个红色的符号或一个黄色的符号。在运行持续期间,这些符号将保留,但当不再超出阈值时,这些符号就会灰显。

阈值网格显示了前 1,000 个阈值冲突,包括发生冲突的时间。

可以找到一个超出阈值的计数器,并通过把符号拖动到关系图上的方式来绘制该计数器。

警告:

错误:

阈值

—在负载测试中显示阈值冲突时,可以在两种阈值规则中进行选择:

Ø比较常数

将性能计数器的值与一个常数值进行比较。

Ø比较计数器

将一个性能计数器的值与另一个性能计数器的值进行比较。

可以设置一个“警告阈值”级别,当达到该警告级别时,负载测试监视器和分析器中便会出现一个指示此警告的黄色符号。

可以设置一个“关键阈值”级别,当达到该警告级别时,负载测试监视器和分析器中便会出现一个指示此警告的红色符号。

比较计数器属性设置:临界阈值和警告阈值

新建比较常数

新建比较计数器

SQL跟踪

—通过收集跟踪数据,可以识别出在所测试的 SQL 数据库中运行速度最慢的查询和存储过程。

—单击“表”按钮。从“表”列表框中选择“SQL 跟踪”。

—通常,“持续时间”列是第一个要检查的列。此列中收集的数据的单位为毫秒。

—SQL 跟踪面板将列出运行速度最慢的 SQL 操作,并根据持续时间按照最慢的操作放在最上面的方式来排序。

 

—此面板上可以显示的 SQL 跟踪输出中的数据列:

Ø事件类

Ø持续时间

ØCPU

Ø读取

Ø写入

Ø文本数据

Ø开始时间

Ø结束时间

Ø主机名

Ø应用程序名

Ø登录名

ØNT 用户名

 

如果需要跟踪 SQL 事件而不是跟踪在这些列中标识出的数据,则必须使用与 Visual Studio Team Edition for Testers 分开提供的 SQL Profiler 工具设置自己的自定义 SQL 跟踪。

分析错误

—提供了两种查看错误的方式:关系图和表

—Demo

—Example:Could not find dependent counter needed to apply threshold rule

—Example:The load test results database could not be opened.

解决参考:

http://msdn2.microsoft.com/en-us/vstudio/aa718685.aspx

创建插件

—负载测试提供了API,Microsoft.VisualStudio.TestTools.LoadTesting

—可以使用API创建负载测试插件

—Demo

using System;

using Microsoft.VisualStudio.TestTools.LoadTesting;

using System.Net.Mail;

using System.Windows.Forms;

namespace DataDrivenUnitTest

{

public class MyLoadTestPlugin : ILoadTestPlugin

{

LoadTest myLoadTest;

public void Initialize(LoadTest loadTest)

{

myLoadTest = loadTest;

myLoadTest.LoadTestFinished += new

EventHandler(myLoadTest_LoadTestFinished);

}

void myLoadTest_LoadTestFinished(object sender, EventArgs e)

{

try

{

// place custom code here

MailAddress MyAddress = new

MailAddress("someone@example.com");

MailMessage MyMail = new MailMessage(MyAddress, MyAddress);

MyMail.Subject = "Load Test Finished -- Admin Email";

MyMail.Body = ((LoadTest)sender).Name + " has finished.";

SmtpClient MySmtpClient = new

SmtpClient("localhost");

MySmtpClient.Send(MyMail);

}

catch (SmtpException ex)

{

MessageBox.Show(ex.InnerException.Message +

".\r\nMake sure you have a valid SMTP.");

}

}

}

}

—有八种事件与负载测试相关联,且可在负载测试插件中进行处理,以使用负载测试运行自定义代码。以下是事件的列表,这些事件提供对负载测试运行的不同时间段的访问:

ØLoadTestStarting

ØLoadTestFinished

ØLoadTestWarmupComplete

ØTestStarting

ØTestFinished

ØThresholdExceeded

ØHeartBeat

ØLoadTestAborted

Demo下载

OscarXie.net

关注质量与体验——电子商务与自动化测试
http://www.cnblogs.com/oscarxie/

posted on 2007-06-20 11:47  oscarxie  阅读(1415)  评论(2编辑  收藏  举报