全栈性能测试修炼宝典JMeter实战---初体验(一)

   性能测试工作实质上是利用工具去模拟大量用户操作来验证系统能够承受的负载情况,找出潜在的性能问题,分析并解决;找出系统性能变化趋势,为后续的扩展提供参考。

  一般公司在做出确定可盈利的产品后,会对产品进行再次开发,来达到这个性能要求。所以第一个产品的性能要求和真正的推广产品的性能要求不是一个量级,企业发展到一定程度就得关注性能,重视性能。

典型的系统性能涉及的方面,需要多个工种,如图所示(架构师、开发、系统管理员、DBA、测试等),需要一起协调才能完成工作,每个环节都可能是瓶颈,造成阻塞。

全栈性能测试修炼宝典JMeter实战---初体验(一)

1、黑盒测试只关心应用程序的单步响应时间,性能好坏就看应用时间多少,也就是数据流经过服务器/服务器集群经过网络传输后往返的时间总和

2、开发角度,架构合理性、数据库设计合理性、代码、内存使用方式、线程使用方式、系统资源是否有恶性不合理竞争。

3、系统管理员,硬件资源利用率,JVM,DB,哪些硬件提供性能,能否支持7*24小时服务,扩展,兼容,最大容量。 运维一般关注服务器的硬件资源利用率情况,如内存是否有可用空间,CPU是否超过70%,网络是否通畅,I/O是否存在瓶颈。

4、性能测试角度,服务器硬件性能,建立性能通过模型,对开发代码啊框架和硬件框架进行性能分析,生产环境的配置和优化,制定性能目标,特定的性能分析。

 

负载工具是帮助我们来模拟负载的,对于性能测试来说,工具并不是核心,分析、评估、找出性能问题才是核心,这些是主观因素;工具是可挂按因素。大家本着简单,稳定,专业,省钱的原则来选择工具。

性能测试术语:

1、负载:模拟业务操作对服务器造成压力的过程,比如模拟100个用户进行发帖。

2、性能测试:模拟用户负载来测试系统在负载情况下,系统的响应时间,吞吐量等指标是否满足性能要求。

3、负载测试:在一定软硬件环境下,通过不断加大负载来确定在满足性能指标情况下能够承受的最大用户数。找出系统性能的拐点,给予生产环境规划建议。这里的性能指标包括TPS(每秒事务数)、RT(事务平均响应时间)、CPU Using(CPU利用率)、Mem Using(内存使用率)等软硬件指标。

4、配置测试:为了合理的调配资源,提高系统运行效率,通过测试手段来获取,验证,调整配置信息的过程。通过不同配置反应不同性能,从而为设备选择,设备配置提供参考。

5、压力/强度测试:通过高负载的手段来使服务器资源处于极限状态,测试系统在极限状态下长时间运行是否稳定,确定是否稳定的指标包括TPS,RT,CPU Using,MemUsing等

6、稳定性测试:在一定软硬件环境下,长时间运行一定负载,确定系统在满足性能指标的前提下是否运行稳定。一般我们会在满足性能要求的负载情况下加大1.5到2倍的负载量进行测试。

7、TPS:每秒完成的事务数,通常指每秒成功的事务数,性能测试中重要的综合性性能指标。一个事务是一个业务度量单位,有时一个事务会包含多个子操作,但为了方便统计,我们会把这多个子操作计为一个事务。

8、RT/ART:响应时间/平均响应时间,指一个事务花费多长时间完成,为了使这个响应时间更具有代表性,会统计更多的响应时间然后获取平均值,即得到了事务平均响应时间,为了方便大家通常会直接用RT来代替ART.

9、PV:每秒用户访问页面的次数,此参数用来分析平均每秒有多少用户访问页面。

10、Vuser虚拟用户:模拟真实业务逻辑步骤的虚拟用户,虚拟用户模拟的操作步骤都被记录在虚拟用户脚本里。

11、Concurreny并发:并发分为狭义和广义。狭义的并发,即所有的用户在同一时刻做同一件事情或操作,这种操作一般针对同一类型的业务,或者所有用户进行完全一样的操作,目的是测试数据库和程序对并发操作的处理。广义的并发,即多个用户对系统发出了请求或者进行了操作,但是这些请求或操作可以是不同的。狭义强调对系统的请求操作是完全相同的,多适用于性能测试,负责测试,压力测试,稳定性测试场景;广义并发不限制对系统的请求操作,多适用于混合场景,稳定性测试场景。

12、场景:性能测试过程中为了模拟真实用户的业务处理过程,在loadrunner中构建的基于事务,脚本,虚拟用户,运行设置,运行计划,监控,分析等的一系列动作的集合,称之为性能测试场景。

13、思考时间:模拟正式用户在实际操作时的停顿时间间隔。

14、标准差:该标准差根据数理统计的概念得来,标准差越小,说明波动越小,系统越稳定,反之越大。波动大,说明系统不稳定。响应时间标准差,TPS标准差等。

全栈性能测试修炼宝典JMeter实战---初体验(一)