测试之路是艰辛并漫长的,坚持到底。

VSTS For Testers读书笔记(22)

上一篇 / 下一篇  2007-08-06 12:04:34 / 个人分类:VSTS

八、监视与分析

—监视器和分析器

—关系图

—表

—错误与阈值

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下载


TAG: VSTS

 

评分:0

我来说两句

Open Toolbar