📄 stressman.h
字号:
////////////////////////////////////////////////////////////////////////////
//
// StressMan.h - StressMark 管理所有测试用例(线程)的类
//
// created by Wang Yong Gang, 2001-08-07 ( version 1.0 )
// modified by Wang Yong Gang, 2002-02-16 ( version 1.1 )
//
////////////////////////////////////////////////////////////////////////////
#if !defined(_WIX_STRESS_MAN_H_001)
#define _WIX_STRESS_MAN_H_001
class StressMan
{
public:
StressMan(CListCtrl& list);
~StressMan();
public:
// 初始化用例列表
bool InitializeCaseList();
protected:
// 所有的线程指针(CWinThread*)
CPtrArray m_arrThreads;
// 监视线程指针(CWinThread*)
CWinThread* m_pMonitorThread;
// 配置数组 g_arrTestSuite 的大小
int m_nTestSuiteArraySize;
// 所有的测试用例对象指针(StressCase*)
CObArray m_arrCaseObjects;
// 传递给用例线程的初始化信息结构
struct ThreadInfo
{
StressMan* pStressMan;
int nIndex; // 线程序号(在m_arrCaseObjects中的)
int nTimes; // 该线程内重复测试(调用OnStep())的次数
int nInterval; // 每两次重复中间间隔的时间(毫秒数)
};
// 所有用例线程的初始化信息
ThreadInfo* m_arrThreadInfo;
// 监视线程的初始化信息
ThreadInfo m_MonitorThreadInfo;
// 用例列表控件
CListCtrl& m_list;
// 同步所有用例线程的事件
CEvent m_event;
// 表示有多少个线程存活的记数器
LONG m_lives;
public:
// 启动
bool StartSuite();
// 停止
bool StopSuite();
// 无法终止时杀线程
bool KillSuite();
// 报表
bool ReportSuite(LPCTSTR strPath);
protected:
// 设置线程状态并更新列表框显示
// nIndex: 序号,-1表示设置所有线程状态
// nState: 状态类型,见StressCase的枚举
// strMessage: 描述信息
void SetThreadState(int nIndex, int nState, LPCTSTR strMessage = NULL);
// 设置线程已执行次数并更新列表框显示
// nIndex: 序号,-1表示设置所有线程
// nTimes: 执行次数
void StressMan::SetThreadFinishedTimes(int nIndex, int nTimes);
// 设置线程执行总时间并更新列表框显示
// nIndex: 序号,-1表示设置所有线程状态
// dTime: 执行总时间
void StressMan::SetThreadTime(int nIndex, double dTime);
// 线程的执行体
static UINT ThreadBody( LPVOID pParam );
// 监视线程的执行体
static UINT MonitorThreadBody( LPVOID pParam );
// 根据测试逻辑,判断是否能设置为新的状态
inline bool CanSetState(int oldState, int newState);
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -