Grinder多个帖子网址测试不能正常工作

时间:2016-08-08 16:20:40

标签: performance-testing grinder

我正在运行grinder以测试具有10个不同json主体的POST URI。研磨机给出的响应时间不合适。个人json身体测试给出了合理的响应时间,尽管10个脚本与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 个答案:

答案 0 :(得分:1)

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

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

您可以将请求移出到全局方法并获取一些随机数,如Grinder.threadNo,并使用它来返回要执行的脚本。这也要求您删除for循环,因为您可以控制脚本执行的次数或使其保持运行一段时间。

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