性能测试

  1. 例子:北京奥运会的售票宕机

1. 什么是性能测试

  1. 验证产品的性能在特定负载和环境条件下使用是否满足性能指标
  2. 进一步发现系统中存在的性能瓶颈,优化系统

1.1. 性能测试的度量方法

  1. 不同的关注对象采用不同的性能的度量方法
  2. 服务端性能采用CPU、内存等使用率来度量
  3. 客户端性能通常根据系统处理特定用户请求的响应时间来度量

1.2. 响应时间

  1. 系统对请求作出响应所需要的时间
  2. 响应时间的细划分
    1. 服务端响应时间:请求发出开始到客户端接收到最后一个字节数据所消耗的时间
    2. 客户端响应时间:客户端收到响应数据后呈现/响应用户所需的时间。

1.3. 并发用户数

  1. 并发用户数取决于测试对象的目标业务场景
  2. 先确定业务场景,然后基于场景采用某些对应方法计算并发用户数。
  3. 并发用户数与同时在线数是有区别的

1.4. 吞吐量

  1. 单位时间内处理的用户请求数量
  2. 访问人数/天,页面数/秒,请求数/秒,处理业务数/小时等等

1.5. 性能计数器

  1. 性能计数器是描述系统性能的一些数据指标
  2. Eg.内存使用率、CPU使用率、进程时间等都是常见服务器性能计数器
  3. 性能计数器与系统配置情况、系统架构、开发方式都有密切联系。

1.6. 负载测试

  1. 负载测试用于验证系统在正常负载条件下的行为
  2. 两种方式:负载数:并发用户数,事务数
    1. 直接到达负载数
    2. 逐步增加负载数

1.7. 压力测试

  1. 压力测试是评估应用系统处于或者超过预期负载时的行为。
  2. 压力测试关注的行为不一定是性能行为,可能是某种Bug,比如同步问题,性能泄露
  3. 压力级别逐渐增加的时候,系统性能应该按照预期缓慢下降,但是不应该崩溃。(系统性能能不能回来)
  4. 压力测试还可以发现系统崩溃的临界点,从而发现系统的薄弱点。

2. 具体实践

  1. 测试后期管理和测试。

2.1. 趋势IWSaaS+AWS性能测试

  1. IWSaaS:部署在云上的安全网关,部署在Amazon云平台,为全球提供服务(发布周期是1-2星期)
  2. Auto Scaling:动态调整实例
  3. 使用了一个监控服务器和性能测试控制服务器

2.1.1. 测试难点

  1. 十万级用户支持
  2. 20 + 安全网关实例
  3. 20 + Jmeter实例
  4. 动态实例:安全网关的数量是动态的,IP地址是动态的
  5. Jmeter多机联合不适合:负载会比较重


  1. 动态网关策略:

    1. CPU负载>70%,多开
    2. CPU负载<40%,少开

2.1.2. 测试要求和方案

  1. 基本测试要求:平均页面响应时间<2s
  2. 测试方案:
    1. Jmeter模拟用户产生HTTP流量来通过安全网关
    2. 初识用户数,逐渐增加用户数,直到找到符合条件的最大用户量和吞吐量
    3. 不断测试到大于2s为止

2.1.3. 无人值守性能测试

  1. 部署自动化
  2. 性能测试自动化
    1. 控制服务器
    2. 自动上传测试脚本
    3. 自动上传测试报告
  3. 持续集成
    1. Jenkins集成,自动触发
  4. 及早发现和快速定位问题

2.1.4. 测试环境

  1. 公网测试和本地测试
  2. splunk:漏洞管理系统
    1. 对于大量的服务器的log汇总到一起来查看
  3. Zenoss:自动组机测试

2.2. 淘宝Web性能测试

2.2.1. 页面加载事件的重要性

  1. 大多数用户期望的网站加载时间是3s,如果时间长于3s,网站就开始流失用户
  2. Amazon加载事件每多1s,收入少16亿收入

  1. 关注浏览器

2.2.2. 页面访问瀑布图

  1. 大量的时间浪费在了前端绘制上

2.2.3. 前端优化



  1. 前端的优化是性价比很高的工具

2.2.4. 服务器端性能测试流程

  1. 性能测试需求采集
  2. 性能方案评估
  3. 性能测试计划制定
  4. 性能测试方案的编写
  5. 性能测试方案的评审
  6. 开发脚本
  7. 数据准备
  8. 环境准备
  9. 执行性能测试
  10. 性能调优
  11. 编写性能报告
  12. 录入界限库
  13. 知识沉淀

2.2.5. 性能测试指标

  1. PV:压测方法和重要决策依据

  1. 前3个是重要的性能指标

  1. CPU消耗一定要注意不同核之间的负载均衡
  2. 保证CPU的满负荷运行


  1. 我们关心Java虚拟机中老生带(Old Generation)和内存变化情况

    1. 老生代GC在一小时以上

  1. 考虑网卡的瓶颈:

    1. 减少请求返回数量
    2. 缓存数据在本地
    3. 增大网卡带宽

2.2.6. 性能测试压力变化模型以及测试类型


2.2.7. 通过标准

  1. 决定是否能发布

2.2.8. PTS介绍和架构





  1. PTS 对于阿里云用户免费,第一次会有引导。
  2. 测试脚本
    1. 域名绑定:绑定好域名
    2. 登录模块:保证只需要登录一次。
    3. 支持上传参数(在请求连接里面选择右键从文件中进行选择变量)首先上传本地CSV,之后快速启动即可以完成测试
  3. 场景:
    1. 三种不同测试
    2. 施压器:乘以并发数得到最后的总数
  4. 任务:
    1. 持续时间
    2. 开始时候晚于当前则会排机测试,不然则需要手动触发
    3. 计费以实际为准
  5. 实时监控:查看更多的信息
  6. 可以查看服务器的日志情况

