2015-08-27 22 views
5

Ben mitralyözGatling için http isteği üzerine Rastgele bir URL nasıl alabilirim?

Benim senaryo böyle tanımlanır için http istek üzerine bir Rastgele URL almak istiyorum:

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) 
    ) 
} 

Ben sadece bir rasgele sayı üretilen yerine isteği başına bir adres. Bunu nasıl çözeceğinizi biliyor musunuz? Teşekkürler !

+0

Ağ geçidine aşina değilim. Sadece scalaya baktığımızda, Random.nextInt çağrısı da dahil olmak üzere "scenario.exec" parametresinin hemen val satırında çalıştırıldığı görülür. Randomizerın bir kereden fazla çağrılması için olağan yol, bir kereden fazla çalıştırılan bir işleve koymak olacaktır. Bu da, 'scenario.exec()' nin bir parametre olarak işlev görüp göremeyeceğine bağlı olabilir. Bir dersi genişletip genişletemeyeceğiniz, kullanım durumunuz için uygun bir şekilde bir parametre olarak kabul edilir. – Paul

cevap

2

Bir değer geçiyorsunuz, bu nedenle new Random().nextInt, Simülasyon oluşturulduğunda yalnızca bir kez çağrılıyor.

Expression, yani bir işlevi iletmeniz gerekir. Sadece o zaman her zaman değerlendirilecek.

.get(session => "/" + new Random().nextInt()) 
İlgili konular