Ngrinder複数のインターフェースは、測定された圧力設定プログラムシーンの混合比

その後、別のユーザー要求のアクセス数、シミュレーションテストの必要性により、実際のシーンを考慮して、同時に複数のサービス。

本明細書で使用される、コントロールのパーセンテージを実行するスレッドの数は、すなわち、対応する要件を満たすために、仮想シーンの割合をユーザが制御します。

グルーヴィーなスクリプト言語の設計。

輸入 静的net.grinder.script.Grinder.grinderの
 インポート 静的 org.junit.Assert。*
 インポート 静的 org.hamcrest.Matchers。*
 輸入net.grinder.plugin.http.HTTPRequest
 輸入net.grinder.plugin.http.HTTPPluginControlの
 インポートnet.grinder.script.GTest
 輸入net.grinder.script.Grinder
 輸入net.grinder.scriptengine.groovy.junit.GrinderRunner
 輸入net.grinder.scriptengine.groovy.junit.annotation.BeforeProcessの
 輸入net.grinder.scriptengine.groovy。 junit.annotation.BeforeThread
 輸入org.junit.Beforeの
 インポートorg.junit.BeforeClass
 輸入org.junit.Test
 輸入org.junit.runner.RunWith
 輸入java.util.Date
 輸入はjava.util.Listの
 インポートjava.util.ArrayListの
 インポートHTTPClient.Cookieの
 インポートHTTPClient.CookieModule
 インポートHTTPClient.HTTPResponse
 インポートHTTPClient.NVPair


/ **
*の検索示すHTTPプラグインを使用して単純な例
HTTPを介して* 1ページ。
*
*このスクリプトは自動的にngrinderによって生成されます。
*
* @author ylfeng
* /

@RunWith(GrinderRunner)
 クラスTestPre { 

    パブリック 静的GTEST試験
     パブリック 静的HTTPRequestの要求
     パブリック 静的 NVPair []ヘッダー= []
     パブリック 静的 NVPair []のparams = []
     パブリック 静的クッキー[]クッキー= []
     パブリック 静的TEST1 GTEST
     パブリック 静的GTEST test2は
     公共の 静的test3にGTEST
     パブリック 静的TEST4 GTEST
     パブリック 静的GTEST TEST5 


    @BeforeProcess
    パブリック 静的 ボイドbeforeProcess(){ 
        HTTPPluginControl.getConnectionDefaults()。タイムアウト = 6000
         // 实例化五个GTEST对象 
        TEST1 = 新しい GTEST(1、 "TEST1" 
        TEST2 = 新しい GTEST(2、 "TEST2" 
        TEST3 = 新しい GTEST (3、 "TEST3" 
        TEST4 = 新しい GTEST(4、 "TEST4" 
        TEST5 = 新しい GTEST(5、 "TEST5" 
        リクエスト = 新しいHTTPRequestの()
        grinder.logger。情報(「プロセスの前に。」); 
    } 

    @BeforeThread 
    公共 ボイドbeforeThread(){
         // 设置五个请求的统计测试结果 
        test1.record(この、 "TEST1" 
        test2.record(この "TEST2" 
        test3.record(この "TEST3" 
        TEST4を.record(この "TEST4" 
        test5.record(この "TEST5" 
        grinder.statistics.delayReports = 
        grinder.logger.info( "スレッドの前に。" );

    @Before 
    公共 ボイド前(){ 
        request.setHeaders(ヘッダ)
        cookies.each {CookieModule.addCookie(IT、HTTPPluginControl.getThreadHTTPClientContext())} 
        grinder.logger.info( "INITスレッドヘッダとクッキーの前に。" ); 
    } 

    @テスト
    公共 ボイド試験(){
         //は、仮想ユーザ・スレッドの合計数を取得し、実行
        INT仮想ユーザ= getVusers()
         INT runThreadNum = getRunThreadNum()
        
        // 実行パーセンテージ設定
        INT runRate1 30 =
         INT runRate2 30 =
         INT runRate3 = 10
        INT runRate4 = 10
         int型 runRate5 = 10 // 稼働率計算スレッド数INT runNum1 =仮想ユーザ/ 100 * runRate1
         INT runNum2 =仮想ユーザ/ 100 *(runRate1 + runRate2)
         INT runNum3 =仮想ユーザ/ 100 *(runRate1 + runRate2 + runRate3)
         INT runNum4 -仮想ユーザ= / 100 *(100 runRate5)
         INT runNum5仮想ユーザ= / * 100 100 // の比率に応じて、対応する要求をIF(runThreadNum> 0 && runThreadNum <= runNum1)
             この.test1()
         IF(runThreadNum> runNum1 && runThreadNum < =
        
        
        
        
        
         runNum2)
             この.test2()
         それ以外 の場合(runThreadNum> runNum2 && runThreadNum <= runNum3)
             この.test3()
         それ以外 の場合(runThreadNum> runNum3 && runThreadNum <= runNum4)
             この.test4()
         それ以外 の場合(runThreadNum> runNum4 && runThreadNum < = runNum5)
             この.test5()
    } 

    公共 ボイドTEST1(){ 
        grinder.logger.info( "---请求一のもの:{} ---"、grinder.threadNumber + 1 

    } 

    公共 ボイドTEST2(){
        grinder.logger.info( "--- 2つの要求補数:{} ---"、grinder.threadNumber + 1 

    } 

    公共 ボイドTest3は(){ 
        grinder.logger.info(「---要求3つのスリー:{} ---」、grinder.threadNumber + 1 

    } 

    公共 ボイドTEST4(){ 
        grinder.logger.info( "---要求4つの4:{} ---"、grinder.threadNumber + 1 

    } 
    
    公共 ボイドTEST5( ){ 
        grinder.logger.info( "---要求5ファイブ:--- {}"、grinder.threadNumber + 1 

    } 
    
    公共 INT getVusers(){
         // 仮想のユーザの総数取得
        INTをtotalAgents = Integer.parseInt(grinder.getPropertiesは()。( "grinder.agents"を取得).toString())
         int型 totalProcesses = Integer.parseInt(grinder.properties.get( "grinder.processes" ).toString())
         int型 totalThreads = Integer.parseInt(grinder.properties.get( "grinder.threads" ).toString())
         INT仮想ユーザ= totalAgents * totalProcesses * totalThreadsを
         返す仮想ユーザを
    } 
    
    公共 INT getRunThreadNum(){
         // 获取当前压力机数、进程数、线程数
        int型 agentNum = grinder.agentNumber
         int型 processNum = grinder.processNumber
        int型 threadNum = grinder.threadNumber 
        
        // スレッドの現在の数を取得
        int型 runThreadNum =(+ agentNum。1)*(+ processNum。1)*(+ threadNum。1 を返すrunThreadNumを
    } 
}

 参照文献:

  1、HTTPS:?//testerhome.com/topics/17585ロケール= ZH-CN

 

おすすめ

転載: www.cnblogs.com/fxcity/p/11239760.html