性能基准自动化测试

简介:

性能基准测试是一项系统性能测量工作,根据目前的项目实际,在这里做了一些新的定义。基准测试在项目中与一般性能测试工作的主要区别在于其更短的回归周期与直观的趋势分析,并同时为混合业务性能场景的脚本线程配比计算提供依据。一般的性能测试往往只在版本计划中或遭遇系统性能问题时进行,而基准测试在日常中进行,特别是在发生重大变更事件(例如:系统配置、环境发生变更)之前与之后的测试,让测试结果数据与一般的性能测试结果数据更有实质上的参考意义。因为,当为系统创建性能基准后,基准数据作为性能指标的参照物,可用于判断任意一项变更为系统带来的具体影响。例如:某项配置优化后能够为系统带来的性能提升是多少、系统某项操作历史数据的增长与性能响应的关系、系统环境的变更对系统性能产生的影响。而且实施该项工作并不复杂。

基准测试数据的实际用途

1)         了解系统性能基准作为参照物(性能问题发生后的测试很难了解系统性能基准)

2)         识别系统或环境的配置变更对性能响应带来的影响

3)         为系统优化前后的性能提升/下降提供参考指标

4)         观察系统的整体性能趋势与拐点发生,及早识别系统性能风险

性能基准自动化测试与一般性能测试的主要区别

1)         测试周期:基准测试每天定时自动化执行,性能测试需要事件驱动执行。

2)         测试脚本:基准测试的性能测试脚本仅仅包含所关注业务的必须的HTTP请求,不进行用户行为模拟;性能测试的测试脚本包含关键业务的所有上下文请求,并进行用户行为的模拟。

3)         测试策略:基准测试策略固定,几乎不允许修改(否则将与过去所有历史数据发生断层);性能测试需要根据不断变化的性能需求进行修改。

4)         脚本维护:基准测试的测试脚本仅在访问链接发生变更时维护,或者POST请求参数发生变更时维护,GET请求几乎不需要维护;性能测试脚本在每轮测试中一般都需要重新开发。

5)         结果用途:基准测试结果数据仅用于作为系统性能下降/提升的衡量指标,性能测试结果脚本可用于预测用户性能体验、系统性能风险。

性能基准测试自动化测试的实施

1)         性能基准数据的获取

利用Apache的开源项目Jmeter测试工具,使用Jmeter针对关注的系统性能点进行脚本开发,如下图,线程在事务控制器“用户登录”内进行系统登录,循环控制器内装载了各个性能关注点的HTTP请求:

在测试计划中维护性能基准测试环境信息与测试策略,包括:主机、端口、线程数、加载速度、迭代次数等。并采用50线程执行性能测试脚本,每条线程执行10次迭代,每个性能关注点取得500个响应样本,从而性能响应数据,包括:平均值、标准差、事务通过情况、错误内容。

2)         计划任务的定时执行

利用Apache开源项目Ant每日中午定时执行基准测试,自动保存性能测试结果,生成当日的性能基准测试结果数据,每日基准测试报告如下图:

假定性能关注点为5个,采用以上测试策略,在系统性能响应理想的情况下,整个测试过程时间可在3分钟内完成,最后生成一定数量的结果文件,最好有30天以上

3)         数据的整合与趋势分析

当取得足够量的基准测试结果以后(例如:30天、60天、90天),即可对第二节中所提到的每天的测试结果数据进行整合,生成报表的形式,直观的了解过去时间内,系统的性能拐点发生日期,对拐点发生当日的变更事件进行跟踪。报表所体现的内容在使用summary中的平均响应时间、事务通过率作为系统整体性能响应考量指标。不把每个事务都展现到报表中,除非:

  a)       系统整体事务通过率无法达到95%;

  b)       系统整体响应时间平均值大于2秒,最高值大于10秒;

下面是用perl写了个程序对html文件进行分析的输出,每个基准测试时间后对应了系统整体性能状况(事务的通过率,以及响应时间的平均、最快、最大值),最后根据预定义的阈值给出结果,为了更好的说明问题,这里把“平均响应时间大于5秒”判断为性能下降,最后一列的“↘”表示了3月31日出现了性能拐点。










本文转自 小强测试帮 51CTO博客,原文链接:http://blog.51cto.com/xqtesting/2068578,如需转载请自行联系原作者
相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
目录
相关文章
|
1月前
|
安全 测试技术
BOSHIDA DC电源模块的安全性能评估与测试方法
BOSHIDA DC电源模块的安全性能评估与测试方法
 BOSHIDA DC电源模块的安全性能评估与测试方法
|
1月前
|
安全
DC电源模块的安全性能评估与测试方法
DC电源模块的安全性能评估与测试方法 DC电源模块的安全性能评估与测试方法应包括以下几个方面: 1. 输入安全性测试:包括输入电压范围、输入电压稳定性、输入电流范围、输入电流保护等方面的测试。测试方法可以是逐步增加输入电压或输入电流,观察模块的工作状态和保护功能。
DC电源模块的安全性能评估与测试方法
|
4月前
|
存储 测试技术 Linux
添加E1000网卡进行测试,只有VMXNET3性能的四分之一
添加E1000网卡进行测试,只有VMXNET3性能的四分之一
64 0
|
4月前
|
存储 测试技术 区块链
阿里云、百度云及移动云对象存储横向性能对比测试
在企业的数字化转型进程中,我们观察到越来越多的公司将其IT基础设施迁移到云端。随着企业业务的持续运营,无论是储存、处理、分享还是删除,都会产生大量的数据,这就要求有一个既可靠又高效的系统来管理和存储这些信息。对象存储产品在这个场景中扮演了至关重要的角色。它们以一种可扩展、安全、持久的方式,有效地满足了对大规模非结构化数据存储的需求。 尽管市场上云计算提供商众多,各自都有自己独特的对象存储产品,面对这样的丰富选择,如何寻找最符合企业需求的产品呢?这正是企业今天寻求解答的问题。 在本篇文章中,我们将深入进行一项横向对比测试,专门对阿里云OSS、百度云BOS和移动云EOS这三大云服务提供商的对象
1358 0
|
7月前
|
消息中间件 Java 测试技术
深聊性能测试,从入门到放弃之:Locust性能自动化(一)初识Locust
深聊性能测试,从入门到放弃之:Locust性能自动化(一)初识Locust
164 1
|
7月前
|
开发框架 测试技术 Serverless
通过性能测试PTS对Serverless应用进行性能压测
本文为您介绍如何利用性能测试PTS对Serverless应用进行性能压测
217 0
|
6月前
|
存储 缓存 Linux
百度搜索:蓝易云【如何在Linux系统服务器中测试存储/磁盘I/O性能?】
这些工具可以帮助你测试磁盘的读取和写入性能,并提供各种性能指标和统计数据。请注意,在运行这些测试时,确保没有重要的数据存储在被测试的磁盘上,并谨慎操作以避免对系统和数据造成不必要的影响。
88 0
|
1月前
|
算法 Java 测试技术
性能工具之代码级性能测试工具ContiPerf
【2月更文挑战第23天】性能工具之代码级性能测试工具ContiPerf
266 1
性能工具之代码级性能测试工具ContiPerf
|
5月前
|
Java 应用服务中间件 测试技术
Tomcat压力测试tps性能下降问题
Tomcat压力测试tps性能下降问题
|
7月前
|
JSON 测试技术 API
深聊性能测试,从入门到放弃之:Locust性能自动化(五)API汇总整理(下)
深聊性能测试,从入门到放弃之:Locust性能自动化(五)API汇总整理(下)
87 0