一、 性能测试需求分析

需求收集之后,我们已经从性能需求文档中提取出了业务性能测试指标,主要包括PV到TPS的转换以及响应时间要求,接下来我们需要进行进一步的需求分析过程。

1了解系统架构、明确压力流向

例如统一订购平台的系统架构图:

理解架构图中各个节点的功能与交互关系,通过系统架构图我们能看到压力的入口,即oop应用。请求从oop发起,从udb取到会员数据后,通过dubbo接口,调用订购服务层提供的各种服务,订购服务层所需数据全部从对应cache中取。因此,主干压力流向可得知:

Oop—>udb

Oop—>dubbo—>订购服务层—>cache

然后结合需求文档,根据具体业务场景,确定各分支压力流向,比如有的业务场景需要从pc2取得用户的服务记录,有的业务场景需要付款则需要去帐户中心取得帐户信息,则新增的压力流向如下:

Oop—>dubbo—>pc2—>cache

Oop—>dubbo—>帐户中心

针对每一个测试场景,都要根据系统架构图进行上述分析,明确了各场景的压力流向,即明确了性能测试过程中的监控对象。

监控对象确定后,需要进一步分析明确测试重点,如上例,我们关注的重点是网站的oop应用,因为平台的udb、pc2,crm的服务订购中心,都有各自做过接口性能测试。或者有的所用应用功能是线上已有的,并没有修改变动,如帐户中心。明确测试重点,将有助于我们进行测试环境相关的测试策略的选择。

2 明确测试环境

2.1 服务器数量确定

根据系统架构图,我们得到了项目中所涉及的环境。众所周知,测试环境越接近生产环境,则测试结果越精确。但通常我们会碰到服务器资源紧张,或者所用应用为外部门的外围环境,搭建方法复杂。此时我们面临两种选择,要么使用功能环境,要么mock掉该环境。建议不要选择前者,可以多个压力流向小的应用公用一台性能服务器。

2.2 服务器配置确定

还是一条不变的原则:测试环境软硬件配置尽量与生产环境保持一致。

机器的性能需求:32位or64位;4核or8核;是否要求同一网段

测试环境软件架构确定(jdk、apache、jboss版本、jvm参数):与线上环境一致,重点关注jvm参数配置,确保与线上一致。

性能测试关注的主要硬件配置及OS参数如下表:

主机/ip

硬件配置

操作系统及参数调整

10.20.133.165

统一订购层应用服务器

机型

PowerEdge 1950

Linux  2.6.18-92.el5

64位操作系统

CPU

Intel(R) Xeon(R)

CPU  E5410  @ 2.33GHz *

8

内存

10G

网络

1000M

应用服务器配置检查中常用的linux指令:

查看机型: dmidecode --type 1|grep "Product Name"

查看CPU: cat /proc/cpuinfo

查看内存:free -mt

红框内即为本机内存总量

查看网卡:

1)ifconfig 检查服务器连接的哪块网卡(ethx)

上图红框内即为当前活动的网卡

2)ethtool ethx 检查网卡详细信息(ethx为ifconfig检查出来的网卡编号,如上图就为eth0)

上图红框内即为当前网卡带宽(双工模式)

查看操作系统:

uanme -a 查看所有信息

uname -o,

--operating-system

GNU/Linux

-r,

--kernel-release

2.6.18-128.el5(操作系统内核版本)

-i, --hardware-platform

x86_64(硬件版本)

-o,

--operating-system

x86_64(操作系统版本)

3

关键业务数据量分析

3.1 数据量需求确认

1) 数据量是指的性能测试需要考虑的数据总量和数据类型。

例如在offer数据量为30w的DB中查询和在offer数据量为1000w的DB中查询,性能表现一定是不一样的。我们需要考虑,现阶段的数据量等级和未来发展趋势下的数据量等级。有的时候数据量也是程序分支逻辑,所以这点就必须详细考虑了。

2)

存储分布指的数据源的分布情况,是分布式分布还是单台分布;是search分布还是DB分布,等等。例如offer拆分项目的性能测试就需要综合考虑Oracle单表、Oracle16张表、mysql128张表的使用场景

3)

基本要求:测试数据库数据量要与线上数据量保持一个数量级。

3.2 造数据方法确定

根据数量级的需要,可以采用不同的方法,大致有以下几种:

1) 找DBA帮忙导线上/测试库数据;

2) 用datafactory/sql直接插数据库;(查看datafactory文档)

界面如图,具体使用方法问google

3) 用jmeter/LR/ruby等脚本走正常业务流造数据。(查看各脚本录制方法)

3.3划分测试场景、明确测试用例

测试用例的产生需要考虑以下几方面:

1)

测试页面和业务逻辑,也就是业务对应的功能点

注意,性能测试的测试用例也需要专一性,也就是对应单个测试功能点。

因为我们监控的是每个事物的响应时间,功能点需要单一。

2)

压力持续时间

压力持续时间指的是给服务器施加多长时间的压力。

这个时间,我们会结合测试场景,对压力时间做一定的控制。

ü

如果测试的是高峰场景,时间一般最少为1个小时;

