热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

软件性能测试pdf,软件性能测试.pdf

软件性能测试软件性能测试软件性能测试软件性能测试软件性能测试是什么?软件性能测试是什么?•性能测试的必要性•性能测试的目标–考察系统是否满足预期的性能要

软件性能测试软件性能测试软件性能测试软件性能测试 软件性能测试是什么?软件性能测试是什么? • 性能测试的必要性 • 性能测试的目标 – 考察系统是否满足预期的性能要求 – 作为对系统进行调优的参考 – 考察系统的可扩展性 –用性能测试手段发现系统存在的问题 – 提供部署方案的参考 第一部分第一部分 性能测试基本概念性能测试基本概念 性能测试的应用领域性能测试的应用领域 • 验证能力 • 能力规划 • 性能调优 • 缺陷修复 几个性能测试的实际应用示例几个性能测试的实际应用示例几个性能测试的实际应用示例几个性能测试的实际应用示例 • 某 ASP (Application Service Provider)在升级了 自己的系统后,为了验证新的系统是否能满足性能要 求 • 某集成商在完成集成项目后,需要向用户提供项目的 性能测试报告 • 某软件提供商在确定了使用新平台的产品架构后,要 验证架构是否能满足性能要求 • 某软件在现场出现了实验室测试中没有出现的并发问 题,需要在实验室对问题进行分析定位 性能测试中的基本概念性能测试中的基本概念性能测试中的基本概念性能测试中的基本概念 • 响应时间(Response Time ) • 点击数(Hits ) • 页面请求(Page view ) • 吞吐量(Throughout ) • 并发用户(Concurrency User ) • 资源利用率(Resource Usage ) 不同视角的系统性能不同视角的系统性能不同视角的系统性能不同视角的系统性能 • 用户视角 • 响应时间 • 稳定性 • 系统视角 • 延迟(网络延迟、数据库延迟) • 系统资源使用状况 • 开发者视角 • 代码实现 • 数据库实现 用户视角的系统性能用户视角的系统性能用户视角的系统性能用户视角的系统性能 • 响应时间——用户最重视的性能体验 – 2/5/10 原则 – 过长的等待时间会让用户烦躁和不安 • 稳定性——系统的崩溃带来的直接是用户的崩溃 – HTTP 500 – HTTP 404 – Connection Refused – 应用服务器/ 数据库崩溃 响应时间的分解(响应时间的分解(响应时间的分解(响应时间的分解(WEB WEB WEB WEB 应用)应用)应用)应用) •响应时间= 网络响应时间+ 应用程序响应时间 •响应时间= (N1+N2+N3+N4)+(A1+A2+A3) 影响性能的因素影响性能的因素影响性能的因素影响性能的因素 • 网络状况 • 硬件设备 • 系统/ 应用服务器/ 数据库配置 • 数据库设计和数据库访问实现(SQL 和SP ) • 业务的程序实现 开发角度性能问题的原因开发角度性能问题的原因开发角度性能问题的原因开发角度性能问题的原因 • 对所使用的技术不熟悉 • 系统架构设计的不合理 • 程序员的实现错误 性能测试的分类性能测试的分类性能测试的分类性能测试的分类 • 性能测试(Performance Testing ) • 负载测试(Load Testing ) • 压力测试(Stress Testing ) • 配置测试(Configuration Testing ) • 并发测试(Concurrency Testing ) • 容量测试(Volume Testing ) • 可靠性测试(Reliability testing ) • 失败测试(Failover Testing ) 不同测试类型和测试目标的关联不同测试类型和测试目标的关联不同测试类型和测试目标的关联不同测试类型和测试目标的关联 • 能力验证 – Performance Testing – Load Testing – Reliability Testing – Failover Testing • 缺陷修复 – Stress Testing – Configuration Testing – Concurrency Testing • 性能调优 – Performance Testing – Load Testing – Stress Testing – Configuration Testing • 能力规划 – Volume Testing – Configuration Testing – Load Testing 性能测试该在什么时候做?性能测试该在什么时候做?性能测试该在什么时候做?性能测试该在什么时候做? • 答案:依据你的性能目标 – 在设计阶段——验证架构的性能 – 在编码阶段——阶段性验证系统性能/ 性能调优/ 发现系统缺陷 – 在产品部署阶段——验收测试的一部分 – 在维护阶段——考察系统的可扩充性/ 定位系统缺陷 第二部分测试目标设定第二部分测试目标设定第二部分测试目标设定第二部分测试目标设定 性能测试需求的来源性能测试需求的来源性能测试需求的来源性能测试需求的来源 • 需求文档 • 设计文档 • 客户备忘录 确定测试目标的原则确定测试目标的原则确定测试目标的原则确定测试目标的原则 • “以需求为本” • 测试目标确定的经济性考虑 • 基于风险的测试目标确定 了解真正的性能测试需求了解真正的性能测试需求了解真正的性能测试需求了解真正的性能测试需求 • 识别项目干系人 • 隐藏在“测试”之后的实际想法 • 一个真实的案例 对照性能测试的应用领域对照性能测试的应用领域对照性能测试的应用领域对照性能测试的应用领域 • 检查你的需求落在哪个领域 • 了解你需要了解的 DiscussDiscussDiscussDiscuss • 疑问? • 我们遇到过哪些性能测试的需求? • 你能识别每个性能测试要求之后的真实的 Story 吗? • 你是怎样确定性能测试需求的? 第三部分性能测试方案第三部分性能测试方案第三部分性能测试方案第三部分性能测试方案 在开始制订方案之前在开始制订方案之前在开始制订方案之前在开始制订方案之前 • 确定测试目标和需求 • 了解现状 • 业务使用状况 • 环境 • 确定需要监控的指标 • CPU 使用率 • Mem 使用情况 • …… 环境设计环境设计环境设计环境设计 • 网络环境 • 软硬件环境 • 环境的维护方案 • 时间同步问题 • “镜像”环境 “ “真实环境真实环境真实环境真实环境” ”与与与与“ “测试环境测试环境测试环境测试环境” ” • 性能测试结果的环境相关性 • 一个环境的测试结果很难拓展到另一个环境 • 根据不同的测试目标选择环境 • 能力验证/ 能力规划——选择实际的环境 • 性能调优——在非实际环境下的测试结果对性能调 • 优仍然有效 • 缺陷修复——部分缺陷可以在非实际环境下进行定位 • 选择环境的政治性考虑 数据设计数据设计数据设计数据设计 • 数据库数据 • 方便识别和观察的数据 • 有特殊含义的数据 • 数据维护方案 数据设计的示例数据设计的示例数据设计的示例数据设计的示例 • 用户数据设计 • 业务数据设计 • 负载数据设计 • 测试过程中的数据验证 用例和场景设计用例和场景设计用例和场景设计用例和场景设计 • 对业务的分析和分解 • 根据业务确定用例 • 不同用例按照不同发生比例组成场景 • 了解每个场景的实际意 用例与场景示例用例与场景示例用例与场景示例用例与场景示例 • 背景:一个进销存系统,包括登录、货物入库、订单 处理、货物出库、查询五个模块 – 用例设计:针对模块设计用例 • 场景设计: – 场景1 :10 %登录,10 %入库,30 %订单,20 %出库,30 %查 询(1000 用户)——日常 – 场景2 :10 %登录,90 %查询(400 用户)——周末盘点 – …… 设定需要监控的资源设定需要监控的资源设定需要监控的资源设定需要监控的资源 • CPU 利用率 • Mem 使用情况 • Disk I/O 状况 • 数据库监控 • JVM 使用状况监控 测试脚本准备测试脚本准备测试脚本准备测试脚本准备 • 测试工具的录制 • 在录制的基础上进行修改 • 验证脚本的正确性 • 脚本的维护 其他需要注意的地方其他需要注意的地方其他需要注意的地方其他需要注意的地方 • 应用服务器的Warm up 问题 • 应用服务器的Cache • 时间同步 • 浏览器或客户端应用的Cache 考虑系统对性能测试的支持考虑系统对性能测试的支持考虑系统对性能测试的支持考虑系统对性能测试的支持 • 必要情况下,可以考虑修改代码以支持性能测试 • 自行开发的测试工具可以部分弥补系统可测试性不足 的缺陷 DiscussDiscussDiscussDiscuss • 你做过的性能测试中,有遇到方案设计方面的难题 吗? • 在方案设计的前期,根据需求进行相关数据的 • 收集非常关键,你是怎样来收集这些数据的? • …… 测试工具在性能测试中的地位测试工具在性能测试中的地位测试工具在性能测试中的地位测试工具在性能测试中的地位 • “工具不是万能的,但没有工具是万万不能的” • 会使用工具不等于会做性能测试 • 工具不能代替的 • 确定测试需求 • 制订测试方案 • 分析测试结果 • 工具可以完成的 • 产生负载和压力 • 收集资源数据 • 生成报表 性能测试工具组成性能测试工具组成性能测试工具组成性能测试工具组成 常用的性能测试工具常用的性能测试工具常用的性能测试工具常用的性能测试工具 • 商业工具 – Mercury LoadRunner – Rational Performance Tester – SeagueSilkTest – RadviewWebLoad • 免费工具 – WAS • 开源工具 – OpenSTA – JMeter – Grinder 性能测试工具的评估要点性能测试工具的评估要点性能测试工具的评估要点性能测试工具的评估要点 • 支持的协议 • HTTP/HTTPS 协议(几乎所有工具都支持) • FTP 、Telnet 等协议(所有商业工具、JMeter 支 持) • C/S 方式的数据库协议(目前只有商业工具支持) • 支持的平台 • 脚本语言 • 扩展性和灵活性 • 特殊需求(SessionID 、多IP 模拟等)

