1.背景介绍
性能测试平台是一款将性能测试执行、性能监控、数据分析和展示自动化起来的平台,尽可能的减少人工操作,提高效率。访问地址:http://qa.hz.netease.com/ptp
性能测试平台主要实现几个目标:
测试自动化,自动分发测试脚本、部署环境、执行测试、数据收集、数据集中分析,并生成结果报告。
资源集中管理,集中控制所有测试服务器和被测服务器,合理分配和调度资源,达到最大化利用。
持续集成,集成性能测试活动中的各个环节,对产品性能测试结果进行持续纵向和横向对比,关注产品性能变化趋势。
2.平台架构
主控机
负责安装测试工具、分发测试脚本和测试数据到各个负载机,部署性能测试环境。
负责安装监控工具到各个负载机和被测服务器。
启动负载机上的测试工具开始测试,启动负载机和被测服务器上的监控工具,进行全面资源监控。
全程检测测试是否正常,如果出错,抓取错误日志进行报警。
检测测试是否结束,成功结束后收集业务性能数据和监控数据到主控机。
对业务性能数据进行处理、绘制图表,对监控数据进行处理绘制图表。
负载机
作为测试客户端启动负载测试工具模拟虚拟用户对被测服务进行并发测试。
监控测试执行日志和资源使用情况。
被测服务器
被测服务环境安装和部署。
监控被测服务日志和资源使用情况。
3.工具支持
STAF
Software Test Automation Framework是由IBM开发的开源、跨平台、支持多语言并且基于可重用的组件来构建的自动化测试框架。STAF 为测试人员提供了一个端到端的自动化测试解决方案。各个服务端点(称作STAF客户端)是对等的,从一个端点可直接调用另一端点(在另一台机器运行的程序)提供的服务。服务是一系列功能的集合。STAF 本身是一个后台程序 (STAFProc),提供一种轻量级的分发机制,负责把请求转发给这些服务。
典型服务:
文件系统服务(FileSystem Service):内部服务,利用此服务,STAF 可以对文件系统进行操作,比如复制,删除,查看等操作。
程序调用服务(Process Service):内部服务,利用此服务,STAF 可以调用外部程序。
压缩服务(Zip Service):外部服务,提供了压缩和解压的功能。
Ping服务(Ping Service):内部服务,类似于操作系统的 ping 功能,用于检测远程的 STAF 是否运行。
Grinder
性能平台底层负载性能测试工具Grinder。是一个JavaTM负载测试框架,支持分布式测试,且是开源的。官方访问地址:http://grinder.sourceforge.net/
优点:
Jython脚本扩展性好,能模拟绝大多数复杂测试场景。
多样化的协议支持,HTTP、JDBC、JavaAPI等。
良好的性能表现,与Jmeter相比在某些场景下有优势。
Perfease
Perfease是从后台组blogbench中抽取的一款Linux服务器资源监控工具,监控全面、轻量级、性能损耗小。
内网下载地址:http://doc.hz.netease.com/pages/viewpage.action?pageId=16782036
主要监控工具和指标:
1. Vmstat:CPU使用率、上下文切换、中断次数、磁盘IO、内存使用情况等。
2. Iostat:kB_read/s、kB_wrtn/s、avgrq-sz、avgqu_sz、await、svctm、%util。
3. Top:Load average、Tasks、CPU、Mem、Swap、进程(VIRT、RES、%CPU、%MEM)。
4. Ksar: linux,mac and solaris。 官网:http://sourceforge.net/projects/ksar/ 。
最新内容请见作者的GitHub页:http://qaseven.github.io/