性能测试学习(一)--基础知识点

最近在学习性能测试,整理了下一些知识点。

  首先从ISO9216质量模型切入,这个模型展示了去完整测评一个软件的时候,需要从哪些维度去考虑。如下图所示,一般需要从功能性、可靠性、易用性、效率、维护性、可移植性这6个维度去测评。软件的性能测试就是从效率这一维度去测评软件。

  简单的对效率这一维度里的内容进行解读:

  • 时间特性:就是软件的快慢,能否达到用户的需求?
  • 资源利用率:在达到时间特性以后,对资源的利用率是否在用户的期望之下?

  那么,给出性能测试的定义:

观察系统在一个给定的环境和场景中的性能表现是否与预期目标一致,评判系统是否存在性能缺陷,并根据测试结果识别性能瓶颈,改善系统性能的完整的过程。

  在定义里,需要特别关注标红的部分,在描述性能测试时,需要基于给定的环境和场景。给定的环境涉及: 硬件服务器、操作系统、网络、数据库、Web服务器、应用服务器。场景就是指用户如何使用。

  在做性能测试时,目标是很多的,针对不同的目标就会采用不同的测试策略。

  • 负载测试
在一定的软件、硬件及网络环境下,通过改变负载方式、增加负载等来发现系统中所存在的性能问题。

  这种测试主要用于确定系统所能承载的最大用户数(系统不崩溃),最佳用户数(用户体验最好,系统能支撑的最大的数量)。和在不同用户数(常见用户数)下的系统响应时间及服务器的资源利用率。

  • 压力测试
在一定的软硬件及网络环境下,通过模拟大量的虚拟用户向服务器产生负载,使服务器的资源处于极限状态(超出能力范围)下长时间连续运行。

  目的测试服务器在高负载情况下是否能够稳定工作,找出系统最薄弱环节。然后可以进行正对性优化。

  • 并发测试
通过模拟多个用户并发访问同一个应用、同一存储过程或数据记录以及其他并发操作。

  测试是否存在死锁、数据错误等故障。并发抢资源很容易发生问题。

  • 稳定性测试
在一定的软件、硬件及网络环境下,模拟一定数量虚拟用户运行一种或者多种业务,长时间的运行(7*24)系统。

  目的是检测系统在长时间运行下的稳定性和性能指标是否符合预期。可以发现资源泄露这类问题。

原文地址:https://www.cnblogs.com/mujiujiu/p/9886292.html

时间: 2024-08-02 17:19:16

性能测试学习(一)--基础知识点的相关文章

c语言学习之基础知识点介绍(三)

本节继续介绍c语言的基础知识点. scanf函数:用来接收用户输入的数据. 语法:scanf("格式化控制符",地址列表); 取地址要用到取地址符:&(shift+7) 例如:int num =0; csanf("%d",&num);printf("num = %d \n",num); 注意:格式化控制符前面要求输入什么类型的数据,那么地址列表那里就必须只能放相应类型变量地址.输入值的时候可以指定输入值的分隔符, 也可以 默认用回

oc语言学习之基础知识点介绍(四):方法的重写、多态以及self、super的介绍

