发布时间:2021-12-29 16:57:07来源:转载
自上世纪末Kent Beck提出TDD(Test-Driven Development)开发理念以来,开发和测试的边界变的越来越模糊,从原本上下游的依赖关系,逐步演变成你中有我、我中有你的互赖关系,甚至很多公司设立了新的QE(Quality Engineer)职位。和传统的QA(Quality Assurance)不同,QE的主要职责是通过工程化的手段增加项目质量,这些手段包括但不仅限于编写单元测试、集成测试,搭建自动化测试流程,设计性能测试等。可以说,QE身上兼具了QA的质量意识和开发的工程能力。从这篇开始,我会从开发的角度分三期聊聊QE这个亦测试亦开发的角色所需的基本技能。
1 什么是性能测试?
先来看一下维基百科里对性能测试的定义,
In software engineering, performance testing is in general, a testing practice performed to determine how a system performs in terms of responsiveness and stability under a particular workload. - Wikipedia
注意上述定义中有三个关键词:
responsiveness,即响应时间,请求发出去之后,服务端需要多久才能返回结果,显然响应时间越短,性能越好。
stability,即稳定性,同样的请求,不同时刻发出去,响应时间差别越小,稳定性越好,性能也越好。
workload,即负载,同一时刻服务端收到的请求数量,其中单位时间内成功处理的请求数量即吞吐量,吞吐量越大,性能越好。
响应时间和吞吐量是衡量应用性能好坏较重要的两个指标。对于绝大多数应用,刚开始的时候,响应时间较短;随着负载的增大,吞吐量上升,响应时间也逐渐变长;当负载超过某一个值之后,响应时间会突然呈指数级放大,同时吞吐量也应声下跌,应用性能急剧下降。
2 性能测试的目的
了解了应用性能变化的普遍规律,性能测试的目的也就有了答案:针对某一应用,找出响应时间和吞吐量的量化关系,找到应用性能变化的临界点。你可能会问,知道了这些有什么用呢?在我看来,至少有3个层面的好处:
第一,有的放矢,提高资源利用率。性能测试的过程就是量化性能的过程,有了各种性能数据,你才能对应用性能进行定量分析,找到并解决潜在的性能问题,从而提高资源利用率。
第二,科学的进行容量规划。找到了应用性能变化的临界点,也就很容易找到单节点的性能极限,这是进行容量规划的重要决策依据。比如某一应用在单节点下的极限吞吐量是2000 QPS,那么面对10000 QPS的流量,至少需要部署5个节点。
第三,改善QoS(Quality of Service)。很多时候,资源是有限的,面对超出服务能力的流量,为了增加QoS,必须做出取舍(比如限流降级,开关预案等),应用性能数据是设计QoS方案的重要依据。
技术新人如何学习自动化软件测试?
合肥达内软件测试培训机构怎么样?
青岛软件测试培训学校哪家强?
如何做好软件测试工作?
大专学历在市场上能够找到软件测试的工作吗?
计算机软件考试有哪些学习内容?
更多培训课程: 哈尔滨软件测试 更多学校信息: 哈尔滨香坊区常青达内IT教育培训 咨询电话: