一、性能测试概要

什么是性能测试

  • 性能测试就是通过技术的手段模拟大量用户同时访问被测应用,观察、记录和分析系统的各项性能指标的过程。
  • 性能测试的目标是评估系统的性能瓶颈,预测系统的最大用户负载能力。

性能测试的两个关键点

  • 模拟大量并发用户
  • 监控系统负载参数分析系统瓶颈

性能指标

  • 平均响应时间( TTLB , Time to laster byte )

    • 平均每个请求从发送到接收响应的时间
  • 合理的平均响应时间

    • 2/5/10原则
    • 在2秒之内给客户响应被用户认为是“非常有吸引力”的用
      户体验。在5秒之内响应客户被认为“比较不错”的用户体验,在10秒内给用户响应被认为“糟糕”的用户体验。如果超过10秒还没有得到响应,那么大多用户会认为这次请求是失败的。
  • 平均响应时间的业务影响

    • 根据2008年Aberdeen Group的研究报告,对于Web网站, 1秒的页面加载延迟相当于少了11%的PV ( pageview ) , 相当于降低了16%的顾客满意度。
    • Compuware公司分析了超过150个网站和150万个浏览页面,发现页面响应时间从2秒增长到10秒,会导致38%的页面浏览放弃率。

系统资源类

  • CPU:CPU的占用率
  • 内存:内存的占用率,换页数等
  • I/O:读写请求数、读写量等
  • 带宽:进站出站带宽占用率

为什么要进行性能测试

  • 能够有效评估系统的性能指标,用于系统的性能评估
  • 能够识别系统的性能瓶颈,协助性能调优
  • 能够指导突发流量承载方案的制定
  • 能够用于系统运维成本的预算

性能测试的一般分类

  • 负载测试( Load Test ):为了验证系统设计符合正常业务负载情况下系统性能表现的测试
  • 压力测试( Stress Test ):为了验证系统在极端负载情况下的性能表现的测试

开发人员进行的性能测试更加关注在一定负 载情况下各个系统资源的占用率,从而找到内存泄露、连接泄露和系统的性能瓶颈。

二、性能测试相关工具介绍

2.1 top

显示、排序,过滤,

top -ab -n 1

2.2 性能统计工具sysstat的安装配置

http://lovesoo.org/linux-sar-command-detailed.html

统计系统的各种资源占用情况

yum list sysstat
yum install -y sysstat
cat /etc/cron.d/sysstat

-A:所有报告的总和
-u:输出 CPU 使用情况的统计信息
-v:输出inode、文件和其他内核表的统计信息
-d:输出每一个块设备的活动信息
-r:输出 内存 和交换空间的统计信息
-b:显示 I/O 和传送速率的统计信息
-a:文件读写情况
-c:输出进程统计信息,每秒创建的进程数
-R:输出内存页面的统计信息
-y:终端设备活动情况
-w:输出系统交换活动信息

2.3 sysstat常用命令之cpu监控

2.4 sysstat常用命令之内存监控

2.5 sysstat常用命令之io监控

sar -b -f sa08

tps:每秒钟物理设备的I/0请求次数
rtps: 每秒钟从物理设备读入的请求次数
wtps: 每秒钟向物理设备写入的请求次数
bread/s: 每秒钟从物理设备读入的数据量,单位为块/s
bwrtn/s: 每秒钟向物理设备写入的数据量,单位为块/s

sar -d -f sa08

2.6 sysstat常用命令之network监控

sar -n DEV -f sa25

DEV显示网络接口信息,EDEV显示关于网络错误的统计数据,NFS统计活动的NFS客户端的信息,NFSD统计NFS服务器的信息,SOCK显示套接字信息,ALL显示所有5个开关。它们可以单独或者一起使用。

rxpck/s: 每秒钟接收的数据包
txpck/s: 每秒钟发送的数据包
rxbyt/s: 每秒钟接收的字节数
txbyt/s: 每秒钟发送的字节数
rxcmp/s: 每秒钟接收的压缩数据包
txcmp/s: 每秒钟发送的压缩数据包
rxmcst/s: 每秒钟接收的多播数据包

2.7 评估磁盘读写性能极限 fio

评估磁盘读写性能极限

yum install -y fiofio -filename=/data/test -direct=1 -iodepth 1 -thread -rw=randrw -ioengine=psync -bs=16k -size 2G -numjobs=10 -runtime=30 -group_reporting -name=mytest13

2.8 进程队列长度和平均负载状态监控

sar -q 10 3

runq-sz:运行队列的长度(等待运行的进程数)
plist-sz:进程列表中进程(processes)和线程(threads)的数量
ldavg-1:最后1分钟的系统平均负载(System load average)
ldavg-5:过去5分钟的系统平均负载
ldavg-15:过去15分钟的系统平均负载

三、Jmeter进行性能测试

3.1 JMeter介绍及特性

  • Apache组织开发的性能测试工具
  • 用于模拟大量用户的并发访问
  • 最大的优点是完全开源

特性:

  • Web- HTTP, HTTPS
  • SOAP
  • FTP
  • LDAP
  • Message-oriented middleware (MOM) via JMS
  • MongoDB (NoSQL)
  • TCP
  • Others

3.2 jmeter 目录结构

3.3 JMeter 基本功能介绍

3.4 使用jmeter对性能测试脚本进行录制和回放

3.5 测试脚本参数化

3.6 用PostProcessor获取响应中的关键数据

3.7 使用BeanShellAssertion判断

3.8 用BSFAssertion判断响应是否正确

3.9 JMeter中的其他断言方法

3.10 JMeter中模拟用户的等待行为

3.11 执行性能测试并在执行过程中监控性能

四、产品性能分析

4.1 监控mysql 慢查询

