2017-07-05 10 views
0

私はランダムURLまたはPHPスクリプトを実行するためのbashスクリプトを作成することはできますか?データベースからURLを読み込み、動的URLを作成して、このURLにベンチテストを実行するためのコマンドを包囲するようにしますか?例えばbashスクリプトを使用して生成された動的URLを使用して包囲攻撃を使用したベンチテスト

私はbanner_sizesのこのタイプがあります。

[ 
    { 
     "id": 1, 
     "size": "normal_x970h90", 
    }, 
    { 
     "id": 2, 
     "size": "normal_x234h60", 
    }, 
    { 
     "id": 3, 
     "size": "normal_x468h60", 
    }, 
    { 
     "id": 4, 
     "size": "normal_x300h600", 
    }, 
    { 
     "id": 5, 
     "size": "normal_x120h600", 
    }, 
    { 
     "id": 6, 
     "size": "normal_x160h600", 
    }, 
    { 
     "id": 7, 
     "size": "normal_x120h240", 
    }, 
    { 
     "id": 8, 
     "size": "normal_x300h250", 
    }, 
    { 
     "id": 9, 
     "size": "normal_x250h250", 
    }, 
    { 
     "id": 10, 
     "size": "normal_x600h300", 
    }, 
    { 
     "id": 11, 
     "size": "normal_x728h90", 
    }, 
    { 
     "id": 12, 
     "size": "normal_x300h100", 
    }, 
    { 
     "id": 13, 
     "size": "normal_x125h125", 
    } 
] 

をし、また、私はこれらのIDを持っている:

[ 
    0 => array:1 [ 
    "_id" => MongoDB\BSON\ObjectID {#915} 
    ] 
    1 => array:1 [ 
    "_id" => MongoDB\BSON\ObjectID {#926} 
    ] 
    2 => array:1 [ 
    "_id" => MongoDB\BSON\ObjectID {#924} 
    ] 
    3 => array:1 [ 
    "_id" => MongoDB\BSON\ObjectID {#913} 
    ] 
    4 => array:1 [ 
    "_id" => MongoDB\BSON\ObjectID {#929} 
    ] 
    5 => array:1 [ 
    "_id" => MongoDB\BSON\ObjectID {#862} 
    ] 
    6 => array:1 [ 
    "_id" => MongoDB\BSON\ObjectID {#863} 
    ] 
    7 => array:1 [ 
    "_id" => MongoDB\BSON\ObjectID {#864} 
    ] 
    8 => array:1 [ 
    "_id" => MongoDB\BSON\ObjectID {#865} 
    ] 
    9 => array:1 [ 
    "_id" => MongoDB\BSON\ObjectID {#928} 
    ] 
    10 => array:1 [ 
    "_id" => MongoDB\BSON\ObjectID {#927} 
    ] 
    11 => array:1 [ 
    "_id" => MongoDB\BSON\ObjectID {#917} 
    ] 
    12 => array:1 [ 
    "_id" => MongoDB\BSON\ObjectID {#918} 
    ] 
    13 => array:1 [ 
    "_id" => MongoDB\BSON\ObjectID {#899} 
    ] 
    14 => array:1 [ 
    "_id" => MongoDB\BSON\ObjectID {#898} 
    ] 
] 

は、私は情報の上に使用したURLのこれらのタイプを作成する必要があります。

www.example.come/api/is/normal_x234h60/899 
www.example.com/api/is/normal_x600h300/898 

などです。

siege -c10000 -b -t30m -f urls.txt 

または使用してApacheのabベンチテスト:

私の包囲コマンドを、このURLを作成し、txtファイルに入れ、次に実行する方法はありますか?

答えて

1

私はこの問題の解決策を見つけました。私はmysqlとmongodbデータベースに接続してデータを読み込んだPHPファイルを作成しました。次にネストされたforループで必要なURLを作成して保存しました。 txtファイル。私はurls.txtファイルの各行を読んで、それぞれを使用してApacheのABテストを実行しますbashスクリプトを作成し、大きなサイズの要求と

siege -c10000 -b -t30m -f urls.txt 

が、理由は攻城問題の: はその後、私はちょうど包囲コマンドを実行するために必要な私のアプリケーションの動的URLを使ってストレステストをするURL。

URLを作成するためのPHPコード:複数のベンチテストを実行するには

 $seats = Seat::where('status', 'ACTIVE')->get(); 
     $s_count = Seat::where('status', 'ACTIVE')->count(); 


     $bs = Banners::where('status', 'enable')->get(); 
     $bs_count = Banners::where('status', 'enable')->count(); 

     $url = Config('conf.APP_PATH') . "/api/is/"; 
     $url_array = array(); 

     for ($i = 0; $i < $s_count; $i++) { 
      for ($j = 0; $j < $bs_count; $j++) { 
       $url_array[] = $url . $bs[$j]['size'] . "/" . $seats[$i]['_id']."\n"; 
      } 
     } 


     File::put('./url.txt',$url_array); 

bashスクリプト:

while read LINE; do 
    cmnd="./ab -n10000 -c100 " 
    cmnd=${cmnd}"$LINE" 
    eval $cmnd 
    cmnd='' 
done < urls.txt 
関連する問題