2012-03-27 51 views
0

我正在使用The Grinder - 版本3.7.1进行负载测试。我的测试包括击中亿个URL格式的:磨床 - 使用同一进程中的多个线程创建多个网址

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

所以,如果我使用的研磨机,例如,每个过程都采取一个网址,这在我的情况下是不可行的。所以,我希望每个线程都占用一个url。但是,我不知道如何在磨床上实现这一点。

回答

0

您可以在磨床脚本中动态构建网址。只需使用标准的Python字符串替换技术即可。您的解决方案可能是这个样子:

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

这里有一些其他脚本可能会有所帮助:

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

你可以从一个数据文件的读取网址或建立他们苍蝇。通过Grinder API,您可以访问线程号和迭代,对您的任务可能有用。

+0

嗨特拉维斯,我试着从文件中读取网址。但是一个线程不会占用一个url。一个进程占用一个url。我可以得到线程号并手动分配网址吗? – 2012-03-29 07:07:23

+0

线程,进程或url之间没有严格的耦合。您可以为每个线程分配任意数量的url。你甚至可以为每个线程的每次迭代拥有一个唯一的url。 Python有一套丰富的字符串操作技术,您可以使用它来达到此目的。您可以通过访问grinder.threadNumber和grinder.runNumber获取当前线程的信息。请参阅脚本库(在答案中链接)以获取有关如何执行此操作的示例。 – 2012-03-29 18:24:17

+0

好的,谢谢。我还在研究其他负载测试引擎,并发现使用JMeter更容易。但我也会尝试像你在磨床上说的那样。 – 2012-04-02 09:16:37

相关问题