分布式测试要点总结zt
鉴于分布式系统的特点,因此对于此类系统的测试也有特殊的要求,比如实时性,动态性,分布性, 以及系统的容错能力和数据的一致性。 分布式系统的功能测试: 在整个测试的执行过程中,我们需要注意的一个重点问题是对测试结果的分析。分布式测试的重点 在于对后端服务器集群的测试,测试完以后可以从以下几方面来分析判定系统中是否存在bug: 1. 观察前端应用的返回结果。分两种情况来考虑: a. 按照前端应用业务功能点及流程进行操作,观察返回结果是否符合业务方的需求预期; b. 操作后端的服务器(通常是重启、宕机、断网等操作),观察前端应用的返回结果是否符合系 统的设计需求。 2. 分析服务器日志。在功能测试的过程中,为了便于分析日志和定位问题,在启动服务器的时候, 一般将日志级别设置成Debug级别(最低级别)。 3. 分析操作系统的一些重要信息。通过分析操作系统的重要数据信息进行分析,从而来诊断服务器 程序是否存在异常,linux系统下常用的命令有:top命令、netstat命令及sar命令等。 4. 借助其他分析工具。例如判断服务器程序内存泄露问题,常借助于内存检测工具来分析。linux 环境下,常用Valgrind(官网:http://www.valgrind.org/)来检测内存。
分布式系统的压力测试和性能测试 难点:数据准备和性能或压力测试工具 基于这两点我们需要做的是,深入分析系统的架构设计,设计好测试场景。性能或压力测试最好根据 测试的需求来开发具体的测试工具。这时要重点关注两个问题:第一,一些关键数据的收集方式与计算,例 如,TPS(每秒请求数)、Throughput(吞吐量)计算的准确性;第二,要保证性能测试工具的性能。(降低 测试的成本) 分布式系统的自动化测试 测试结果验证复杂,对于分布式系统的自动化测试,需要通过测试脚本来收集各种测试结果数据以验证 测试结果的正确性,可以将数据收集部分模块化。例如,设计个日志分析模块,主要复杂从服务器应用程序 的日志中收集相应的数据进行对比验证。(自动化测试框架:STAF,官方网站:http://staf.sourceforge.net/