Python Grinder-使用同一进程中的多个线程命中多个URL

Python Grinder-使用同一进程中的多个线程命中多个URL,python,jython,grinder,Python,Jython,Grinder,我正在使用Grinder-Version3.7.1进行负载测试。我的测试涉及点击一百万个这种格式的URL: 例如:www.someDomain.com/a_1.com www.someDomain.com/a_2.com 因此,如果我这样使用研磨机,每个过程都会获取一个url,这在我的情况下是不可行的。所以,我希望每个线程都有一个url。但是,我不知道如何在研磨机中实现这一点 您可以在grinder脚本中动态构造url。只需使用标准的python字符串替换技术。您的解决方案可能如下所示:

我正在使用Grinder-Version3.7.1进行负载测试。我的测试涉及点击一百万个这种格式的URL:

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


因此,如果我这样使用研磨机,每个过程都会获取一个url,这在我的情况下是不可行的。所以,我希望每个线程都有一个url。但是,我不知道如何在研磨机中实现这一点

您可以在grinder脚本中动态构造url。只需使用标准的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())
下面是一些可能有用的其他示例脚本:


您可以从数据文件中读取URL,也可以动态构建它们。Grinder API允许您访问线程编号和迭代,这可能对您的任务有用。

嗨,Travis,我尝试从文件中读取URL。但是一个线程不占用url。一个进程占用一个url。我可以获取线程号并手动为其分配URL吗?线程、进程或URL之间没有严格的耦合。您可以为每个线程分配任意数量的URL。您甚至可以为每个线程的每次迭代都提供一个唯一的url。Python有一套丰富的字符串操作技术,您可以使用这些技术来实现这一目的。通过访问grinder.threadNumber和grinder.runNumber,可以获取当前螺纹的信息。请参阅脚本库(答案中链接)以获取有关如何执行此操作的示例。好的,谢谢。我还研究了其他负载测试引擎,发现使用JMeter更容易。但我也会像你在《研磨机》里说的那样尝试。