⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stressman.h

📁 一个哥们写的压力测试软件
💻 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 + -