性能测试是产品测试流程的必经之路,产品性能的好坏不但关系到产品的用户体验,对于像电子商务这一的应用来说,性能的好坏直接关系到客户的网站是否有好的用户忠诚度,从而也影响到订单转化率等跟客户盈利直接相关的指标。
  客户与用户
  客户指的是购买我们产品的企业,他们购买了产品之后,经过定制上线,展示给终的用户来使用。因此客户非常关心用户的使用感受,因为这直接决定他们的网站或者终端是不是受欢迎,能不能留住用户。
  对于一个应用服务的性能来说,客户的关注点:
  页面/客户端的响应时间: 直接影响终用户的使用体验,在很大程度上影响用户忠诚度
  服务器的吞吐量:系统每小时处理的业务量
  大并发用户数:在响应时间合理的情况下,能够承受的并发用户数
  是否能稳定的长期运行,大数据规模等。
  如何理解性能测试?
  简单的说,是给系统一些压力,看系统跑得快不快,好不好。说得文一些,是让系统工作在一定的负载状态下,把系统工作的性能指标与期望的性能指标相比较。
  性能测试策略和方法的出发点,是要模拟客户对系统的访问行为,包括并发、压力、长时间的访问等。
  性能测试的分类:
  客户端性能测试:关注用户体验,即访问应用程序时的响应时间。
  服务器端性能测试:注重在不同负载条件下的应用程序的健壮性。
  性能测试的类型:
  压力测试
  抢购,是一种短时间内把系统负载压到极限的例子,测试时,一般通过压力测试来模拟。
  压力测试主要考察让系统运行在比较大的负载条件下的性能表现。可以发现系统工作在多任务并发情况下可能出现的性能问题。由于压力测试下系统工作在非常高的负载情况下,所以衡量性能运行指标一般为吞吐率和错误率,而不包括响应时间。
  压力测试的目的:
  发现并解决在并发、长时间运行或者大量数据情况下才出现的系统缺陷,如数据库死锁,代码级死锁,内存泄漏等。
  在指定并发用户数下是否能达到吞吐率目标。
  从上述两个方面可以得知,压力测试按照目的的不同可以分成两类:
  系统的性能瓶颈:通过标准是系统在CPU运算能力饱和状态下(CPU占有率大于95%)的吞吐率和错误率。
  系统的崩溃点:不关心具体的吞吐率和错误率指标,关注考察吞吐率、错误率指标与负载关系曲线。
  --->什么是吞吐率?
  通常吞吐率是指应用系统在单位时间内实际处理的交易数量(交易吞吐率)或页面点击数量(页面点击吞吐率)。
  压力测试通过的标准:
  在承受指定负载的前提下,系统的吞吐率是否达标、并发用户数是否达标、出错率是否达标。
  吞吐率测试往往可以用于产品新旧版本之间的比较试验。比如,在新版本增加某个新功能之后,你想验证新功能的引入会不会对性能产生负面的影响,可以通过在相同的硬件条件下做吞吐率的比较试验来确认。
  响应时间测试:
  响应时间测试是另一个常见的衡量系统快慢的运行指标。一般来说,响应时间越短越好。
  响应时间测试测的是在正常负载状态下,被测系统的服务器端和客户端响应时间(不考虑外部网络传输影响)。即,响应时间的测试结果更接近通常状态下系统真实性能表现。
  响应时间测试的目的:正常负载(CPU使用率50%左右)前提下,保证服务器或者客户端的操作响应时间不超过规定的标准。
  --->网页响应时间的组成:在网络上传输数据、在服务器端处理、服务器将响应数据传回到客户端、在浏览器中显示。
  在网络上数据传输的时间取决于页面数据量的大小、网络速度和网络上的拥挤程度。
  在浏览器中显示的时间取决于客户端程序(JavaScript, Dojo,Flash等)的复杂程度以及运行浏览器的客户计算机的处理速度。