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

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

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

性能评测

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

性能测试概述

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

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等人考虑到故障恢复对云服务性能的影响,并据此提出了一种以服务响应时间为主要依据的性能评价模型。

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

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

目录
相关文章
|
11月前
|
数据采集 监控 机器人
浅谈网页端IM技术及相关测试方法实践(包括WebSocket性能测试)
最开始转转的客服系统体系如IM、工单以及机器人等都是使用第三方的产品。但第三方产品对于转转的业务,以及客服的效率等都产生了诸多限制,所以我们决定自研替换第三方系统。下面主要分享一下网页端IM技术及相关测试方法,我们先从了解IM系统和WebSocket开始。
274 4
|
2月前
|
测试技术 开发者 Python
Python单元测试入门:3个核心断言方法,帮你快速定位代码bug
本文介绍Python单元测试基础,详解`unittest`框架中的三大核心断言方法:`assertEqual`验证值相等,`assertTrue`和`assertFalse`判断条件真假。通过实例演示其用法,帮助开发者自动化检测代码逻辑,提升测试效率与可靠性。
323 1
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
如何让AI更“聪明”?VLM模型的优化策略与测试方法全解析​
本文系统解析视觉语言模型(VLM)的核心机制、推理优化、评测方法与挑战。涵盖多模态对齐、KV Cache优化、性能测试及主流基准,助你全面掌握VLM技术前沿。建议点赞收藏,深入学习。
679 8
|
2月前
|
测试技术 UED 开发者
性能测试报告-用于项目的性能验证、性能调优、发现性能缺陷等应用场景
性能测试报告用于评估系统性能、稳定性和安全性,涵盖测试环境、方法、指标分析及缺陷优化建议,是保障软件质量与用户体验的关键文档。
|
5月前
|
测试技术
软考软件评测师——可靠性测试测试方法
软件可靠性是指软件在规定条件和时间内完成预定功能的能力,受运行环境、软件规模、内部结构、开发方法及可靠性投入等因素影响。失效概率指软件运行中出现失效的可能性,可靠度为不发生失效的概率,平均无失效时间(MTTF)体现软件可靠程度。案例分析显示,嵌入式软件需满足高可靠性要求,如机载软件的可靠度需达99.99%以上,通过定量指标评估其是否达标。
|
5月前
|
消息中间件 缓存 监控
性能测试怎么做?方法、流程与核心要点解析
本文系统阐述了性能测试的核心方法论、实施流程、问题定位优化及报告编写规范。涵盖五大测试类型(负载验证、极限压力、基准比对、持续稳定性、弹性扩展)与七项关键指标,详解各阶段任务如需求分析、场景设计和环境搭建,并提供常见瓶颈识别与优化实战案例。最后规范测试报告内容框架与数据可视化建议,为企业级实践提出建立基线库、自动化回归和全链路压测体系等建议,助力高效开展性能测试工作。
|
9月前
|
编解码 缓存 Prometheus
「ximagine」业余爱好者的非专业显示器测试流程规范,同时也是本账号输出内容的数据来源!如何测试显示器?荒岛整理总结出多种测试方法和注意事项,以及粗浅的原理解析!
本期内容为「ximagine」频道《显示器测试流程》的规范及标准,我们主要使用Calman、DisplayCAL、i1Profiler等软件及CA410、Spyder X、i1Pro 2等设备,是我们目前制作内容数据的重要来源,我们深知所做的仍是比较表面的活儿,和工程师、科研人员相比有着不小的差距,测试并不复杂,但是相当繁琐,收集整理测试无不花费大量时间精力,内容不完善或者有错误的地方,希望大佬指出我们好改进!
635 16
「ximagine」业余爱好者的非专业显示器测试流程规范,同时也是本账号输出内容的数据来源!如何测试显示器?荒岛整理总结出多种测试方法和注意事项,以及粗浅的原理解析!
|
9月前
|
人工智能 自然语言处理 测试技术
AxBench:斯坦福大学推出评估语言模型控制方法的基准测试框架
AxBench 是由斯坦福大学推出,用于评估语言模型可解释性方法的基准测试框架,支持概念检测和模型转向任务,帮助研究者系统地比较不同控制技术的有效性。
247 5
AxBench:斯坦福大学推出评估语言模型控制方法的基准测试框架
|
11月前
|
算法 Java 测试技术
使用 BenchmarkDotNet 对 .NET 代码进行性能基准测试
使用 BenchmarkDotNet 对 .NET 代码进行性能基准测试
281 13

热门文章

最新文章