导言

做测试的小伙伴应该都知道,性能测试在软件的质量保证中起着重要的作用,它包括的测试内容也丰富多样。说起性能测试,难免会给人一种高深的感觉,其实性能测试的繁简、难易,也需要看你的测试目标、测试目的以及使用的测试工具等各种条件的影响。本期专访小编有幸采访到资深性能测试专家王磊先生,让他来和我们谈谈性能测试涉及的IT知识、角色、视角、流程及面临的挑战。

专访内容

1、51Testing:王磊老师您好,很荣幸今天能与您进行一次深入的交流,您从事测试工作多年,能否简单分享一下您在测试领域的工作经验?和您对软件测试这个领域的理解?

我是大学毕业就开始从事测试方面的工作,算起来已经有12年了。先后经历了几家不同类型和性质的公司。有传统行业的、有第三方评测的、也有互联网行业的。开始是做功能测试,逐步的熟悉测试行业的概念和相关流程。在有一定的经验后,个人发现Linux越来越流行和重要,因此就主动自学相关命令和概念。随着个人经验的增长,逐步觉得提升越来越慢了。因此又主动承担公司的性能测试,这个过程也是自学的。当时资料比较少,理解和学习起来非常的困难。这也是我后来录制了软件性能测试课程的最主要原因。希望将自己学习时的疑惑和重要知识点都一次性的讲解出来,让初学者更快的入门。

之后又由于公司的需要,进行自动化方面和安全方面的学习。而当时测试组又将整个测试环境服务器自己维护,为了更充分利用资源,我自学了VMware虚拟化。以上我后来也总结了一下,很多技能的接触并非我最开始就去做的,许多都是公司或者组内需要才开始着手。但一定不要怕困难,主动承担,受益的终将是自己......[详情]

2、 51Testing:您说的很有道理,想要深入地做测试,就必须提升测试技术。有会员从事功能测试多年,有些怀疑测试的价值到底在什么地方,您对此有何看法?

这个问题很多大神已经回答过了。我个人认为也没有100%正确的答案。价值是与时俱进的。例如智能手机崛起前的万能充,几乎人手一个,但现在呢?几乎啥都干不了。现在也没人用了。现今中国软件行业也是如此,如果AI能写出无bug的程序,不仅测试人员,我看大部分研发人员的价值也会大打折扣。现今的阶段就是,绝大部分公司的软件系统不经过测试直接上线必定会产生严重的问题,这就是价值所在。所以与其担心这种所谓的价值,到不如继续提升自身的技能。

3、 51Testing:那对于只有手工黑盒测试经验,想要转型到自动化性能测试的同学,要如何设定学习路线呢?

首先需要学习一门程序语言。例如Java或者Python。毕竟自动化还是需要测试人员编写一定量的代码。同时,对于单元测试框架Junit也建议了解其基本使用。了解Junit并不完全为了做单元测试,而是因为很多框架均是基于Junit的方式、思想甚至直接使用Junit的。之后就是有针对性的学习一款自动化测试工具。例如webdriver等。

对于性能测试来说建议先从性能测试工具入手,通过工具的学习快速进入这个领域而不是长时间停留在概念上。在可以完成基本的性能测试项目后,进行专项的深入学习,例如存储、数据库、网络、中间件等等。

4、 51Testing:您作为性能测试的大牛是如何看待现在性能测试人员的现状?性能测试人员在企业中是否有很好的发展前景?

目前,设置专职性能测试岗位的企业不多。即使部分企业有,在实际工作中负责的也未必全是性能测试工作。也有可能是包括功能测试、自动化等等。规模不大的企业甚至干脆就不做性能测试了。现在的企业更需要复合型人才。学习性能测试一方面可以让我们在未来的职场中更有优势,另一方面,性能测试涉及的领域广,无形当中提升对计算机体系的理解,提升个人技能。同时,我建议性能测试的人员也参与功能测试。这样才能更深入的理解产品需求,才能更准确的把握好性能指标和场景,准确的开发出性能测试脚本。

5、 51Testing:您上面提到学习性能测试可以让我们在未来的职场中更有优势,以某一具体项目为例,如何开展一次全面的性能测试,具体的流程都有哪些?测试人员对性能场景规划,设计,执行及结果分析应该如何恰当的落实到每个具体环节中?

熟悉性能测试需求,编写性能测试计划,工具选型,开发性能测试脚本,搭建测试环境,准备测试数据,设计性能测试场景用例、执行性能测试,收集并分析测试结果,协助研发人员定位和分析问题,编写测试报告等等。

精致的性能报告我的理解是不仅格式要美观,更重要的是数据要充分,做到有理有据。同时报告中要包括整个性能测试的过程和发现的问题等等。具体的报告模板不同公司要求不同......[详情]

6、 51Testing:那在进行性能测试的过程中,要如何借助相应的性能测试工具,快速定位系统的瓶颈,找出问题所在?

这是个老生常谈的话题了。每个人都清楚,性能测试需要一方面暴露被测系统的性能问题,如果能进一步定位问题将更大的体现测试人员的价值。对系统进行测试和医生给病人看病一样。经验老道的医生和初出茅庐的医生对同一份检测结果可能给出不同的结论。系统明明已经性能很差了,问题就在那里,而我们却无法发现和定位,这说明我们对知识和技能的积累没有达到“老医生”的程度......[详情]

