性能测试-5.性能测试理论知识2.0

  • 性能测试定义:

    • 在一定负载的情况下,被测系统的响应时间、吞吐率、资源利用率是否满足性能需求
  • 性能测试评估指标:
    • 响应时间:响应时间是从开始到完成某项工作所需时间的度量。通常是从客户方测量响应时间,响应时间通常随负载的增加而增加。
    • 吞吐量:随着负载的增加,吞吐量往往增长到一个峰值后,然后下降,队列变长,比如客户/服务器这样的端到端系统中,吞吐量依赖于每个部件的运行。系统中最慢的点决定了整个系统的吞吐率。
    • 吞吐率:通常用来指单位时间内网络上传输的数据量,也可以指单位时间内处理的客户端请求数量。是衡量网络性能的重要指标。
    • 资源利用率
      • 操作系统资源:CPU、内存、磁盘IO、交换空间(虚拟内存)
      • 服务器资源:Mysql\Tomcat (连接数、服务器的内存使用情况)
  • 性能测试工具:
    • Jmeter(开源)、ab(apache)、LoadRunner(HP)
  • 性能测试流程:
    • 制定性能测试目标
    • 选择性能测试工具
    • 设计性能测试
    • 监控分析
    • 性能调优
  • 性能测试解决方案
    • Virtual User Generator 录制并回发单个进程
    • Controller 告诉Generator如何工作, 程序、脚本、协议,工作内容如下:
      • 找压力测试机(压力机会模拟虚拟用户工作)
      • 分配工作压力(压力机高度,定义并发数)
      • 定时间(压力机运行的时间)
      • 脚本(VUGEN虚拟用户生成器)
      • 调度(让压力机干活=》压力机运行脚本=》对SUT(被测系统)产生负载=》被测系统内装得monitor(监视器)=》把内容发回到Controller=》DB=》Analysis)
    • Analysis 结果分析器 (图表和报表比较难分析出问题,如果看不懂图,就相当于没做性能测试),如果协议不一样,可以导致脚本和结果分析器不同,性能指标会不同
    • Scenario场景:Controller的工作    场景设计非常关键
  • 常见协议:
    • HTTP协议:

      • 支持客户/服务器模式;
      • 需传送请求方法和路径。请求方法常用的有GET、POST 、HEAD 、PUT。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,因而通信速度很快;
      • 服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间;
      • HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。
    • WEBSERVICE协议:
      • 使用soap协议得到你想要的东西(不分get和post,只是基于soap协议包装出来的) ;
      • 能处理较复杂的数据类型(XML) ;
      • 如果需要在后台调用一个其它应用的服务,这个时候,用webSerivice的方式来调用;
    • SOCKET协议:
      • 我们经常把socket翻译为套接字,socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用已实现进程在网络中通信。

原文地址:https://www.cnblogs.com/cmnz/p/9189320.html

时间: 2024-10-07 11:01:12

性能测试-5.性能测试理论知识2.0的相关文章

TestNG学习-001-基础理论知识

此 文主要讲述用 TestNG 的基础理论知识,TestNG 的特定,编写测试过程三步骤,与 JUnit4+ 的差异,以此使亲对 TestNG 测试框架能够有一个简单的认知. 希望能对初学 TestNG 测试框架的亲们有所帮助.若有不足之处,敬请大神指正,不胜感激! TestNG是什么?TestNG是一个灵感来自于 JUnit 和 NUnit 的一个设计用来简化广泛的测试需求的开源自动化测试框架,其引入了一些新的功能,使其功能更强大,而且易于使用,但是 TestNG 不是 JUnit 的扩展.它

堆和栈的理论知识

一.预备知识-程序的内存分配       1. 一个由c/C++编译的程序占用的内存分为以下几个部分 1.栈区(stack)-由编译器自动分配释放,存放函数的参数值,局部变量的值等.其操作方式类似于数据结构中的栈.2.堆区(heap)-一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收.注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵.3.全局区(静态区)(static)-全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初

