收藏本站 收藏本站
积木网首页 - 软件测试 - 常用手册 - 站长工具 - 技术社区
软件测试 > LoadRunner > 正文

首页 | 领域细分: 游戏测试 安全测试 手机测试 Web测试 | 技术研究: 单元测试 入门教程 用例设计 性能测试 功能测试 | 测试职场: 面试精选 职场发展 面试试题

测试管理: 配置及流程 - 需求管理 - 质量验收 - 缺陷管理 - 其它管理相关 | 开发语言: PHP技巧 - PHP基础 - PHP实例 - PHP错误代码

测试工具: LoadRunner JiRa QuickTestPro RoBot WinRunner TestDirector 其它测试工具 | 数据库: Mysql数据库 Oracle数据库 CSS/DIV基础 HTML基础

C++性能测试用例

来源:互联网 日期:2012-10-11 07:30

最近看了<<重构:改善现有代码...>>里面的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<<"nn";
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");
发生什么事可不关我事:(

本周排行

别人正在浏览

强悍的草根IT技术社区,这里应该有您想要的!
Copyright © 2010 Gimoo.Net. All Rights Rreserved  京ICP备05050695号