面向云服务的测试方法——性能评测

本文涉及的产品
性能测试 PTS,5000VUM额度
简介: 软件(含云系统)本身的复杂性决定了在软件的整个生命周期中风险的大量存在,而严重风险可能会导致整个项目的失败。因此,对软件系统进行全方位评测越来越引起人们的重视。

软件(含云系统)本身的复杂性决定了在软件的整个生命周期中风险的大量存在,而严重风险可能会导致整个项目的失败。因此,对软件系统进行全方位评测越来越引起人们的重视。

性能评测

大多软件都有其特殊的性能或效率目标要求,说明在一定的工作负荷和格局分配条件下,多数软件都具有响应时间及处理速度等特性。

性能测试概述

性能测试主要是通过获取与行为相关的指标数据,如响应时间、系统容量、吞吐量和限制等指标来评估测试对象的性能。
性能测试的主要目标体现在以下几个方面:

1)系统并发性。在系统可以接受的性能水平以及濒临崩溃的临界情况下,系统可以支持的并发用户数目。
2)系统瓶颈。整个系统中瓶颈所在位置。
3)系统可扩展性。系统具备多大规模就可实现设计目标,并展示出好的系统性能。

系统性能评测的关注点集中在评测指标和评测方法上,根据预先确定的评测指标,针对不同的评测对象,设计相应的评测方法进行性能测试。在传统的性能测试中,常用的性能评测指标包括以下几方面:

1)响应时间、从用户发出请求到收到服务器的响应所经历的延迟。
2)最大并发用户数。系统运行过程中所能承受的同时向服务端发送请求的最大用户数。
3)吞吐量。在某一个特定的时间单位内系统所处理的用户请求数量。一般来说,吞吐量会随着用户请求数目的增多而增大。但是当用户请求达到系统能够并发处理的最大用户请求数目时,用户的请求数目就是最大吞吐量。因此,通过吞吐量可以找到系统的瓶颈问题。
4)资源使用率。系统中各种资源的使用情况,一般用资源的实际使用占总资源可用量的百分比来表示。
5)聚合带宽。系统能够提供的最大数据传输率,即对外部应用系统可见的数据传输率,用来反映系统对外提供服务的整体性能,是一个综合测评指标。

确定了性能指标之后,还需要设计选择相应的性能评测方法。传统的性能评测方法有以下几种:

1)负载测试。主要测试软件系统是否达到需求文档设计的目标。比如软件在一定时期内,最大支持多少并发用户数、程序请求出错率等。
2)压力测试,这也称为强度测试,主要测试软件在超负荷情况下的运行情况。譬如在一定时期内,CPU利用率、内存使用率、硬盘I/O吞吐率和网络吞吐量等。压力测试和负载测试的最大差别在于测试目的不同。
3)并发测试。这主要是指负载测试和压力测试的过程,即通过逐渐增加同时访问系统的用户数量,直至达到系统的性能瓶颈,再通过综合分析来确定系统并发性能的过程。
4)容量测试。确定系统最大承受量,如系统最大用户数、最大存储量和最多处理的数据流量等。

性能测试工具是软件开发工具的重要组成部分,通常指用来支持压力测试、负载测试,能够用来录制和生成脚本、设置和部署场景、产生并发用户以及向系统施加持续压力的工具。性能测试工具能够模拟大量用户同时访问软件时的情况,同时也能模拟单个用户访问软件时的个性化参数。

性能测试的工具有很多,主流的产品有:①LoadRunner,一种工业标准级负载测试工具,可以预测系统行为和性能,通过模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,能够对整个企业架构进行测试;②lometer,Windows系统下对存储子系统的读写性能进行测试的软件,可以显示硬盘系统的最大/O能力、硬盘系统的最大吞吐量、CPU使用率和错误信息等:③JMeter,Apache开发的基于Java的压力测试工具,最初被设计用于Web应用测试,后来被扩展到其他测试领域,可以用于对服务器、网络或对象模拟巨大的负载,在不同压力类别下测试它们的强度并分析其整体性能。

云计算的性能测试

目前对于云的性能测试主要是针对特定云平台、云存储服务性能和云应用等进行的。例如针对微软的Azure云平台,提出了一个开源的基准测试套件AzaureBench,以协助高性能计算应用开发。Yahoo公司开发了一个用来对云服务进行基础测试的评测框架 YCSB(Yahoo Cloud Serving Benchmark),目标是促进新一代云数据服务系统的性能比较。Yang等人考虑到故障恢复对云服务性能的影响,并据此提出了一种以服务响应时间为主要依据的性能评价模型。