ü

如果测试的是稳定性场景,时间一般最少要求8小时;

3)

并发数

不要混淆并发和TPS的关系。

并发数指的是同时有多少用户(线程)在对服务器施加压力,是量化的给服务器的压力;而TPS指的是服务器每秒钟能够处理的事物数,是服务器处理能力的体现。

性能测试服务器数量与线上数量不同,性能需求分析相关推荐

  1. gta线上服务器维护,gtaol线上云服务器

    gtaol线上云服务器 内容精选 换一换 如果Linux操作系统云服务器未安装密码重置插件,可以参见本节内容重新设置密码.本节操作重置的是root用户的密码,您可以重置完root密码后登录云服务器后再 ...

  2. 深入字节版atop: 线上系统的性能监控实践

    背景 atop 是一款开源的单机性能监测工具,支持实时观测的同时.也支持读取历史文件排查问题.另外一个优点是除提供 CPU.MEM.DISK 等全局指标外,还提供进程.线程级别的各项指标监控数据.鉴于 ...

  3. 性能测试之线上引流测试--让性能测试更真实更丰富

    为什么要做引流测试 目前为止大部分的测试是在测试环境下,通过模拟用户的行为来对系统进行验证,包括功能以及性能.在这个过程中,你可能会遇到以下问题: 用户访问行为比较复杂,模拟很难和用户行为一致,模拟不 ...

  4. PHP 将线上的图片保存到本地服务器

    /***@describe 将远程的图片保存到本地服务器*@param $url 线上图片地址 necessary*@return*/public function getOnLineImg($url ...

  5. SSM基于java的线上阅读平台的设计与实现 毕业设计-附源码291023

    SSM线上阅读平台开发 摘 要 随着互联网趋势的到来,各行各业都在考虑利用互联网将自己推广出去,最好方式就是建立自己的互联网系统,并对其进行维护和管理.在现实运用中,应用软件的工作规则和开发步骤,采用 ...

  6. (附源码)ssm基于java的线上阅读平台的设计与实现 毕业设计291023

    SSM线上阅读平台开发 摘 要 随着互联网趋势的到来,各行各业都在考虑利用互联网将自己推广出去,最好方式就是建立自己的互联网系统,并对其进行维护和管理.在现实运用中,应用软件的工作规则和开发步骤,采用 ...

  7. MySQL排查篇:该如何定位并解决线上突发的Bug与疑难杂症?

    前面两章中,聊到了关于数据库性能优化的话题,而本文则再来聊一聊关于MySQL线上排查方面的话题.线上排查.性能优化等内容是面试过程中的"常客",而对于线上遇到的"疑难杂症 ...

  8. 程序员搞事!动手实战优化自己公司线上系统JVM,结果。。。

    Java性能调优都是老生常谈的问题,特别当"糙快猛"的开发模式大行其道时,随着系统访问量的增加.代码的臃肿,各种性能问题便会层出不穷. 比如,下面这些典型的性能问题,你肯定或多或少 ...

  9. GTA5如何快速进入线上模式战局?GTA5线上模式进不去怎么办?

    GT5是一款备受玩家喜爱的游戏,其中的就是线上模式.但是,有时候进入线上模式会遇到各种问题,比如需要等待时间过长.连接不稳定等.为了让你更快速地进入线上模式,我们整理了10个实用技巧,帮助你快速进入游 ...

最新文章

  1. MySql乱码解决(五)
  2. 【scala】集和映射
  3. Linux xargs命令
  4. linux bash tutorial
  5. 用java写一个日历_使用JAVA写一个简单的日历
  6. 6大设计原则之开闭原则
  7. 机器学习---算法---马尔科夫
  8. 要参与OpenJDK8源码修改,从哪里下源码?
  9. 360 php SQL注入,php中sql注入漏洞示例
  10. Java单例模式——线程安全的懒汉模式
  11. [0CTF 2016]piapiapia(反序列化逃逸)
  12. 基于Matlab的暗通道先验、Retinex去雾图像增强研究
  13. Excel去除重复项的几种方法
  14. 小程序中身份证号码认证简单的判断方法
  15. Mysql-binlog的查看
  16. javascript学习-canvas
  17. 简单实现B/S服务器
  18. KepOPC全新DA2UA中间件实现OPCDA与UA的转换及互操作
  19. 计算机主机故障检测原则,1.计算机故障处理应遵循的基本原则有哪些? 爱问知识人...
  20. 品牌策划的驱动内核,营销美学战略和视觉营销策略

热门文章

  1. ip地址管理与子网的划分二
  2. WinHEC 2008 走马观花 [多图杀猫]
  3. 内存中的rank跟bank有什么区别
  4. MongoRepository
  5. 【mysql技巧】按某一字段分组取最大(小)值所在行的数据
  6. 一篇网站架构的文章:一步步构建大型网站架构
  7. vue cli3.3 以上版本配置vue.config.js 及反向代理操作解决跨域操作
  8. 16.ajax_case08
  9. poj-1062-昂贵的聘礼
  10. 《memory leak: stackwalk》