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

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

C++性能测试用例

发布: 2008-5-28 12:39 | 作者: 网络转载 | 来源: 网络转载 | 查看: 235次 | 进入软件测试论坛讨论

领测软件测试网

最近看了<<重构:改善现有代码...>>里面的JAVA人写了一个测试用例,吹嘘用到了JAVA反射等"高级功能",我也写一些测试代码看看.
首先是代表性能数据的类:

class CapabilityCount 
{
public:
 static void Out();
 char* m_clue;
 CapabilityCount *m_pre;
 DWORD m_frequency;
 DWORD m_times;
static CapabilityCount*head;
 CapabilityCount(char* clue);
 
};
CapabilityCount*CapabilityCount::head=0;

CapabilityCount::CapabilityCount(char*clue)
{
 m_pre=head;
 head=this;
    m_clue=clue;//连成一片,接受一个字符串作输出标识.
}

void CapabilityCount::Out()//输出到文本文件
{
 std::fstream  out;
 CTime time;
 out.open ("d:\\testcount.txt",std::ios_base::ate|std::ios_base::out);
 ASSERT(out.is_open ());
 time=CTime::GetCurrentTime();
 out<<"is begin write in"<<time.GetDay() <<" : "
  <<time.GetHour ()<<" : "
  <<time.GetMinute ()<<"\n";
 CapabilityCount *psearch=head;

 while(psearch)
 {
 out<<"type:"<<psearch->m_clue<<"all time(milliseconds):"<<psearch->m_times
  <<"      be call frequency :"<<psearch->m_frequency
  <<"      average time(milliseconds):"
  <<psearch->m_times /psearch->m_frequency<<"\n\n";
 psearch=psearch->m_pre ;
 }

}

然后是一个"改动者",负责更新CapabilityCount类

class CapabilityCountHelper 
{
 DWORD m_begintime;
 CapabilityCount &m_supervised;
public:
 CapabilityCountHelper(CapabilityCount& in);
 ~CapabilityCountHelper();

};

CapabilityCountHelper::CapabilityCountHelper(CapabilityCount& in):
m_supervised(in)
{
 m_begintime=GetTickCount();
 ++m_supervised.m_frequency;//被调用的次数
}

CapabilityCountHelper::~CapabilityCountHelper()
{
 DWORD spend=GetTickCount()-m_begintime;
 m_supervised.m_times +=spend;//花掉的总时间
}


知道怎么用吧?
在要测试的函数前加上
 static CapabilityCount   //一定要有static哦
     CapabilityCountInstance("function name or else"); 
     CapabilityCountHelper CapabilityCountHelperInstance(CapabilityCountInstance);


嫌麻烦?
#define KILL_BILL__KILL_BILL__KILL_BILL(clue)   static CapabilityCount   \
     CapabilityCountInstance(clue);   \
      CapabilityCountHelper CapabilityCountHelperInstance(CapabilityCountInstance) \

最近想看<<杀死比尔>>,虽然杀的不是我想的:(

你可以用更精确的时间函数来测试.不过这不关我事;

你也可以在内联函数中或甚至上面的CapabilityCount::Out函数中加入
KILL_BILL__KILL_BILL__KILL_BILL("CapabilityCount::Out");
发生什么事可不关我事:(

延伸阅读

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

TAG: 性能测试


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

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