展开阅读全文



推荐阅读
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了软件测试知识点之数据库压力测试方法小结相关的知识,希望对你有一定的参考价值。 ... [详细]
  • Tomcat/Jetty为何选择扩展线程池而不是使用JDK原生线程池?
    本文探讨了Tomcat和Jetty选择扩展线程池而不是使用JDK原生线程池的原因。通过比较IO密集型任务和CPU密集型任务的特点,解释了为何Tomcat和Jetty需要扩展线程池来提高并发度和任务处理速度。同时,介绍了JDK原生线程池的工作流程。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • Spring MVC 浅谈
    大学时写的的文章,当时文章水平略差,大家见谅。MVC这个词儿,最早的定义应该是作为一种软件架构设计模式出现在软工里面的,即使用model、view、controller来设计及定 ... [详细]
  • 数据库异常智能分析与诊断
    数据库,异常, ... [详细]
  • 传统|同类_Spring Boot进阶:原理实战与面试题分析读后感
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了SpringBoot进阶:原理实战与面试题分析读后感相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 本文介绍了自动化测试专家Elfriede Dustin在2008年的文章中讨论了自动化测试项目失败的原因。同时,引用了IDT在2007年进行的一次软件自动化测试的研究调查结果,调查显示很多公司认为自动化测试很有用,但很少有公司成功实施。调查结果表明,缺乏资源是导致自动化测试失败的主要原因,其中37%的人认为缺乏时间。 ... [详细]
  • 上图是InnoDB存储引擎的结构。1、缓冲池InnoDB存储引擎是基于磁盘存储的,并将其中的记录按照页的方式进行管理。因此可以看作是基于磁盘的数据库系统。在数据库系统中,由于CPU速度 ... [详细]
  • 代理模式的详细介绍及应用场景
    代理模式是一种在软件开发中常用的设计模式,通过在客户端和目标对象之间增加一层中间层,让代理对象代替目标对象进行访问,从而简化系统的复杂性。代理模式可以根据不同的使用目的分为远程代理、虚拟代理、Copy-on-Write代理、保护代理、防火墙代理、智能引用代理和Cache代理等几种。本文将详细介绍代理模式的原理和应用场景。 ... [详细]
  • 在本教程中,我们将看到如何使用FLASK制作第一个用于机器学习模型的RESTAPI。我们将从创建机器学习模型开始。然后,我们将看到使用Flask创建AP ... [详细]
  • 数据库技术:execute immediate
    首先在这里发发牢骚,指责下那些刻板的书写方式,不考虑读者理不理解,感觉就是给专业人员用来复习用的一样,没有前戏,直接就高潮,实在受不了!没基础或基础差的完全不知道发生了什么,一脸懵 ... [详细]
  • 1.Jetpack主要特性有以下三点:1.加速开发组件可单独使用,也可以协同工作,当使用kotlin语言特性时,可以提高效率。2.消除样板代码AndroidJetpack可管理繁琐 ... [详细]
author-avatar
jieyang6888_130
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有