QPS is basically similar to TPS, but the difference is that a single visit to a page forms a TPS; however, a page request may generate multiple requests to the server, which can be included in the “QPS”.
上述出自链接。
在搞明白概念的区别之后,再来看术语的应用场景。性能测试关注点是性能上,所以只要把性能解释清楚就好,在不同的公司,无论对与错,无论术语用得专不专业,只要大家都知道在说同一个东西其实也还好。
回到问题上,性能测试关注的是性能,而制造性能压力一般来源于并发访问量和能使用的资源,所以我们要描述压力大小,就相当于要描述并发量以及提供给系统的资源量。
TPS 和 QPS 对比,按照老外的解释,TPS 是一个更内部更拆解的概念,在业务足够简单的情况下它可以跟 QPS 等价;QPS 是更面向用户的概念,它把整个系统看成整体,不管你系统内部怎么运作,现在每秒多一个访问过来那就是 QPS 加一,更直观更好理解也更容易统计,所以我推荐用 QPS 来表示并发或者压力程度,当然单纯说 QPS 是没用的,还要加上请求正常响应比例等条件的约束才有实际分析意义,就不展开扯了。
还有一个很重要的点,要区分好线程数和 QPS 两个概念,个人感觉之所以会把线程数等价于 QPS,可能是习惯将 Jmeter 世界里的概念搬到其他场景来。因为 Jmeter 实现发压是基于多线程模型,不严谨地说就是一个线程发一个请求,很古老的 I/O 模型,在当时可能是很好的方案,但现在看来会有局限。对比与 Locust、Gatling、K6 等更新一代的压测工具,使用更高效的 I/O 模型更有利于榨干发压机的性能,这个时候就再也不是一个线程等价一个请求。所以,不能用线程数来代表并发,而是用该以实际发了多少请求给服务器来统计并发。这篇文章写得很好建议阅读。
特意了解一下财经支付同学的质量保障工作,同样也是 mock、沙盒支付、支付白名单 这几种手段。支付服务端是 go,公司内部有流量回放服务应用在支付测试上,不过仅限于线下环境,没看到线上有做特别的测试动作。
不过恒捷那个思路确实合理,可以在监控报警上面多做建设,或者尝试做做线上支付定期的接口巡检?
还会有这个话题的下一篇文章吗?期待看到更多具体的实践细节做法
如果楼主确定了定居在石家庄不考虑其他二三线城市的话,那最重要的还是心态吧。
比较好奇,对线上支付接口做拨测的目的是什么?
个人感觉,似乎除了验证自家服务在不同地区节点的性能之外没有更多的结论。
在依赖第三方支付接口的情况下,别人对拨测的响应速度无法控制,咱最多只能帮别人发现问题这样子?
如果不打算连带第三方支付接口一起验证,那确实是 mock 掉第三方支付接口即能达到目的。
由于第一段话和第二段话的逻辑看起来很奇怪,没有能完全理解,上面已经有人说了,你的问题其实不是测试问题,而是本身服务端实现就存在已知的性能问题,和你做性能测试没有关系,问题在线上已经验证出来了,接下来应该是排查修改。
下面尝试回答你的两个问题。
问题 1:如何在测试环境去模拟这种数据量较大的情况测试
问题 2:测试标准怎么定
我假设你说的是性能测试标准,一般主要关注以下维度:
思路是,在一定时长范围内,满足 xx% 响应率,能压到多少 QPS,这个 QPS 是否达到预定目标,在压测过程中有没有发现资源问题……具体数值,要从线上历史数据去分析预测,与研发和产品商讨确定。具体可以看看服务端压测怎么做。
好的测开,确实还是得从业务中走出来,对业务痛点有亲身摸爬滚打经历,再慢慢走到中台化服务化
感觉是精力分配转移了,年纪越大越清楚想要什么,精力管理得越来越好,鸡毛蒜皮的事已经不入脑了
不错,很明确自己的学习路径,继续加油,做到学以致用,实践到工作里加深理解(当然不要盲目实践)
至于技术深度方面上,可能得有标杆基线才能去评价深度,比如领域内大家一般都做成啥样,有些什么地方大家可能没做,这样去评估可能目标性更强。
有些时候太钻牛角尖确实不是一件好事,“够用就好” 和 “深挖到最底层” 并不就是一个贬义一个褒义,还是要区分场景去看待。如果在一个快速发展的地方,“够用就好” 是一个理智的行为,强行挖深度会带来负面效果,最直接的表现可能就是自嗨和闭门造车。“深挖到最底层” 要看周围环境是否允许,当然如果是业余深挖是鼓励的,工作上去花时间深挖,就真的要权衡 ROI 了,可能有更多更重要的事情自己装看不见,挑活不想干。有时候老板可能也不好意思挑战,要自己意识到不合适。
我看下来有些疑问(好奇)
在豆瓣慢慢蹲大佬的新书
本质职责:保产品质量底线,如有余力,再来说提升研发测试效率
呈现上,你的能力地图(都已经有些什么能力),你的风险地图(盘点业务潜在的质量问题),早期通过度量大盘驱动业务建设,后期通过能力成熟度模型深化工程能力,这一套套看似官话套话的东西,理解下来,够做好多年。
中高阶的知识一般来源有:进阶书本、twitter 等各类外国社交论坛、paper、工作实战、业界了解等……
测试技术相对来说,信息获取渠道更加局限,因为很多深入的测试技术是细分到具体领域的,而不会被人当成测试单独放在一起。
比较可行的方式:工作实战、业界了解、paper。(书本太少、社交论坛很少深入探讨测试或者质量,更多时候可能放到效能工程里头去)
风水宝地,搭车上广告:[深圳/北京/社招] 字节跳动 - 移动专项测试,极速面试
找到了两篇相关文章:
没想到协议栈底层原来会这样处理数据,send
函数只是将数据写到了内核缓冲区,所以send
函数的返回值不代表对方已经收到多少数据,挺有意思。
个人看法,只要不是过度监控,就是有做得必要。
收益:
但是在具体实施时要考虑一些因素:
不排除楼主要搞竞品评测自动化
风水宝地,搭车招聘:[深圳/北京/社招] 字节跳动 - 移动专项测试
建议提供现场信息,机型、系统、app 版本、wda 日志
1 分钟真男人
左右移思路上是做盘点枚举。
从版本生命周期或者研发流程出发:
需求提出与评审->技术设计&评审->测试设计&评审->代码合入&测试->灰度上线->全量上线
从这里面逐个环节去看,质量和效能层面分别能做什么……就不会再说【每次 build 就触发自动化测试】而且还自我感觉说到本质了