性能测试根底
简述施行软件性能测试的流程?
a.性能需求剖析
筛选用户应用最频繁的性能来做测试,比方:登陆,搜寻,提交订单确定性能指标,比方:事务通过率为100%;90%的事务响应工夫不超过5秒;并发用户为1000人时CPU和内存的使用率在70%以下
b.性能测试计划
确测试工夫和测试环境和测试工具的抉择注明测试通过指标以及业务场景筹备性能测试数据
c.搭建性能测试环境
留神这里测试环境肯定要和线上正式环境保持一致
d.通过性能测试用例,编写性能测试脚本,筹备性能测试数据
性能测试脚本进行调优,设置检查点、参数化、关联、集合点、事务,调整思考工夫
e.设计性能测试场景,监控服务器,运行测试场景
f.剖析性能测试后果,判断性能瓶颈,反馈后果信息
g.回归性能测试
h.编写性能测试报告
简述基准测试、压力测试、负载测试、并发测试
a、基准测试
基准最简略的了解就是有根底的规范,这样能通过比照发现零碎的不同的与变动。个别状况下,基准测试有以下几种利用场景。
1)能够在指定的规范下通过基准测试建设一个性能基准,这样当前当零碎的环境、参数发送变动之后,在进行一次雷同规范下的测试,即可看出变动对性能的影响。例如,数据库的基准性能测试。
2)零碎进行基准测试能够在较早的阶段发现性能问题。例如,如果对BestTest论坛进行10个用户并发测试时,零碎呈现了死机景象,那么就没比拟进行后续测试。
3)某零碎素来没有进行过任何性能测试,须要对该零碎做一次性能评估作为后续开发调优的参考。这是基准测试常见的一种场景,也是大部分没有做过性能测试的公司最须要的。
基准测试不难理解,但实际起来经常被误会。以对某个零碎的数据搜寻进行性能基准测试用例,这个零碎的数据量会随着工夫的增长而增长,所以必须频繁地进但行基准测试,这样子能力精确地把握数据量的增长对系统性能的影响。然而进行的根底测试又恰好是在应用程序级别的,并不能主观地反馈全局的性能。所以,比拟好的做法是每次只批改一个中央,这样就能精确地判断出那个中央会对性能产生影响。
b、并发测试
并发测试是值通过模仿多个用户并发拜访同一个利用、存储过程或数据记录及其他并发操作,测试是否存在死锁、数据谬误等故障。为了防止数据库或者函数办法在并发下的谬误,须要专门针对每个模块进行并发测试。
并发数如何确定?
并发数 = PV/PVTime 页面连贯次数 HTTP响应工夫 * 因数/Web服务器数量。
其中,PVTime是PV的统计工夫,换算成秒,一天是86400s。页面连贯次数包含内部的JS、CSS、图片等,个别为10。HTTP响应工夫个别为1s或更少。因数个别为5。
假如,BestTest官网每天有6万PV,其余参数放弃默认,那么推算出来的并发数大抵为35
留神**:PV(page view)即页面浏览量。一个用户有可能发明十几个甚至更多的PV。它是目前判断网站拜访流量最常见的计算形式,也是反映一个网站受欢迎水平的重要指标。
3、负载测试
负载测试是值在肯定的软件、硬件及网络环境下,运行一种或多种业务,在不同虚构用户数量的状况下,测试服务器的性能指标是否在用户的要求范畴内,以此确定零碎所能接受的最大用户数、最大无效用户数以及不同用户数下的零碎响应工夫及服务器的资源利用率。
负载测试强调的是在肯定的环境下零碎可能达到的峰值指标,大多数的性能测试都是负载测试。例如:在各大网站上看到的各种显卡测试,都是通过运行3DMark或者某种游戏失去的最终数据,通过这个数据来说显著卡的峰值解决能力,这就是负载测试的一种。
4、压力测试
压力测试是指在肯定的软件、硬件及网络环境下,模仿大量的虚构用户数向服务器产生负载,使服务器的资源处于极限状态下并长时间间断运行,以测试服务器在高负载状况下是否可能稳固工作。
与负载测试取得峰值性能数据不同,压力测试强调在极其状况下零碎的稳定性,这个时候进去能力曾经不重要了。
性能测试中什么是思考工夫,为什么要设置思考工夫,jmeter如何设置?
什么是思考工夫?
思考工夫(Think Time)也称为“休眠工夫”,是指用户在进行操作时,每个申请之间的工夫距离。对于交互零碎来说,用户不可能继续一直地发出请求,个别状况下,用户在向服务端发送一个申请后,会期待一段时间再发送下一个申请。性能测试过程中,为了模仿这个过程而引入思考工夫的概念。在测试脚本中,思考工夫为脚本中两条申请语句之间的间隔时间。以后对于不同的性能测试工具提供了不同的函数来实现思考工夫。
jmeter定时器详解(常见的两种)
1、固定定时器Constant Timer
须要让每个线程在申请之前按雷同的指定工夫进展,就能够应用这个定时器;须要留神的是,固定定时器的延时不会计入单个sampler的响应工夫,但会计入事务控制器的工夫
2、对立随机定时器Uniform Random Timer
该计时器将每个线程申请暂停一个随机的工夫量,每个工夫距离的产生概率雷同。总的延时等于随机延时 + 偏移延时值。
Random Delay Maximum(in milliseconds):随机提早最大值(以毫秒为单位)
Constant Delay Offset(in milliseconds):恒定提早偏移量(以毫秒为单位)
什么是参数化?为什么要进行参数化。Jmeter如何实现
什么是参数化?
业务中脚本中有登录操作,须要输出用户名和明码,如果零碎不容许雷同的用户名和明码同时登录,或者想更好的模仿多个用户来登录零碎。这个时候就须要对用户名和明码进行参数化,使每个虚构用户都应用不同的用户名和明码进行拜访。
参数的不同形式
jmeter中参数化形式很多,以下解说两种常见的参数化形式
形式一:接着在之前创立的脚本的根底上,右键点击 配置元件---->CSV Date Set Config 举荐应用
形式二:应用函数助手进行参数化
什么是关联,为什么要做关联?
什么是Jmeter关联,为什么须要关联?
因为性能测试是基于接口的,HTTP协定是无状态的,为了解决这个问题就有session和token的形式,在个别登录后服务器生成之后,后续申请就须要携带session或者token的值,而咱们这里所说的关联其实就是应用获取到服务器响应中的session或者token为后续申请增加的过程,然而在有时候有的零碎中还存在一些动静的值也是须要关联的,例如工夫戳、一些非凡的验证字段等
那么Jmeter如何实现关联呢?常见的session和token
在jmeter中应用 后置处理器--->正则表达式提取器 实现关联的
须要在以后事物控制器,增加HTTP cookie管理器
什么是集合点。集合点的原理是什么?jmeter如何设置集合点
为什须要集合点,集合点有什么作用?
尽管咱们的“性能测试”了解为“多用户并发测试”,但真正的并发是不存在的,为了更实在的实现并发的操作,咱们能够在须要压力的中央设置集合点。以登录性能为例,每到输出用户名和明码登录的中央,所有的虚构用户都相互之间等一等,而后一起拜访,这样对服务器的冲击力更大,例如:能够在秒杀、抢购等高并发场景应用
jmeter集合点设置
步骤一:接着在之前创立的脚本的根底上,右键点击 HTTP申请---->定时器---->Synchronizing Timer
步骤二: 设置集合点
Number of Simulated Users to Group by(虚构用户组的数量): 每次开释的线程数量(例如:能够设置有50个须要用户一起开始登陆)。如果设置为0,等同于线程组中设置的线程数量。Timeout in milliseconds(超时工夫,以毫秒为单位): 如果设置为0,Timer将会期待线程数达到了"Number of Simultaneous Users to Group"中设置的值才开释。如果大于0,那么超过Timeout in milliseconds中设置的最大等待时间(毫秒为单位)后还没达 到"Number of Simultaneous Users to Group"中设置的值,Timer将不再期待,开释已达到的线程
Jmeter如何启动非图形化界面执行脚本生成测试报告?启动非图形化界面运行这样做有什么意义?
命令行界面间接运行脚本生成
能够通过如下命令,一次性实现测试执行和生成HTML可视化报告的操作,进入jmeter的bin目录下,输出如下命令:
复制代码
D:\tools\apache-jmeter-5.3\bin\jmeter.bat -n -t E:\性能测试脚本\蜗牛Boss.jmx -e -o D:\re -l login.log
-n:以非GUI模式运行Jmeter
-t:source.jmx 脚本门路
-l:记录样本到文本,能够看成日志,文件名为.log即可
-e:在脚本运行完结后生成html报告
-o:用于寄存html报告的目录
因为jmeter自身是采纳java开发的,比拟耗费零碎性能,如果采纳图形化界面进行测试场景的执行,会操作系统产生的压力值偏小
常见的性能测试指标有哪些?
1、均匀响应工夫:响应工夫越短越好
2、吞吐量:吞吐量反映的就是业务的解决能力,越大越好
a.HPS:每秒钟点击数(能够直观的了解为每秒钟能够收回多个HTTP申请),单位次/秒 ,b.TPS:每次中可能实现业务交易的次数,单位是笔/每秒c.QPS:每秒钟可能解决查问的次数,单位是次/秒
3、资源利用率
CPU:不能超过75%内存:内存中swap替换区间的应用实现意味着,物理内存耗尽,个别要防止这种状况,物理内存应用不要超过80%磁盘:磁盘忙碌率要低于70%。网络:带宽使用率不能超过70%。
写出几种监控Linux服务器的形式
1.jmeter serveragen监控服务器
2.Linux中top命令监控
3.监控工具 spolight