2012-03-27 2 views
0

부하 테스트를 위해 The Grinder - 버전 3.7.1을 사용하고 있습니다. 내 시험이 형식의 백만 URL을 타격 포함 :그라인더 - 동일한 프로세스에서 여러 스레드를 사용하여 여러 URL 누르기

예 : www.someDomain.com/a_1.com www.someDomain.com/a_2.com

그래서, 같은 그라인더를 사용하는 경우, 각 프로세스는 URL을 사용하고 있는데, 이는 내 경우에는 실현 가능하지 않습니다. 그래서 각 스레드가 URL을 사용하기를 원했습니다. 그러나, 나는 분쇄기에서 이것을 달성하는 방법을 알지 못합니다.

답변

0

그라인더 스크립트에서 URL을 동적으로 구성 할 수 있습니다. 표준 파이썬 문자열 대체 기술을 사용하십시오. 귀하의 솔루션은 다음과 같이 보일 수 있습니다

http://grinder.sourceforge.net/g3/script-gallery.html

당신은 데이터 파일의 URL을 읽거나에 그들을 만들 수있다 : 여기

from net.grinder.script.Grinder import grinder 
    from net.grinder.script import Test 
    from net.grinder.plugin.http import HTTPRequest 

    test1 = Test(1, "Request resource") 
    request1 = test1.wrap(HTTPRequest()) 

    class TestRunner: 

     def _get_url(self): 
      url = "" 
      # build your url here 
      # ... 
      return url 

     def __call__(self): 
      result = request1.GET(self._get_url()) 

도움이 될 수있는 몇 가지 다른 예제 스크립트입니다 파리. Grinder API를 사용하면 스레드 번호 및 반복에 액세스 할 수 있으므로 작업에 잠재적으로 유용합니다.

+0

안녕하세요 트래비스, 파일에서 URL 읽기를 시도했습니다. 그러나 하나의 스레드는 URL을 차지하지 않습니다. 하나의 프로세스가 URL을 사용합니다. 그리고 스레드 번호를 얻고 수동으로 URL을 할당 할 수 있습니까? –

+0

스레드, 프로세스 또는 URL 간에는 엄격한 결합이 없습니다. 당신은 각 스레드에 임의의 수의 URL을 할당합니다. 지금까지 각 스레드의 반복마다 고유 한 URL을 가질 수 있습니다. 파이썬에는이 목적을 위해 사용할 수있는 다양한 문자열 조작 기술이 있습니다. grinder.threadNumber 및 grinder.runNumber에 액세스하여 현재 스레드에 대한 정보를 얻을 수 있습니다. 이를 수행하는 방법에 대한 예제는 스크립트 갤러리 (답변에 링크되어 있음)를 참조하십시오. –

+0

좋습니다, 감사합니다. 나는 또한 다른 부하 테스트 엔진을보고 있었고 JMeter를 사용하여 더 쉽게 찾을 수있었습니다. 그러나 나는 또한 당신이 그라인더에서 어떻게 말한 것처럼 시도 할 것입니다. –

관련 문제