性能测试—性能环境与数据

简介:
性能环境,也是困扰性能测试人员很重要的一个问题。如何模拟线上真实的环境?如何在测试环境进行的性能测试结果,能准确的反应到生产线上去?
  先聊下我们的做法。
  首先确认线上的网络拓扑图。比如:
  左边是线上环境,线上一般是分布式集群部署。比如用户访问服务器A,而服务器A需要依赖到服务器B和C提供的服务,而服务器C与DB存储打交道。那么在性 能测试环境,为了模拟用户的行为,需要搭建服务器A,B,C和DB各一台。通过对单台服务器A的压测结果TPS,再线性乘以机器数量,完成线上服务器A集 群的TPS的评估。
  这样做,简单的完成了线上和线下的结果推算。但是这样做,有一个前提:就是保证线上和性能测试环境的机器配置是一样的。机器的配置分为2个部分:硬件和软件。
  硬件方面,比如机器是4核4G的xen虚拟机,千兆网卡,SATA磁盘。
  软件方面,包括操作系统的版本,位数,比如:redhat 5.4,**位机器;JDK版本:openJDK 1.6.0;JVM参数配置;web容器:tomcat7.
  上面说的是应用层面,性能测试还有很重要的一步,就是性能测试数据的准备。
  性能测试数据库的环境也与应用层一样,保持和线上一样的硬件与软件配置。这里有个问题就是:生产线上一台数据库,对应多台应用。而在性能测试环境中,被我们映射成1:1的关系后,很难找到数据库层的性能瓶颈,因为在压测过程中,应用层会比数据层更快到达性能瓶颈。
  接下来,简单描述下性能测试数据的准备。性能测试数据的准备也分为2个部分。1是业务数据,2是基础数据。
  什么是业务数据?业务数据就是性能测试要模拟的用户拥有的数据。比如卖家A,有100个商品。100就是业务数据。基础数据就是商品所在表的总数据量。比如100W。
  性能测试的数据,不光要关注业务,更要关注数据库表的量级,因为100条数据,和100W条数据,性能测试出来完全是两个结果。
  为了数据的准确性,性能测试的数据表,也要满足生产线上表的量级。
  满足了这些条件,性能环境才能基本真实模拟生产线的环境,测试出来的结果才有推算上线后结果的可能。
  后记:
  每个公司的业务不同,系统架构也不同,所以性能测试环境方面肯定有很大的差异。我只是简单的写了我所在公司的性能环境的一些知识,分享给大家,供大家一个参考,希望你能从这里获得有用的东西。关于性能测试环境,我的一些观点:
  1. 如果允许生产线做性能测试,就尽量做生产线性能测试。同样的环境,性能测试的结果才有意义,性能测试的价值也最大体现。
  2. 测试环境的配置可以与线上一样,可以做下N:1的映射。结果线性乘以机器数,可以评估线上集群的负载。
  3. 真没条件,线上线下环境差异很大。就尽量找一些代码级别的性能瓶颈。优化后再上线,线下的结果就不用去推算线上,很不科学


最新内容请见作者的GitHub页:http://qaseven.github.io/
相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
相关文章
|
4天前
|
设计模式 测试技术 持续交付
深入白盒测试:提升软件质量与性能的关键策略
【4月更文挑战第20天】 在软件开发的复杂世界中,确保产品的质量和性能始终是至关重要的任务。白盒测试,作为软件测试领域的重要分支,提供了对程序内部结构和逻辑的深入分析手段。本文将探讨如何通过有效的白盒测试策略来优化软件性能,减少缺陷,并最终提高用户满意度。通过剖析代码检查、单元测试、集成测试等白盒测试技术,我们将了解这些方法如何揭示潜在的问题点,并为改进提供方向。
|
30天前
Mybatis+mysql动态分页查询数据案例——测试类HouseDaoMybatisImplTest)
Mybatis+mysql动态分页查询数据案例——测试类HouseDaoMybatisImplTest)
20 1
|
30天前
|
Java 关系型数据库 数据库连接
Mybatis+MySQL动态分页查询数据经典案例(含代码以及测试)
Mybatis+MySQL动态分页查询数据经典案例(含代码以及测试)
26 1
|
1月前
|
测试技术
性能场景之压测策略设计
【2月更文挑战第19天】性能场景之压测策略设计
295 4
性能场景之压测策略设计
|
1月前
|
敏捷开发 运维 测试技术
探索自动化测试在持续集成环境中的关键作用
【2月更文挑战第18天】 随着敏捷开发和DevOps文化的普及,持续集成(CI)已成为软件开发过程中不可或缺的组成部分。本文将深入探讨自动化测试在持续集成环境中的重要性,分析其如何提高软件交付速度、保障质量并减少人工干预。通过对现代软件工程实践中自动化测试策略的剖析,揭示了其在维护高效率和高质量软件产品中的核心地位。
31 7
|
1月前
|
安全 测试技术
BOSHIDA DC电源模块的安全性能评估与测试方法
BOSHIDA DC电源模块的安全性能评估与测试方法
 BOSHIDA DC电源模块的安全性能评估与测试方法
|
1月前
|
安全
DC电源模块的安全性能评估与测试方法
DC电源模块的安全性能评估与测试方法 DC电源模块的安全性能评估与测试方法应包括以下几个方面: 1. 输入安全性测试:包括输入电压范围、输入电压稳定性、输入电流范围、输入电流保护等方面的测试。测试方法可以是逐步增加输入电压或输入电流,观察模块的工作状态和保护功能。
DC电源模块的安全性能评估与测试方法
|
17天前
|
人工智能 分布式计算 Kubernetes
人工智能,应该如何测试?(三)数据构造与性能测试篇
本文探讨了人工智能场景中的性能测试,区别于传统互联网测试,其复杂性更高。主要关注点包括两类AI产品——业务类和平台类,后者涉及AI全生命周期,测试难度更大。测试重点是模型训练的性能,特别是数据模拟。需要构造大量结构化数据,如不同规模、分布、分片和特征规模的数据,以评估算法效率。此外,还涉及模拟设备规模(如视频流)和节点规模(边缘计算),以测试在大规模负载下的系统性能。文中提到了使用工具如Spark、ffmpeg、流媒体服务器和Kubernetes(K8S)的扩展项目,如Kubemark,来模拟大规模环境。最后,文章介绍了使用Golang进行异步IO操作以构建海量小文件,优化IO性能。
38 0
|
18天前
|
测试技术
深入白盒测试:提升软件质量与性能的关键策略
【4月更文挑战第6天】 在软件开发的生命周期中,确保代码质量和性能始终是至关重要的环节。白盒测试作为一种深入代码内部的测试方法,提供了对程序结构、逻辑路径和内部功能的全面评估。本文将探讨白盒测试的核心概念、技术及其在提升软件质量与性能方面的应用。通过分析控制流测试、数据流测试和静态代码分析等关键技术,我们揭示了白盒测试如何有效发现潜在缺陷,优化代码效率,并增强系统稳定性。
|
19天前
|
jenkins 测试技术 持续交付
软件测试|docker搭建Jenkins+Python+allure自动化测试环境
通过以上步骤,你可以在Docker中搭建起Jenkins自动化测试环境,实现Python测试的自动化执行和Allure报告生成。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
39 6

热门文章

最新文章