随着浏览器功能的不断完善,用户量不断的攀升,涉及到web服务的功能在不断的增加,对于我们测试来说,我们不仅要保证服务端功能的正确性,也要验证服务端程序的性能是否符合要求。那么性能测试都要做些什么呢?我们该怎样进行性能测试呢?
  性能测试一般会围绕以下这些问题而进行:
  1. 什么情况下需要做性能测试?
  2. 什么时候做性能测试?
  3. 做性能测试需要准备哪些内容?
  4. 什么样的性能指标是符合要求的?
  5. 性能测试需要收集的数据有哪些?
  6. 怎样收集这些数据?
  7. 如何分析收集到的数据?
  8. 如何给出性能测试报告?
  性能测试的执行过程及要做的事儿主要包含以下内容:
  1. 测试评估阶段
  在这个阶段,我们要评估被测的产品是否要进行性能测试,并且对目前的服务器环境进行粗估,服务的性能是否满足条件。
  首先要明确只要涉及到准备上线的服务端产品,需要进行性能测试。其次如果产品需求中明确提到了性能指标,那也必须要做性能测试。
  测试人员在进行性能测试前,需要根据当前的收集到的各种信息,预先做性能的评估,收集的内容主要包括带宽、请求包大小、并发用户数和当前web服务的带宽等
  2. 测试准备阶段
  在这个阶段,我们要了解以下内容:
  a. 服务器的架构是什么样的,例如:web服务器是什么?是如何配置的?数据库用的是什么?服务用的是什么语言编写的?;
  b. 服务端功能的内部逻辑实现;
  c. 服务端与数据库是如何交互的,例如:数据库的表结构是什么样的?服务端功能是怎样操作数据库的?
  d. 服务端与客户端之间是如何进行交互的,即接口定义;
  通过收集以上信息,测试人员整理出服务器端各模块之间的交互图,客户端与服务端之间的交互图以及服务端内部功能逻辑实现的流程图。
  e. 该服务上线后的用户量预估是多少,如果无法评估出用户量,那么可以通过设计测试执行的场景得出这个值;
  f. 上线要部署到多少台机器上,每台机器的负载均衡是如何设计的,每台机器的配置什么样的,网络环境是什么样的。
  g. 了解测试环境与线上环境的不同,例如网络环境、硬件配置等
  h. 制定测试执行的策略,是需要验证需求中的指标能否达到,还是评估系统的大处理能力。
  i. 沟通上线的指标
  通过收集以上信息,确定性能测试用例该如何设计,如何设计性能测试用例执行的场景,以及上线指标的评估。
  3. 测试设计阶段
  根据测试人员通过之前整理的交互图和流程图,设计相应的性能测试用例。性能测试用例主要分为预期目标用户测试,用户并发测试,疲劳强度与大数量测试,网络性能测试,服务器性能测试,具体编写的测试用例要更具实际情况进行裁减。
  用例编写的步骤大致分为:
  a. 通过脚本模拟单一用户是如何使用这个web服务的。这里模拟的可以是用户使用web服务的某一个动作或某几个动作,某一个功能或几个功能,也可以是使用web服务的整个过程。
  b. 根据客户端的实际情况和服务器端的策略,通过将脚本中可变的数据进行参数化,来模拟多个用户的操作。
  c. 验证参数化后脚本功能的正确性。
  d. 添加检查点
  e. 设计脚本执行的策略,如每个功能的执行次数,各个功能的执行顺序等
  4. 测试执行阶段