一.方法重写 /* 重写:当子类继承了父类的方法时,如果觉得父类的方法不适合,那么可以对这个方法进行重新实现,那么这个就重写. 注意:也就是说,一定只能发生在父类和子类关系中. 然后是子类重新实现父类的方法,绝对不是再写一个自己类的方法. 代码中原话叫:子类重写父类方法. 因为父类定义的方法不一定适用于子类. 注意:如果有重写,那么调用的是自己重写后的方法,如果没有重写,那么就调用的是父类的方法. 所以我们方法有一个执行的过程: 1.先去自己类里面找这个方法,如果找到就执行. 2.如果没找到,就

c语言学习之基础知识点介绍(十三):枚举的介绍和使用

一.枚举的介绍 /* 枚举:限制的待选项. 语法: enum 枚举名{ 选项1, 选项2, 选项3, ........ 选项n }; 注意:枚举中,选项之间用 , 隔开,最后一个不用加 , :并且枚举已 ; 结尾. 声明枚举变量: enum 枚举名 变量名 ; 例如:enum qHand qh; 赋值: 1.先声明,后赋值 enum 枚举名 变量名 ; 变量名 = 枚举项; 例如: enum qHand qh; //qh是变量名,enum qHand 是类型 qh = 石头; 2.声明的时候初始

c语言学习之基础知识点介绍(一)

本系列是为了学习ios做准备的,也能作为c语言入门的教程看看. printf函数: printf函数作为输出语句,主要的作用个就是输出用户想输出的语句. 例如:printf("我是一个大帅哥~~"); printf("数字1=%d,数字2=%d",10,20);//%d接下来会在一起解释. /* %d:填入int,short型的数据,例如printf("数字1=%d,数字2=%d",10,20); %ld:填入long型的数据,例如printf(

Java学习---面试基础知识点总结

Java中sleep和wait的区别 ① 这两个方法来自不同的类分别是,sleep来自Thread类,和wait来自Object类. sleep是Thread的静态类方法,谁调用的谁去睡觉,即使在a线程里调用b的sleep方法,实际上还是a去睡觉,要让b线程睡觉要在b的代码中调用sleep. ② 锁: 最主要是sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步控制块或者方法. sleep不出让系统资源:wait是进入线程等待池等待,出让系统资源,其他线程可以占用CPU.一

c语言学习之基础知识点介绍(十八):几个修饰关键字和内存分区

一.几个修饰关键字 全局变量: 全局变量跟函数一样也分为声明和实现.如果是全局变量,实现在它调用之后,那么需要在调用之前进行声明.注意:全局变量的声明只能写在函数外,写在函数就不是全局变量了而是局部变量. static: 修饰局部变量:      可以把局部变量变为静态变量.意思就是:程序一启动就加载,程序退出才会回收空间(跟全局变量很像) .   静态变量:用static修饰的局部变量就叫静态变量. 修饰全局变量:            让全局变量只能在本模块中访问.     修饰函数:   

oc语言学习之基础知识点介绍(五):OC进阶

一.点语法介绍 /* 以前封装后,要给属性赋值,必须调用方法 这样做,有两个缺点: 1.代码量多,调用方法要写的东西多. 2.看起来并不像是给属性赋值,也不像取值. 我们用点语法就可以更好的解决! 点语法的语法: 对象.属性; 注意:这里的属性不需要加_ 对象.属性 = 值; 点语法的本质: 其实就是调用getter或者setter方法. 点语法注意事项: 1.在类的方法里面如果用self.age 这个是调用方法,self->_age 是直接调用成员变量. 2.千万记得不要在setter或者ge

oc语言学习之基础知识点介绍(一):OC介绍

一.第一个OC程序 #import <Foundation/Foundation.h> //导入头文件 int main(int argc, const char * argv[]) { //main函数 @autoreleasepool {//自动释放池,我们现在写代码最好都写这里面 NSLog(@"Hello, World!"); //输出语句 } return 0; //退出程序,返回一个值给系统看 } 二.OC中的字符串 /* 前缀的概念:(了解一下) 提供框架的作

c语言学习之基础知识点介绍(五)

本节主要说关系运算式和逻辑运算式. 一.关系运算式 1.等于(==):判断左边的表达式是否等于右边的表达式 2.大于(>):判断左边的表达式是否大于右边的表达式 3.大于等于(>=):判断左边的表达式是否大于等于右边的表达式 4.小于(<):判断左边的表达式是否小于右边的表达式 5.小于等于(<=):判断左边的表达式是否小于等于右边的表达式 6.不等于(!=):判断左边的表达式是否不等于右边的表达式 //注意:c语言中,关系运算所得结果只有0和1,0代表false(假),1代表tr