1.TPS:每秒处理的事务数,jmeter的Throughput为吞吐率(请求数/秒),在加了事务控制器后,TPS=Throughput
    宏观上:TPS=并发数/响应时间,jmeter的Throughput = (number of requests) / (total time) ,即
    Throughput =(sample样本数)/(最后一个线程启动的时间+最后一个线程持续的时间-第一个线程启动的时间)
    可以这样理解这个公式:绝对的并发是不存在的,请求发出的时间总有先后,绝对的TPS也是无法计算的,统计的角度看,服务器处理请求总数/花费的时间即是TPS,这也是
    为什么需要不断增大用户数来寻找服务器的最大TPS的原因
    2.平均响应时间=所有sample样本响应时间和/样本个数

    TPS=1/RT用户数(RT是所有事物的平均时间)
    是不对的
    假如1,A应用是单线程处理,处理一个请求需要1s,5个VU去请求一次,第一个请求花费了1s,第二个花了2s…第五个花了5s,总时间是5s,总请求数是5,所以TPS=1,平均响应时间是(5+4+3+2+1)/5=3s,此时按照TPS=1/RT
    用户数是不对的
    假如2,当去请求多个事物时,此时这个公式是明显错误的

    samples averager = users duration
    总请求数 平均响应时间 =并发数 持续时间
    QPS(TPS)= 并发数/平均响应时间
    QPS(TPS)= 总请求数/持续时间
    网上有人提供的公式,计算出来和聚合报告里的比较接近

    这么想想的话因该可以用jmeter现有的测试报告自己计算出tps,
    在聚合报告中有 samples 还有error这么两个tital ,我的计算公式是这样的
    tps = samples * (1-error) / runntime
    1-error是获得请求正确的访问百分比,这样就能获得正确请求以及访问的数量,然后在除以测试总时间的秒数, 这不就得到了tps了嘛!
    我感觉自己有点自作聪明了,希望看到这个帖子的朋友能给点想法.

    这个脚本是用perl写的直接分析jtl文件从而获得整个测试的tps值

    作者:岸上雨
    链接:https://www.jianshu.com/p/18f98b4d90a6
    来源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。