2.3. JMeter 使用

软件测试-4-性能测试相关推荐

  1. 软件测试_性能测试_关注点

    做软件测试的性能测试主要应该关注哪些方面?下面我总结了一下性能测试的关注点.有任何不足,欢迎指点! 百度网盘脑图链接:https://pan.baidu.com/s/1y2tf-5ILzS-iYAsw ...

  2. 流量为王的时代,软件测试的性能测试要怎么开展?

    目录 一般系统的性能测试步骤大体如下: 是什么让阿里双11近几年购物体验越来越好,支持高达54万订单/秒呢?是什么让钉钉.企业微信,快速恢复,支持1000万家企业在线办公呢?618快到了,你如何开展性 ...

  3. 使用Fiddler/Charles+Jmeter进行接口自动化测试和接口性能测试(关联接口测试、接口自动化测试、脚本录制、软件测试、性能测试、测试工具)

    目录 1.Fiddler篇,脚本录制,接口自动化测试,性能测试 2.Charles篇,脚本录制,接口自动化测试,性能测试 背景:有时候不是说我们不懂一个一个接口进行拼装编辑,只是为了我们能更好更快的进 ...

  4. 【软件测试】性能测试、负载测试、压力测试

    文章目录 性能测试 负载测试 压力测试 测试术语及缩略词 测试指标计算公式 性能测试 性能测试是以详细的性能需求为指导对系统的性能进行评估的测试活动. 性能测试是在一定的条件下判定应用运行时的&quo ...

  5. 软件测试中怎么分析性能的好坏,软件测试中性能测试结果分析

    分析原则:51Testing软件测试网At(fnE`6e+|3e\| 具体问题具体分析(这是由于不同的应用系统,不同的测试目的,不同的性能关注点)51Testing软件测试网AIdb1YLb1n e ...

  6. 软件测试学习-性能测试及工具Loadrunner(理论篇)

    1.性能测试的定义 通过自动化工具模拟系统的多种正常,异常,峰值等各项性能指标,以进行系统的性能优化的测试. 系统的性能包含执行效率,资源利用率等. 2.性能测试的背景 功能测试通过,系统功能趋于稳定 ...

  7. 软件测试的性能测试包括什么?

    性能测试包括什么? ⼀.什么是软件性能?什么是软件性能测试?⼆.不同群体关注的软件性能三.性能测试的类型 ⼀.什么是软件性能?什么是软件性能测试? 定义:软件的性能是软件的⼀种⾮功能特性,它关注的不是 ...

  8. 软件测试 | Jmeter 性能测试工具的实战应用《接口性能压测》的操作步骤详解

    嘿.大家好,我是4U: 接口测试可以提前发现软件bug,有效地降低软件的开发成本,而接口性能压测也可以达到同样的效果.如果形容LR是大炮,那么JM则是一把狙击步枪. 那么今天我们来讲讲接口性能压测. ...

  9. 【软件测试】性能测试工具基础-loadrunner12+jmeter

    上期文章,我们讲了基于python的selenium,用于做自动化测试.今天就简单说一下性能测试方面的一些知识点. 文章目录 一.性能测试相关概念 二.loadrunner基本使用 1.创建工程 2. ...

  10. 软件测试的性能测试怎么测,性能测试进阶——并发测试的方法

    本系列文章对性能测试中容易混淆的概念,方法进行总结.作为性能测试进阶版本,本文假设使用者已经会使用各种仪表,不会对基本配置进行描述. 相关阅读: [安全测试]性能测试进阶(Part1-基本概念) 文章 ...

最新文章

  1. 慕课袁春风老师《计算机系统基础》一二三部分练习题
  2. NGINX(一)内存结构
  3. 最后8小时 | 最新智能驾驶视觉技术行业研究报告出炉!圈内从业者、投资人不可错过...
  4. linux deepin20.5配置WebStorm桌面快捷方式:webstorm.desktop
  5. 一些ASP.NET不能调试问题的解决办法!
  6. PHP的pm、pm.max_requests、memory_limit
  7. vue 二进制文件的下载(解决乱码和解压报错)
  8. 指令系统——数据寻址(3)——堆栈寻址(详解)
  9. 大厂必问的分布式究竟是什么鬼?
  10. php多条件循环语句,PHP 实用教程-条件语句与循环语句
  11. 青岛Uber优步司机奖励政策(9月14日~9月20日)
  12. java除了框架还需要什么_除了框架,前端面试还问什么
  13. EasyUi模糊匹配搜索框combobox
  14. linux man中文手册
  15. php 递归函数 示例,php 递归函数用法示例
  16. gps高斯utm_UTM坐标系统与高斯
  17. android studio httpclient包导入,HttpClient不会导入Android Studio
  18. ubuntu 安装matlab+matconvnet
  19. 基金收益率计算5:金额加权收益率(MWRR)和时间加权收益率(TWRR)
  20. Can't open /dev/sda3 exclusively. Mounted filesystem?解决办法

热门文章

  1. 彻底关闭Windows 10 Defender病毒防护
  2. 在Ubuntu20.04中安装ROS2 Foxy版本
  3. Python绘制可爱的万圣节南瓜怪,不给糖果就捣乱,
  4. 建峰化工:被错杀的低价绩优股
  5. 《Fabric 的精简版白皮书》解读
  6. 基于keil4和proteus实现的简易密码锁
  7. 【网络流量入侵检测数据集】CIC-IDS-2017数据集预处理
  8. 串口控制直流电机程序 80C51单片机 L298N 普中51-单核-A4
  9. Codeforces#1157 F. Ehab and the Big Finale (思维+交互题)
  10. PlantUML 用代码画思维导图,时序图,流程图