?? stresscase.h
字號:
////////////////////////////////////////////////////////////////////////////
//
// StressCase.h - 所有測試用例類的基類
//
// 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_CASE_H_001_)
#define _WIX_STRESS_CASE_H_001_
// TestSuite 中定義測試包時要用到的宏
#define BEGIN_TEST_SUITE \
struct StressCaseDefination g_arrTestSuite[] = {
#define DECLARE_TEST_CASE( ClassName, Name, Clients, Times, Interval ) \
{ RUNTIME_CLASS(ClassName), Name, Clients, Times, Interval },
#define END_TEST_SUITE \
{ NULL, NULL, 0, 0, 0 } };
//
// 測試用例類的基類,所有實際的測試用例類都是此類的子類
// 此類或其子類的每一個運行時對象對應于一個測試客戶(線程)
// 同一個測試用例可以擁有多個測試客戶(線程),即多個對象
//
class StressCase : public CObject
{
public:
DECLARE_DYNCREATE(StressCase)
// 構造函數
StressCase();
// 析構函數
~StressCase() {};
public:
// 子類可以重載此方法以完成測試前的初始化工作
// 如果失敗,錯誤信息可以通過strErrorMessage返回
// 返回值表示初始化成功與否
virtual bool OnInitialize(CString& strErrorMessage) { return true; };
// 子類可以重載此方法以完成測試后的清理工作
// 如果失敗,錯誤信息可以在strErrorMessage中返回
// 返回值表示清理成功與否
virtual bool OnUninitialize(CString& strErrorMessage) { return true; };
// 子類必須重載此方法,并在此方法中完成每次測試的實際操作
// 如果失敗,錯誤信息可以在strErrorMessage中返回
// 返回值表示測試成功與否
virtual bool OneStep(CString& strErrorMessage) { return true; };
public:
// 客戶(線程)所屬的測試用例名稱
CString m_strName;
// 客戶(線程)的總序號(所有線程的總序號,從1開始)
int m_nID;
// 客戶(線程)的線程號(同一測試用例中的線程序號,從1開始)
int m_nClientID;
// 客戶(線程)的當前執行狀態代碼(見下面的枚舉)
int m_nState;
// 客戶(線程)的當前執行狀態描述(發生錯誤時包含錯誤信息)
CString m_strState;
// 客戶(線程)已執行的次數
int m_nFinishedTimes;
// 客戶(線程)的總執行時間
//(以秒為單位,不包括每兩次測試之間設定的間隔時間Interval)
double m_dTime;
public:
// 客戶(線程)狀態的枚舉
static enum
{
ready, // 就緒
starting, // 啟動過程中
running, // 運行
stopping, // 停止過程中
error // 錯誤終止
};
// 寫應用程序日志(僅在NT平臺有效)
void LogEvent(LPCTSTR strMessage);
// 設置客戶(線程)的當前狀態
// nState: 狀態類型,見上面的枚舉
// strMessage: 描述信息
void SetClientState(int nState, LPCTSTR strMessage = NULL);
};
//
// 測試用例定義類,用于在 TestSuite.cpp 中定義和配置不同的測試用例
//
struct StressCaseDefination
{
// 測試用例的類名,使用時以 RUNTIME_CLASS(ClassName) 方式給出
CRuntimeClass* m_pCaseClass;
// 測試用例的顯示名稱
LPCTSTR m_strName;
// 測試用例需要模擬的客戶(線程)數目,最小值1,最大值100
// 即對每個測試用例類啟動多少個對象實例(線程)
int m_nClients;
// 每客戶(線程)中測試的重復次數,最小值1,最大值10000
// 即每線程中重復調用多少次測試用例類的 OneStep() 方法
int m_nTimes;
// 每客戶(線程)中執行 OneStep() 方法之間間隔的時間(微秒數)
int m_nInterval;
};
#endif
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -