• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    StressMark壓力測試工具

    發布: 2007-5-30 17:20 | 作者: 網絡轉載 | 來源: 網絡 | 查看: 344次 | 進入軟件測試論壇討論

    領測軟件測試網

    簡介

    StressMark測試軟件是一個使用Visual C++編寫的,開放源代碼的測試工具,可以完成服務程序及重要算法的功能和性能測試,其最主要的功能是模擬多線程或多客戶端的自動化壓力測試。

    我們可以利用StressMark軟件完成的典型測試任務包括:

    1. 在多線程環境下測試一個軟件模塊、一段關鍵算法是否可以正確運行,即代碼是否是多線程安全的。

    2. 測試一個軟件模塊、一段關鍵算法在并發執行時的效率,如每個線程的平均執行時間等。

    3. 模擬一個服務程序的多個客戶端,測試該服務程序對并發請求的響應是否正確。

    4. 模擬一個服務程序的多個客戶端,測試該服務程序在并發請求的情況下,對每個客戶請求的響應效率。

    5. 使用一臺或多臺高配置的測試計算機(多CPU,大內存),每臺計算機上運行一套StressMark,每套StressMark模擬多個客戶線程,以此測試服務程序在大壓力情況下的響應能力,這一方法甚至可以測出服務程序支持的并發數上限。

    因為StressMark軟件的源代碼是完全開放的,基于這套源代碼,你完全可以改造出符合你的特定需求自動測試程序,使StressMark可以完成更多的測試任務。

    基本概念
    測試包:用戶根據特定測試需求制訂的,包含一個或多個不同測試用例及其配置方式的描述性大綱。

    測試用例:指對一項特定的測試任務的描述,包括測試目標,輸入數據,測試方法,實現代碼等。在 StressMark 中,測試用例對應于一段具體的待測試代碼,該測試代碼由測試者提供,并被嵌入到 StressMark 工程中。測試時,可以對一個測試用例起多個測試客戶(線程)同時運行,也就是說,一個測試用例同時可以有多個運行實例。還可以對特定的測試用例指定測試次數,即指定在該測試用例的每個實例中,重復執行多少次測試代碼。根據需要,用戶也可以指定每兩次重復之間的時間間隔。

    測試客戶:或稱測試線程。指測試時某特定測試用例的一個具體的實例。該實例以線程方式運行,并與該測試用例的其他實例同時啟動。用戶可以在測試包中為每個測試用例配置測試客戶(線程)的數目。

    測試次數:某特定測試用例的每一個測試客戶(線程)中,待測試代碼的重復執行次數。用戶可以在測試包中為每個測試用例配置測試次數。

    間隔時間:某特定測試用例的每一個測試客戶(線程)中,待測試代碼兩次重復執行之間的間隔時間。單位是毫秒。間隔時間可以在測試包中指定。

    用戶界面

    使用指南

    1. 使用 Visual C++ 6.0 打開項目 StressMark\StressMark.dsw;或使用 Visual Studio .NET 2003 打開解決方案 StressMark\StressMark.sln

    2. 用Visual C++語言實現一個具體的測試用例類。

    所有的測試用例類均應派生于基類 StressCase,必須實現 StressCase 類的 OneStep() 方法,并在 OneStep() 方法中填寫測試代碼。測試用例類可以選擇實現 StressCase 類的 OnInitialize() 和 OnUninitialize() 方法,以完成測試前的初始化和測試后的清理工作。在一個測試客戶(線程)中,OnInitialize() 和 OnUninitialize() 方法僅被調用一次;OneStep() 方法被調用的次數取決于測試者在測試包中配置的測試次數。

    測試者可以在測試用例類中包含測試所需的中間變量、方法等,但不要使用全局變量或全局資源(因為測試案例是運行在線程環境中)。對于無法使用 Visual C++ 實現的待測試代碼(如 Visual Basic代碼),測試者可以先將待測試代碼包裝成 Visual C++可以調用的 ActiveX Automation 組件或動態連接庫,再于 OneStep()方法中編碼調用。

    一個簡單的測試包的例子如下:

    MyCase1.h

    #include "stdafx.h"
    #include "StressCase.h"
    
    class MyCase1 : public StressCase
    {
    public:
        DECLARE_DYNCREATE(MyCase1)
        bool OneStep(CString&amp; strErrorMessage);
    };
    

    MyCase1.cpp

    #include "stdafx.h"
    #include "StressCase.h"
    #include "MyCase1.h"
    
    IMPLEMENT_DYNCREATE(MyCase1, StressCase)
    
    bool MyCase1::OneStep(CString&amp; strErrorMessage)
    {
        // do something...
        return true;
    }

    注意:定義測試用例類必須分成頭文件(*.h)和實現文件(*.cpp),在頭文件中的類定義體內必須包含語句

    DECLARE_DYNCREATE(ClassName)
    

    在實現文件中必須包含語句

    IMPLEMENT_DYNCREATE(ClassName, StressCase)
    

    上面的例子僅實現了OneStep()方法。需要時,也可以實現OnInitialize() 和 OnUninitialize()方法。測試者在測試用例代碼內可以通過 StressCase類的成員變量獲得與自身相關的各種信息,包括案例名稱、線程號、測試次數等,也可以在測試失敗時通過參數strErrorMessage返回錯誤信息(該錯誤信息將顯示在測試界面中),或者調用StressCase 類的 LogEvent() 方法記錄系統日志(僅在 Windows NT/2000下有效,日志信息記錄在操作系統的應用程序日志中,可以使用事件查看器閱讀)。

    有關 StressCase類的各成員變量及方法的使用的詳細信息,請參見頭文件StressCase.h 中的代碼和注釋。

    3. 將上面實現的頭文件和實現文件(如MyCase1.h和MyCase1.cpp)加入VisualC++工程中。

    4. 必要的話,重復2-3,實現其他測試用例類。

    5. 修改 TestSuite.cpp 的內容,定義測試包。TestSuite.cpp文件的格式及配置方法如下:

    ///////////////////////////////////////////////////////////////////////////
    //
    // TestSuite.cpp - 測試包定義
    //
    ///////////////////////////////////////////////////////////////////////////
    
    #include "stdafx.h"
    #include "StressCase.h"
    
    //
    // 在此處包含所有具體的測試用例類的頭文件,例如
    // #include "MyCase1.h"
    // #include "MyCase2.h"
    // ...
    //
    #include "MyCase1.h"
    #include "MyCase2.h"
    
    //
    // 此處定義所有具體的測試用例
    //      每個具體測試用例的定義語法為
    //
    //      BEGIN_TEST_SUITE
    //          DECLARE_TEST_CASE(ClassName, Name, Clients, Times, Interval)
    //          ...
    //      END_TEST_SUITE
    //
    //          其中,ClassName 是測試用例的類名,
    //          Name 是顯示用的測試用例名稱,
    //          Clients 是指定為該測試用例起多少個客戶(線程)
    //          Times 是每個客戶(線程)中重復測試多少次
    //          Interval 是線程中每兩次測試間的時間間隔(毫秒數,
    //              Interval 為 0 表示不間斷地連續測試)
    //
    //
    BEGIN_TEST_SUITE
        DECLARE_TEST_CASE(MyCase1, "測試用例一", 5, 5, 1000)
        DECLARE_TEST_CASE(MyCase2, "測試用例二", 8, 10, 0)
    END_TEST_SUITE
    

    6. 編譯 StressMark 工程。注意要使用 Release方式編譯,以保證測試所得的時間數據的精確。

    7. 在測試環境中運行程序StressMark.exe。測試者可以在程序界面中使用"開始測試"、"終止測試"按鈕來啟動或停止測試過程,測試結束后,可以用"報表"按鈕輸出測試報告到文本文件中。如果因線程調度或測試代碼的原因,測試過程無法停止的話,測試者可以直接使用"殺所有線程"按鈕終止測試。

    8. 其他更詳細的信息,如測試用例的執行方式,線程調度規則等,可以參見StressMan.h 和 StressMan.cpp 中的代碼和注釋。

    下載

    StressMark壓力測試工具源代碼下載

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    TAG: stressmark 工具 壓力測試


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>