性能测试- Grinder多个post url测试不能正常工作



我正在运行grinder来测试一个POST URI与10个不同的json体。grinder给出的响应时间不合适。单独的json体测试给出了合理的响应时间,虽然10个不同json体的脚本给出了非常高的响应时间和非常低的tps。我使用1个代理,5个工作进程和15个线程。谁能帮我找出问题出在哪里吗?

我使用的脚本是:-

`from net.grinder.script.Grinder import grinder
from net.grinder.script import Test
from net.grinder.plugin.http import HTTPRequest
from HTTPClient import NVPair
from java.io import FileInputStream
test1 = Test(1, "Request resource")
request1 = HTTPRequest()
#response1 = HTTPResponse()
test1.record(request1)
log = grinder.logger.info
class TestRunner:
    def __call__(self):
            #request1.setDataFromFile("ReqBody.txt")
            payload1 = FileInputStream("/home/ubuntu/grinder-3.11/scripts/Req.txt")
            payload2 = FileInputStream("/home/ubuntu/grinder-3.11/scripts/Req2.txt")
            payload3 = FileInputStream("/home/ubuntu/grinder-3.11/scripts/Req3.txt")
            payload4 = FileInputStream("/home/ubuntu/grinder-3.11/scripts/Req4.txt")
            payload5 = FileInputStream("/home/ubuntu/grinder-3.11/scripts/Req5.txt")
            payload6 = FileInputStream("/home/ubuntu/grinder-3.11/scripts/Req6.txt")
            payload7 = FileInputStream("/home/ubuntu/grinder-3.11/scripts/Req7.txt")
            payload8 = FileInputStream("/home/ubuntu/grinder-3.11/scripts/Req8.txt")
            payload9 = FileInputStream("/home/ubuntu/grinder-3.11/scripts/Req9.txt")
            payload10 = FileInputStream("/home/ubuntu/grinder-3.11/scripts/Req10.txt")
            headersPost = [NVPair('Content-Type', ' application/json')]
            #request1.setHeaders(headersPost)
            #request1.setHeaders
            myload = [payload1, payload2, payload3, payload4, payload5, payload6, payload7, payload8, payload9, payload10]
            for f in myload:
                result1 = request1.POST("http://XX.XX.XX.XX:8080/api/USblocks/ORG101/1/N/",f,headersPost)
                log(result1.toString())`

第一步是使用1个线程、1个进程和1个代理运行它。我希望它能正常运行。

由于使用了for循环,因此看起来所有脚本都将为每个线程运行。我认为你想要/应该做的是每个线程应该发送一个请求。

你可以把请求移到一个全局方法中,取一些随机数,比如Grinder。并使用它来返回要执行的脚本。这还要求您删除for循环,因为您可以控制脚本执行的次数,或者让它运行一段时间。

并行运行10个线程是一个很好的数字,然后慢慢地你可以看到有多少请求实际上被接受。

相关内容

  • 没有找到相关文章

最新更新