APP下载

软件系统性能测试概论

2018-10-21潘辉辉

大科技·C版 2018年4期
关键词:性能测试测试技术软件测试

潘辉辉

摘 要:万物互联IOT时代的到来,软件系统日益复杂,为确保可支撑数以万计的终端,软件系统性能测试尤其重要。本文简要阐明如何更好的提升软件系统性能测试水平,主要从两方面进行阐述,第一:性能测试流程保障;第二:性能测试专业知识技能。

关键词:软件测试;性能测试;流程规范;测试技术

中图分类号:TP311.53 文献标识码:A 文章编号:1004-7344(2018)11-0247-01

引 言

性能测试是利用自动化测试程序模拟海量用户对系统进行业务访问操作,验证系统能够承受负载的能力。当前互联网系统高速发展,软件系统进入大数据、云时代,软件系统的功能规模越来越庞大,性能测试不仅要做而且要深入做。然而性能测试做深、做精并非易事,那么我们该如何把性能测试做深、做精呢?

1 性能测试流程保障

性能测试流程保障主要是规范测试过程中的关键活动及文档输入、产出。指导性能测试项目的实施,从管理上保证性能测试质量。

性能测试主要流程涵盖点:需求分析阶段、计划方案编写阶段、测试用例数据准备阶段、测试执行实施阶段、编写测试报告及知识技能总结。

性能需求分析阶段的主要任务是对原始需求进行分析,获取真实有效的性能需求数据,性能需求分析至关重要,其决定性能测试是否有效。大多数情况下性能测试人员需引导需求人员给出具体的性能需求数据,并对这些数据加以分析,提炼有效的指标。例如需求人员提出的原始性能需求为“测试系统是否支持3500个用户并发”,此条需求是有问题的,因为并发用户数与响应时间挂钩,3500个并发用户平均响应时间为1s和平均响应时间为30s,站在用户角度,体验有很大差异。诸如此类的需求问题一定要分析明确,不充足的性能需求分析将直接导致性能测试工作失败。性能测试需求分析包括但不局限于:获取系统架构设计、期望的性能指标、测试基础数据量、测试软硬件环境等详细需求。

测试计划(或测试方案)主要包含测试目的、测试内容范围及对应的方法策略、测试环境软硬件部署方式、测试时间安排、测试程序选型等。相对于测试计划,测试方案应突显测试内容及其测试方法。

测试准备阶段主要包括设计性能测试用例、测试基础数据准备及开发对应的脚本;测试用例主要描述本次性能测试进行的场景,测试场景要尽可能真实的模拟系统线上的负载,得到更有效的数据,测试场景要明确压测时业务分配比例、业务量、业务时间及不同业务所分配的虛拟用户数、执行比例等;测试脚本编写主要指开发和测试场景对应的脚本,如Ixchariot性能脚本。

实施执行阶段主要完成性能测试用例的执行,业务指标、软硬件指标监控记录及性能诊断优化。通过性能测试工具执行性能测试用例中的场景,实时记录执行过程中的结果数据如TPS、响应时间、并发用户数、失败率、CPU/内存/磁盘/网络占用率等。同时分析并记录测试过程中所识别系统的性能弱点,甄别系统的性能问题。

最后是根据记录的测试数据,编写产品性能测试报告。总结性能测试过程中的知识技能及解决相关问题的经验,提出过程改进建议。

2 性能测试技术

性能测试技术体系是从技术角度制定性能测试实施过程中关键技术规范,更好的对系统进行性能测试。对性能测试实施过程中关键的技术进行分析总结如:系统测试环境、测试模型及策略、数据量、测试脚本、监控工具及使用、瓶颈分析及调优、性能测试分布式压测工具。

测试环境主要包含硬件环境及软件环境,搭建环境是性能测试的一个难点。硬件测试环境搭建需注意以下几点:环境架构与生产环境物理架构完全相同;测试环境机型与生产环境物理机型尽量相同;测试环境基础数据量与生产环境基础数据量需在同一个数量级上。只能减少测试环境机器台数,且需同比例缩小。理想的测试环境硬件配置与生产环境一致,若资源不满足可为生产环境的1/2,1/4等。软件测试环境需注意以下几点:系统软件版本相同,如操作系统Linux版本、中间件Nginx版本、数据库Oracle版本等;相关参数配置与生产环境相同,如系统ipv4配置参数、中间件Tomcat线程池配置参数、数据库连接池配置参数、应用配置参数。

工欲善其事必先利其器,针对性能测试,选择合适的测试工具可以让性能测试事半功倍。WEB服务类的的系统可选择使用LoadRunner,其专业、稳定、高效。若是考虑产出投入比也可选择开源工具JMeter。网络设备类的性能测试可选择IxChariot、iperf、trex等,最好专人负责相关测试工具的深入研究。

测试脚本是根据测试用例编写相应的测试代码。编写测试代码需注意以下几点,如并发集合点设置、服务端返回值检查点设置、事务的设置以及脚本变量的参数化,同时要注意其编码规范及编码质量,脚本不要出现诸如申请内存不释放、打开文件不关闭等情况。

数据监控技术是识别整理测试监控指标及其对应监控工具、方法。硬件资源监控如CPU/内存/磁盘/网络占用率,软件资源监控如中间件Tomcat、数据库MySQL等。通常Linux环境下使用Nmon对服务硬件资源监控;使用MONyog对Mysql进行远程监控。监控哪些指标以及Nmon、JConsole、Jstat、JMap、MONyog等常用监控工具使用方法均在数据监控技术范畴,最好形成标准文档供性能测试时参考使用。

瓶颈分析及调优技术是根据相关测试结果数据及测试资源监控数据找出性能瓶颈点,并对其调优。性能测试一般的调优方式是先优化硬件后调整软件,先易后难。即先确定系统性能瓶颈不是由于硬件资源如网络、内存、磁盘使用率引起的,然后排查系统瓶颈是否是由于应用中间件配置、数据库配置等引起;然后再确定程序编码是否有问题,如是否使用表单压缩、是否使用局部刷新、是否减少大对象引用;最后再确认性能问题是否是由于系统架构引起。常见的性能测试问题瓶颈、分析调优方法亦需要文档化。

3 结 语

性能测试是一项综合性的测试工程,不仅需要性能测试流程管理体系做保障更需要性能测试技术体系做支撑。二者相辅相成共同保证产品性能指标,为软件质量打下强力的基础。

参考文献

[1]陈志勇,马利伟,万 龙,著.全栈性能测试修炼宝典-Jmeter实战.

[2]于 涌,王 磊,曹向志,高 楼,于 跃,著.精通软件性能测试与LoadRunner最佳实战.

收稿日期:2018-3-15

猜你喜欢

性能测试测试技术软件测试
软件测试方向人才培养“1+X”融合研究
大数据背景下软件测试技术的发展
关于 Web 应用系统的软件测试的研究
Hadoop性能测试自动化研究
大数据测试技术的特点及前景研究
现代测试技术在机械类本科测试技术教学中的渗透
常用电化学研究方法及技术
关于Java软件的性能测试分析
软件测试发展现状及前景的探讨
基于虚拟仪器的测试技术融合性教学