云计算性能测试的主要目标是验证在各种负载情况下云服务的性能。进行性能测试的最佳方式是使得多个测试用户运行完整的云服务测试,包括请求提交和应答验证。性能测试不仅通过指定的并发请求数目来监视服务器的响应速率,还要测试各类负载是否导致云服务功能性故障。因此,要求云服务性能测试工具能够定制性能测试场景来执行云计算性能测试。云计算性能测试可设置的场景主要包括缓冲区测试、线性增加和稳定负载等。通过使用不同的测试场景来使用不同的测试用例,同时还应支持跨越远端的云服务器分布虚拟用户,从而模拟极限测试与压力测试。

与传统软件的性能测试相比,除进行常规的负载测试和压力测试等外,云性能测试还需要进行:①稳定性测试,如果对系统平台有连续运行的要求,可对系统进行疲劳性测试,确认系统是否能够满足相应的连续运行时间要求;②大数据量测试,在系统平台具有一定业务数据量的背景下进行测试,目的是发现在小数据量情况下测试不易发现的潜在问题与缺陷。

相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
目录
相关文章
|
16天前
|
测试技术 API 项目管理
API测试方法
【10月更文挑战第18天】API测试方法
30 1
|
28天前
|
机器学习/深度学习 人工智能 监控
提升软件质量的关键路径:高效测试策略与实践在软件开发的宇宙中,每一行代码都如同星辰般璀璨,而将这些星辰编织成星系的过程,则依赖于严谨而高效的测试策略。本文将引领读者探索软件测试的奥秘,揭示如何通过精心设计的测试方案,不仅提升软件的性能与稳定性,还能加速产品上市的步伐,最终实现质量与效率的双重飞跃。
在软件工程的浩瀚星海中,测试不仅是发现缺陷的放大镜,更是保障软件质量的坚固防线。本文旨在探讨一种高效且创新的软件测试策略框架,它融合了传统方法的精髓与现代技术的突破,旨在为软件开发团队提供一套系统化、可执行性强的测试指引。我们将从测试规划的起点出发,沿着测试设计、执行、反馈再到持续优化的轨迹,逐步展开论述。每一步都强调实用性与前瞻性相结合,确保测试活动能够紧跟软件开发的步伐,及时适应变化,有效应对各种挑战。
|
14天前
|
测试技术 UED
软件测试中的“灰盒”方法:一种平衡透明度与效率的策略
在软件开发的复杂世界中,确保产品质量和用户体验至关重要。本文将探讨一种被称为“灰盒测试”的方法,它结合了白盒和黑盒测试的优点,旨在提高测试效率同时保持一定程度的透明度。我们将通过具体案例分析,展示灰盒测试如何在实际工作中发挥作用,并讨论其对现代软件开发流程的影响。
|
25天前
|
监控 测试技术 PHP
性能和压力测试
【10月更文挑战第10天】性能和压力测试
110 60
|
6天前
|
Java 测试技术 Maven
Java一分钟之-PowerMock:静态方法与私有方法测试
通过本文的详细介绍,您可以使用PowerMock轻松地测试Java代码中的静态方法和私有方法。PowerMock通过扩展Mockito,提供了强大的功能,帮助开发者在复杂的测试场景中保持高效和准确的单元测试。希望本文对您的Java单元测试有所帮助。
10 2
|
25天前
|
测试技术 Python
自动化测试项目学习笔记(三):Unittest加载测试用例的四种方法
本文介绍了使用Python的unittest框架来加载测试用例的四种方法,包括通过测试用例类、模块、路径和逐条加载测试用例。
53 0
自动化测试项目学习笔记(三):Unittest加载测试用例的四种方法
|
25天前
|
测试技术 Python
自动化测试项目学习笔记(二):学习各种setup、tearDown、断言方法
本文主要介绍了自动化测试中setup、teardown、断言方法的使用,以及unittest框架中setUp、tearDown、setUpClass和tearDownClass的区别和应用。
48 0
自动化测试项目学习笔记(二):学习各种setup、tearDown、断言方法
|
30天前
|
测试技术 UED
软件测试中的探索性测试:一种高效且灵活的测试方法
本文将深入探讨探索性测试的核心概念、优势及其在实际项目中的应用。我们将从探索性测试的基本定义入手,逐步解析其在不同场景下的具体实施方法和最佳实践。通过详细的案例分析和方法对比,帮助读者全面了解这种既高效又灵活的软件测试技术。
|
28天前
|
安全 测试技术 API
一图看懂API测试9种方法
一图看懂API测试九种方法:冒烟测试验证基本功能,功能测试确保符合规格,集成测试检查组件协同工作,回归测试防止新变更引入问题,负载测试评估性能稳定性,压力测试挑战极限负载,安全测试发现并修复漏洞,用户界面测试确保UI与API协调,模糊测试提升异常数据处理鲁棒性。
|
1月前
|
弹性计算 安全 Linux
阿里云国际版使用ping命令测试ECS云服务器不通的排查方法
阿里云国际版使用ping命令测试ECS云服务器不通的排查方法