2015-08-27 7 views
5

मैं गैटलिंगगैटलिंग के लिए http अनुरोध पर मैं एक यादृच्छिक यूआरएल कैसे प्राप्त कर सकता हूं?

मेरे परिदृश्य इस तरह परिभाषित किया गया है के लिए http अनुरोध पर एक यादृच्छिक URL प्राप्त करना चाहते हैं:

import io.gatling.core.Predef._ 
import io.gatling.http.Predef._ 
import scala.concurrent.duration._ 
import scala.util.Random 

class testSimulation extends Simulation { 

    val httpConf = http.baseURL("OURURL") 


    val scn = scenario("View HomePages") 
       .exec(
         http("Home page") 
           .get("/" + new Random().nextInt()) 
           .resources(
             http("genericons.css").get("/wp-content/themes/twentyfifteen/genericons/generi$ 
             http("style.css").get("/wp-content/themes/twentyfifteen/style.css?ver=4.2.3"), 
             http("jquery.js").get("/wp-includes/js/jquery/jquery.js?ver=1.11.2"), 
             http("jquery-migrate.min.js").get("/wp-includes/js/jquery/jquery-migrate.min.j$ 
             http("skip-link-focus-fix.js").get("/wp-content/themes/twentyfifteen/js/skip-l$ 
             http("functions.js").get("/wp-content/themes/twentyfifteen/js/functions.js?ver$ 
             http("wp-emoji-release.min.js").get("/wp-includes/js/wp-emoji-release.min.js?v$ 
             http("wp-emoji-release.min.js").get("/wp-includes/js/wp-emoji-release.min.js?v$ 
             http("skip-link-focus-fix.js").get("/wp-content/themes/twentyfifteen/js/skip-l$ 
             http("functions.js").get("/wp-content/themes/twentyfifteen/js/functions.js?ver$ 
          ) 
       ) 

    setUp(
     scn.inject 
     (
     rampUsersPerSec(1) to(300) during(60 seconds), 
     constantUsersPerSec(300) during(600 seconds) 
    ) 
     .protocols(httpConf) 
    ) 
} 

मैं केवल एक यादृच्छिक संख्या के बजाय अनुरोध के अनुसार एक जेनरेट किया है। क्या आप जानते हैं कि इसे कैसे हल करें? धन्यवाद !

+0

मैं गैटलिंग से परिचित नहीं हूं। केवल स्कैला में देखकर, यह पैरामीटर दिखाई देता है, जिसमें Random.nextInt कॉल शामिल है, 'scenario.exec' को तुरंत वैल लाइन पर निष्पादित किया जाता है। यादृच्छिकता को एक से अधिक बार बुलाया जाने का सामान्य तरीका इसे एक ऐसे फ़ंक्शन में रखना होगा जो एक से अधिक बार निष्पादित हो जाता है, जो बदले में इस पर निर्भर हो सकता है कि 'scenario.exec()' पैरामीटर के रूप में कोई फ़ंक्शन ले सकता है या चाहे आप एक वर्ग का विस्तार कर सकें जो आपके उपयोग के मामले में पैरामीटर के रूप में उचित तरीके से लेता है। – Paul

उत्तर

2

आप एक मूल्य पारित कर रहे हैं, इसलिए निश्चित रूप से new Random().nextInt सिमुलेशन बनाया गया है, केवल एक बार बुलाया जाता है।

आपको Expression, यानी एक फ़ंक्शन पास करना होगा। केवल तभी इसका मूल्यांकन किया जाएगा।

.get(session => "/" + new Random().nextInt()) 
संबंधित मुद्दे

 संबंधित मुद्दे