JDBC编程理论知识(1)

1.SUN公司为统一对数据库的操作,定义了一套Java操作数据库的规范,称之为JDBC 2.JDBC全称为:Java Data Base Connectivity(java数据库连接),它主要由接口组成. 组成JDBC的2个包: (1)java.sql.*; (2)javax.sql.*; 3.JDBC在程序中的位置: 4.JDBC的六个固定步骤 1,注册数据库驱动[利用反射] 2,取得数据库连接对象Connection 3,创建SQL对象 4,执行SQL命令,并返回结果集 5,处理结果集 6,

Android初级教程对大量数据的做分页处理理论知识

有时候要加载的数据上千条时,页面加载数据就会很慢(数据加载也属于耗时操作).因此就要考虑分页甚至分批显示.先介绍一些分页的理论知识.对于具体用在哪里,会在后续博客中更新. 分页信息 1,一共多少条数据 select count(*) from blacktb; 性能低下 原因: sql解析器先查询数据字典,把*转成所有的列名和列的类型 然后把每行数据提取出来 最后统计多少行数据 select count(常量) from blacktb; 高性能的查询 不需要每行的记录,只需要行数 2,指定每页

数据库入门理论知识介绍

数据库入门理论知识介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 前言: 1.目前90%以上的公司面临的运维的瓶颈都在后端 最常见的2大瓶颈就是: 1>.数据库(极难扩展): 2>.存储: 所以说做互联网的运维工程师要是把以上两点问题解决就可以轻松的搞定整个架构 2.什么是数据库: 查百度上有长篇大论了一下数据库特点,我们可以简单的理解: 数据库就是一个存放数据的仓库,这个仓库按照一定的数据结构(数据结构是指数据的组织形式或数据之间的联系)来组织,存储的,我们可以通过数

iOS Socket理论知识

iOS Socket理论知识 序言 网络七层由下往上分别为物理层.数据链路层.网路层.传输层.会话层.表示层和应用层.其中物理层.数据链路层和网络层通常被称作媒体称,是网络工程师所研究的对象;传输层.会话层.表示层和应用层则被称作主机层,是用户所面向和关心的内容. http协议对应与应用层 TCP/UDP协议对应于传输层 IP协议对应于网络层 三者本质上没有可比性.何况HTTP协议是基于TCP连接的.TCP/IP是传输层协议,主要解决数据如何在网络中传输:而HTTP是应用层协议,主要解决如何包装

计算机编程基础:栈、堆、堆栈概念区分及理论知识

一.预备知识—程序的内存分配  一个由c/C++编译的程序占用的内存分为以下几个部分  1.栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等.其操作方式类似于数据结  构中的栈.  2.堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 .注意它与数据结构  中的堆是两回事,分配方式倒是类似于链表,呵呵.  3.全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在  一块区域, 未

统计学习基本理论知识(一)

本篇将依据<统计自然语言处理>(宗成庆),重新梳理统计学习相关理论知识,相关概率论与梳理统计的课本不再列出来,可以找任意相关的课本复(预)习. 概率 概率是表示事件发生的可能性,将随机试验中的事件映射到实数域.用$P(A)$表示事件A的概率,$\Omega$表示试验的样本空间(所有可能发生的事件),则概率满足: 非负性:$P(A) \geq 0$ 规范性:$P(\Omega) = 1$ 可列可加性:对于可列个事件$A_1,A_2,...$,如果事件两两互不相容($A_i \bigcap A_j

理论知识总结

理论知识总结 1. 什么是js:就是修改样式 2. 事件 onclick鼠标点击事件  onload加载事件  onmouseover---onmouseout鼠标移入移出事件    onchange更改事件.改变事件   onmousedown---onmouseup鼠标按下抬起事件 3. 获取元素的方式 (1)getElementById(id); ---通过id获取一个元素 (2)getElementsByTagName(标签名);---通过标签名获取一组元素 (3)getElements