7、 51Testing:您是否能和我们分享一下您用过的性能测试工具中性价比最高的是哪个?

推荐Jmeter,当然LoadRunner也不错,只不过个人认为11以后的版本实在是太重了。用过这两个后,其他的工具掌握起来一点都不难,因为很多经典的概念和方法等都是一致的。例如关联、参数化等。

8、 51Testing:那如果公司里面没有人配合做性能测试,要想达到测试目标的话,需要自己具备哪些技能?

对基本的性能测试概念的理解、开发正确的性能测试脚本、执行暴露问题即可。当然这是初级阶段。而就这些,对于一个完全没有接触过的同学来说,也可以衍生出大量需要掌握的知识和技能。这也不是一两句话可以完全说清楚的。可以阅读相关性能测试书籍、同时先学习一款性能测试工具的使用,边摸索边进行,循序渐进......[详情]

9、 51Testing:在公司做性能测试始终无法确定用多少并发用户去测,只能估计一个总用户数然后按照80-20原则去计算时,要如何进行测试?

许多公司都这样。在没有任何参考情况下80-20原则不失一个权宜之计,同时做了总比什么都不做强。

在有一定业务数据积累后,即可通过分析并确定。例如系统在上线后,会定期统计PV和UV数据,而这就是一个数据依据。我们要策划一次新活动,市场或运营一般会给出本次活动的期望或预期,例如本次活动将给系统提高30%的活跃度......[详情]

10、 51Testing:一般在大型活动或新产品上线前都会进行压力测试,该如何设计场景从而尽可能的模拟真实用户的行为来实现最终目的?

既然是模拟,就没有办法100%的完全和线上完全一致。性能测试本身也不是一个精确的测试。当然现在部分有条件的大公司也有全链路压测,这里的全链路压测是直接使用了生产环境来作为性能测试环境。解决了测试环境和生产环境不一致的问题......[详情]

11、 51Testing:随着移动设备的普及和使用范围越来越广,APP的性能测试变的越来越重要。对于没有接触过移动端APP性能测试的同学,如果想要学习移动端APP性能测试难点分别有哪些?

关于移动端的性能测试这个提法经常容易混淆,因为这个概念从不同的角度可以有不同的理解。

从服务端对移动端请求的响应这个角度来看,其和传统的性能测试没有区别。底层都是通过协议进行交互,而其表层是移动端的APP还是浏览器不是这种类型的性能测试所关心的。基于服务端的APP性能测试的方法也和传统的服务端的性能测试没有什么区别。其过程仍然是对性能需求的分析和理解、识别出性能点并量化、执行并分析结果、调优......[详情]

12、51Testing:Web性能测试一直是一个热议的话题,您觉得WEB性能测试是否受带宽的影响,如果判断当前带宽是否满足现有的业务量需求?

通过查看网卡流量占用率。如果在一定并发压力下达到80%-90%都将是一个十分危险的数据。而根据网络行业的经验,一般网络流量达到60%即需要进行升级。1000M的网卡,其理论上可以传输1000/8=125M的数据,而这仅仅是理论值。我们都知道,HTTP协议是有损耗的,越是高层的协议其损耗越大,因为数据从7层到物理层,经过每一层都会有网络协议将自己的协议头加在你需要真正传输的数据上。这是协议工作需要的,也是没办法的......[详情]

13、51Testing:接口测试也属于性能测试范畴的一部分,能否结合具体案例说明下接口测试的切入点?如何设计?执行后如何对结果进行分析?

对于接口的性能测试,在设计测试用例时需要考虑基础数据量、接口请求参数的参数化、以及接口的原子性等。

对于接口数据来说,例如登录接口,如果系统中基础用户数据是空的和表中已经有1000万的基础数据,结果肯定是不同的......[详情]

14、 51Testing:在实际工作中我们经常会对两种类型架构进行测试:BS和CS类型,现在常见的都是BS类型系统的性能测试,CS类型的系统性能测试比较少见,您是否有CS类型的工具推荐呢?

性能测试关注的是协议层面。所以无论是BS的还是CS的,只要弄清楚底层交互协议即可。至于表层是什么形式并不关心。即使是C#开发的客户端,如果底层数据交互是HTTP的,那测试方法都是一样的......[详情]

由于时间关系,本次访谈正式结束,非常感谢王磊老师抽出宝贵时间参加我们的访谈和对小编工作的支持,让小编对性能测试领域了解了不少,相信这次的内容也将会给测试员带来颇多的收益。希望以后能有更多的机会,能让您分享测试心得!
大家如果还有其他问题,也可以在评论中留言~


专家介绍

王磊

话题回顾:如何从功能测试过渡到性能测试?

回顾精彩内容
有多年大型项目测试经验,拥有包括大型站点、客户端、网络测试、军用软件测试、第三方软件测评等多种类型项目测试经验。目前主要负责性能测试相关工作,同时对自动化测试、安全测试也有一定涉猎。负责过包括广州亚运会官方票务网站、广州地铁5号线等项目的性能测试。

专家在线视频

评论


关于我们 | 广告服务 | 招聘信息 | 会员注册 | 联系我们 | 站点地图 | | 沪ICP号05003035号
意见反馈/投稿邮箱:editor#51testing.com(请将#修改为@)
Copyright©51testing.com 2003-2017 All Rights Reserved