• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

蛙蛙推荐:创建自己的性能计数器及压力测试入门

发布: 2008-9-25 10:13 | 作者: 不详 | 来源: 测试时代 采编 | 查看: 237次 | 进入软件测试论坛讨论

领测软件测试网


从以上可以看到,接口实现里要做点儿啥,MathServicePerfCounter怎么用,你要想创建自己的计数器,比猫画虎就OK了,咱们开始创建一个Web服务,添加俩web方法
复制  保存
[WebMethod]
public int Addition(int a, int b)
{
    MathServicePerfCounter.Instance.RateOfAddition.Increment();
    Random r = new Random();
    Thread.Sleep(r.Next(500, 2000));
    return a + b;
}

[WebMethod]
public int Multiplication(int a, int b)
{
    MathServicePerfCounter.Instance.RateOfMultiplication.Increment();
    Random r = new Random();
    Thread.Sleep(r.Next(500, 2000));
    return a * b;
}

为了模拟真实环境,每个方法随机休眠几秒,然后右键点那个服务,在浏览器测试一下那个服务,看看能浏览不?然后在开始运行里输入perfmon,添加计数器里看看有没有咱们的MathServicePerfCounter计数器,反正我这里有。
单击显示全图,Ctrl+滚轮缩放图片

对了,global.asax里加上如下代码,为了监控每秒请求和总请求量及并发请求量
复制  保存
void Application_BeginRequest(object sender, EventArgs e)
{
    MathServicePerfCounter.Instance.CountOfCurrentRequest.Increment();
    MathServicePerfCounter.Instance.RateOfRequest.Increment();
    MathServicePerfCounter.Instance.TotalOfRequest.Increment();
}

void Application_EndRequest(object sender, EventArgs e)
{
    MathServicePerfCounter.Instance.CountOfCurrentRequest.Decrement();
}

服务有了,咱得有单元测试呀,在这个Web服务上点右键,创建一个单元测试,vs会自动给你创建一个测试项目,项目的名字你可以自己指定,然后会自动给你添加一个Web引用,然后自动生成一个叫MathService.asmxTest.cs的测试类,里面给你生成两个测试方法,修改一下初始值及期望值,去除Assert.Inconclusive语句,最后如下。
单击显示全图,Ctrl+滚轮缩放图片
复制  保存
/// <summary>
///Addition (int, int) 的测试
///</summary>
[TestMethod()]
public void AdditionTest()
{
    MathService target = new MathService(); // TODO: 使用 [AspNetDevelopmentServer] 和 TryUrlRedirection() 自动启动并绑定 Web 服务。
    int a = 5; // TODO: 初始化为适当的值
    int b = 6; // TODO: 初始化为适当的值
    int expected = 11;
    int actual;

    actual = target.Addition(a, b);
    Assert.AreEqual(expected, actual, 
        "MathServiceTest.localhost.MathService.Addition 未返回所需的值。");
}

/// <summary>
///Multiplication (int, int) 的测试
///</summary>
[TestMethod()]
public void MultiplicationTest()
{
    MathService target = new MathService(); // TODO: 使用 [AspNetDevelopmentServer] 和 TryUrlRedirection() 自动启动并绑定 Web 服务。
    int a = 5; // TODO: 初始化为适当的值
    int b = 6; // TODO: 初始化为适当的值
    int expected = 30;
    int actual;

    actual = target.Multiplication(a, b);
    Assert.AreEqual(expected, actual, 
        "MathServiceTest.localhost.MathService.Multiplication 未返回所需的值。");
}

文章来源于领测软件测试网 https://www.ltesting.net/

42/4<1234>

关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网