51Testing专访王磊:深度解析性能测试

发表于:2017-9-25 09:06

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:51Testing    来源:51Testing软件测试网原创

  7、 51Testing:您是否能和我们分享一下您用过的性能测试工具中性价比最高的是哪个?
  王磊:推荐Jmeter,当然LoadRunner也不错,只不过个人认为11以后的版本实在是太重了。用过这两个后,其他的工具掌握起来一点都不难,因为很多经典的概念和方法等都是一致的。例如关联、参数化等。

  8、 51Testing:那如果公司里面没有人配合做性能测试,要想达到测试目标的话,需要自己具备哪些技能?
  王磊:对基本的性能测试概念的理解、开发正确的性能测试脚本、执行暴露问题即可。当然这是初级阶段。而就这些,对于一个完全没有接触过的同学来说,也可以衍生出大量需要掌握的知识和技能。这也不是一两句话可以完全说清楚的。可以阅读相关性能测试书籍、同时先学习一款性能测试工具的使用,边摸索边进行,循序渐进。掌握基本性能测试流程后,即可迈向更高的阶段。我以前在51testing跟大家做过一次交流,里面回答的一些问题应该对该问题有一些补充。具体可见>>http://bbs.51testing.com/thread-1048873-1-1.html

  9、 51Testing:在公司做性能测试始终无法确定用多少并发用户去测,只能估计一个总用户数然后按照80-20原则去计算时,要如何进行测试?
  王磊:许多公司都这样。在没有任何参考情况下80-20原则不失一个权宜之计,同时做了总比什么都不做强。
  在有一定业务数据积累后,即可通过分析并确定。例如系统在上线后,会定期统计PV和UV数据,而这就是一个数据依据。我们要策划一次新活动,市场或运营一般会给出本次活动的期望或预期,例如本次活动将给系统提高30%的活跃度等等。依据这些再加上系统平时承受的负载,推测出系统需要至少承受的负载。

  10、 51Testing:一般在大型活动或新产品上线前都会进行压力测试,该如何设计场景从而尽可能的模拟真实用户的行为来实现最终目的?
  王磊:既然是模拟,就没有办法100%的完全和线上完全一致。性能测试本身也不是一个精确的测试。当然现在部分有条件的大公司也有全链路压测,这里的全链路压测是直接使用了生产环境来作为性能测试环境。解决了测试环境和生产环境不一致的问题。通过负载生成机器向生产环境发送流量压力,这些流量被打标后,生产的系统是可以识别出来的。大家可以看到,这要求团队极大的投入。一般公司我看是无法做到的。对大部分公司来说,相对准确的测试只能通过对历史数据的积累和整合来作为参考,在这个参考数据下进行模拟相关的场景来对测试环境施压,通过被测系统的表现来判断是否满足需求。

  11、 51Testing:随着移动设备的普及和使用范围越来越广,APP的性能测试变的越来越重要。对于没有接触过移动端APP性能测试的同学,如果想要学习移动端APP性能测试难点分别有哪些?
  王磊:关于移动端的性能测试这个提法经常容易混淆,因为这个概念从不同的角度可以有不同的理解。
  从服务端对移动端请求的响应这个角度来看,其和传统的性能测试没有区别。底层都是通过协议进行交互,而其表层是移动端的APP还是浏览器不是这种类型的性能测试所关心的。基于服务端的APP性能测试的方法也和传统的服务端的性能测试没有什么区别。其过程仍然是对性能需求的分析和理解、识别出性能点并量化、执行并分析结果、调优等等。
  从APP端自身的性能来理解。APP性能测试可以指APP在大量monkey操作下是否稳定,是否存在闪退等等。甚至也可以包括APP基本耗电量、内存使用量等基本指标的测试。这种测试都需要测试人员对APP基本概念深入了解,对手机操作系统有一定的了解。
  因此,所谓的移动端APP性能测试,需要首先明白到底要做什么,之后进行相关的计划制定,明确需求等。

  12、 51Testing:Web性能测试一直是一个热议的话题,您觉得WEB性能测试是否受带宽的影响,如果判断当前带宽是否满足现有的业务量需求?
  王磊:通过查看网卡流量占用率。如果在一定并发压力下达到80%-90%都将是一个十分危险的数据。而根据网络行业的经验,一般网络流量达到60%即需要进行升级。1000M的网卡,其理论上可以传输1000/8=125M的数据,而这仅仅是理论值。我们都知道,HTTP协议是有损耗的,越是高层的协议其损耗越大,因为数据从7层到物理层,经过每一层都会有网络协议将自己的协议头加在你需要真正传输的数据上。这是协议工作需要的,也是没办法的。
  多说一句,数据在网络中传输的速度跟网络带宽是无关的。1000M跟100M比,其优势仅仅是同一时刻可以有多少数据进入线缆,一旦数据进入线缆后,例如从中国传输到美国,无论是100M还是1000M,其在线缆中的速度都是一样的。这是物理限制,与带宽无关。同时需要清楚的是,对性能影响最大的杀手是延迟,往往不是带宽。无论是TCP的三次握手、预热还是滑动窗口,其运行效率都取决于延迟而非带宽。有兴趣的同学可以研究下网络相关技术。这就是我前面说的,了解的越多,对问题的分析越有信心。

  13、 51Testing:接口测试也属于性能测试范畴的一部分,能否结合具体案例说明下接口测试的切入点?如何设计?执行后如何对结果进行分析?
  王磊:对于接口的性能测试,在设计测试用例时需要考虑基础数据量、接口请求参数的参数化、以及接口的原子性等。
  对于接口数据来说,例如登录接口,如果系统中基础用户数据是空的和表中已经有1000万的基础数据,结果肯定是不同的。
  对于接口来说,不同参数可能有不同程序路径处理,针对接口核心参加势必要进行参数化而不是对完全一样的请求进行压测。
  而对于所谓的原子性,我们需要考虑这个接口是否依赖其他接口或者状态。例如有些接口要拿到登录状态才能进行正常的业务处理。对于这种类型,也需要我们进行预先的铺垫例如获取合法的状态等。

  14、 51Testing:在实际工作中我们经常会对两种类型架构进行测试:BS和CS类型,现在常见的都是BS类型系统的性能测试,CS类型的系统性能测试比较少见,您是否有CS类型的工具推荐呢?
  王磊:性能测试关注的是协议层面。所以无论是BS的还是CS的,只要弄清楚底层交互协议即可。至于表层是什么形式并不关心。即使是C#开发的客户端,如果底层数据交互是HTTP的,那测试方法都是一样的。

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

版权声明:出自51Testing《专访王磊:深度解析性能测试》原创作品,转载时请务必以超链接形式标明本文原始出处、作者信息和本声明,否则将追究法律责任。

22/2<12
《2023软件测试行业现状调查报告》独家发布~

精彩评论

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号