4.2 实用sysstat 分析系统硬件性能瓶颈

五、Jmeter进阶

5.1 使用session支持

5.2 多用户组实现多场景

5.3 通过beanShell进行java扩展

六、其他性能监控软件介绍

6.1 Nmon

  • 一个类似TOP但是显示功能更加丰富的工具

6.2 Nagios

Nagios是一款开源的免费网络监视工具,能有效监控
Windows、Linux和Unix的主机状态,交换机路由器等网络设置,打印机等。在系统或服务状态异常时发出邮件或短信报警第-时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知。(更偏重运维)

web系统整体性能测试相关推荐

  1. Web网站的性能测试工具

    随着Web 2.0技术的迅速发展,许多公司都开发了一些基于Web的网站服务,通常在设计开发Web应用系统的时候很难模拟出大量用户同时访问系统的实际情况,因此,当Web网站遇到访问高峰时,容易发生服务器 ...

  2. 工作总结--如何定位web系统前后台的bug,以及bug分析/测试感想

    对于web项目前台和后台bug定位分析: 一. 系统整体了解 懒企鹅营销服务平台用的架构: web前端: Bootstrap 3.0 组件丰富,兼容性好,界面美观 Server端: jsp+Servl ...

  3. 软件测试面试题之如何对web系统进行全面测试(持续更新中,求关注)

    如何对web系统进行全面测试? 这是在软件测试面试中经常会问到的一个问题,但要全面而合理地解答此问题却有点难度,以下是我在面试过程中的总结整理,希望对大家有所帮助. 一. 功能测试 1.链接测试 链接 ...

  4. 分享一些web系统的测试点

    归纳了一些web系统的测试点,并附上思维导图. 一.UI测试 导航测试 内容测试 图形测试 设计风格是否服务UI设计图 整体界面测试 二.功能测试 链接测试 表单测试 cookies测试 数据库测试 ...

  5. 基于Web系统的测试方法(常见测试案例)-经验

    Web系统测试一般有以下特点: 1.周期短 2.涉及面多:(1)功能:数据,业务流等(2)性能:响应时间,吞吐量,并发支持等(3)安全:部署与基础结构,权限,敏感数据加密,会话管理,异常处理 测试方法 ...

  6. 测试学习-114-使用jmeter工具对web项目进行性能测试与稳定性测试

    前言 作为测试工程师,相信大家对jmeter这个工具在熟悉不过了,小编的前几篇博客中也有写到jmeter用于接口自动化测试的实战文章,今天主要用来介绍使用jmeter来进行性能测试和稳定性测试的实战. ...

  7. 软件架构设计学习总结(1):标准Web系统的架构分层

    1.架构体系分层图 在上图中我们描述了Web系统架构中的组成部分.并且给出了每一层常用的技术组件/服务实现.需要注意以下几点: 系统架构是灵活的,根据需求的不同,不一定每一层的技术都需要使用.例如:一 ...

  8. QQ会员亿级Web系统的容错性建设实践--转

    原文地址:http://www.infoq.com/cn/articles/qq-web-system-practise 本文整理自 #ArchSummit微课堂#线上分享--QQ会员亿级Web系统的 ...

  9. 大型web系统数据缓存设计-l转载

    原文地址:http://www.wmyouxi.com/a/60368.html#ixzz3tGYG9JwC 1. 前言 在高访问量的web系统中,缓存几乎是离不开的:但是一个适当.高效的缓存方案设计 ...

  10. 亿级 Web 系统的容错性建设实践

    三年多前,我在腾讯负责的活动运营系统,因为业务流量规模的数倍增长,系统出现了各种各样的异常,当时,作为开发的我,7*24小时地没日没夜处理告警,周末和凌晨也经常上线,疲于奔命.后来,当时的老领导对我说 ...

最新文章

  1. mac终端python删除键不能用_我把mac 系统下的python目录删掉了怎么办
  2. 华科研究生复试机试题代码堆积供以后参考
  3. 第三十一讲 非线性微分自治方程组及图解
  4. 简单易用的.NET免费开源RabbitMQ操作组件EasyNetQ解析
  5. python requests编码的问题_python requests 编码问题
  6. 《BI那点儿事》三国数据分析系列——蜀汉五虎上将与魏五子良将武力分析,绝对的经典分析...
  7. openstack及组件简要介绍
  8. C#LeetCode刷题之#55-跳跃游戏(Jump Game)
  9. Java进阶之网络编程
  10. 机器学习之方差与偏差(bias-variance)
  11. html 游戏首页,30个让人玩上瘾的HTML5游戏
  12. 手工扒网页模板简单流程
  13. java 1.13 快照下载_Minecraft我的世界1.13Java版快照18w10c发布
  14. ps去除水印的六种方法
  15. 零基础入行IC,选模拟版图还是数字后端?
  16. UT000010: Session is invalid
  17. Unity3D之太空大战一
  18. 网易AI出席2018世界人工智能大会,带来沉浸式交互体验
  19. ORCAL计算司龄是否满一年
  20. 恢复出厂设置,保留数据的方法

热门文章

  1. [Linux驱动炼成记] 06-博通WIFI模组AP6212配置
  2. 项目十大管理和五大过程组
  3. Vue打开动态html页面,vue.js中怎么打开新页面?
  4. win10如何打来计算机的工具,电脑系统教程:Win10自带解压缩文件工具如何使用
  5. 服务器固态硬盘接口类型,固态硬盘接口都有哪些类型
  6. Tbschedule源码通读
  7. 电脑一键装机软件哪个好 目前干净的一键重装系统软件推荐
  8. 运放为什么可以虚短虚断
  9. XMind8update6 补丁
  10. 怎么把cad的图导入ps_CAD图纸快速高效导入PS的方法