性能测试-性能测试面试题大全【杭州多测师_王sir】

 【性能概念、并发工具】
什么是并发?
什么是tps?每秒处理的事务数
压力线程、TPS、并发用户数的区别?经常听一些人说,公司要求500并发,这个500并发表示什么呢?  ==》压力线程:jmeter是一个进程,这个进程里面可以启动很多个线程,可以对服务器进行发送请求施加压力,tps:服务器每秒处理的事务数,并发用户数是站在服务器角度去考虑的而且需要通过tps的概念来进行承载,并发这个服务器支持500个并发用户数表示服务器的阈值可以达到500tps,公司要求500并发有2种意思:第一种是通过500并发线程数进行施压,系统能承受的住,并且tps稳定,响应时间也合理在3秒内,第二种就是公司要求服务器能达到500并发用户数,也就是能达到500tps。
怎么找到最佳的并发线程数? ==》通过不断增加线程数,90%时间和吞吐量最优对应的线程数,就是最佳的并发线程数
压力线程数是否是并发用户数?  ==》压力线程指的是jmeter里面的线程数,并发用户数最好是用tps来承载,如果1个压力线程能产生16tps的压力,那么对于的并发用户数就是16tps
客户端并发线程数大,是否说明服务端性能好? ==》客户端线程越大并不能决定服务器性能就好,唯一能衡量服务器性能好坏的指标是tps,和并发线程数以及响应时间关系不大。因为1个线程可以产生1000tps,1000个线程也可以产生1000tps,只是对应的响应时间不同
什么是绝对并发和相对并发?参考哪个更合适? ==》其实不存在绝对的并发,只不过是通过jmeter的里面的定时器设置集合点达到的效果,如果要测试资源的竞争,是否会死锁之类的,可以参考加入集合点进行测试,相当于是绝对并发。
如何理解:性能测试,负载测试,容量测试,递增测试,强度测试等等?  ==》性能测试是一个最大的概念,其他的是性能测试里面的测试策略,或者叫做性能测试场景。
性能测试流程是?
性能测试方案包含哪些内容?
你们性能指标有哪些?
如何定义事务? ==》这个主要是根据tps里面的T是怎么来定义的,可以是接口级的,可以是业务级别,也可以是用户级别的
qps和tps区别?到底用哪个更合适? ==》TPS
负载和cpu使用率的关系是?   
如何找到并发数、平均响应时间、tps的最佳平衡点?  ==》通过不断增加线程数,90%时间和吞吐量最优对应的线程数,就是最佳的并发线程数
思考时间如何设置? ==》这个在设置场景的时候,需要模拟用户的行为习惯和业务来设置
你觉得使用28原则作为压测目标合理么? ==》如果是有生产上面统计的真实数据,取最近一段时间的高峰,分成24小时来拿到每个时间段的某个业务比例才是最符合业务需求的,28原则在一定程度上计算出来的并发线程数和tps是不准确的。
pv可以用来作为性能测试的指标么?
jmeter中,Ramp-Up Period 该如何设置?  ==》这个主要是看设置什么场景,如果需要让ramp up和响应时间以及tps呈现一个梯度的关系,则需要把Ramp-Up Period设置长一点,比如20个并发线程数,Ramp-Up Period可以设置为40或者60,这个可以更加清晰的看出性能瓶颈
loadrunner中,pacing和think time的区别?
jmeter参数化数据,如何设计?(数量&分布)
如何体现性能工程师的价值?
内存泄露和内存溢出的区别?  ==》老年代内存空间不足,频繁fullgc就会导致内存泄露,当持续的内存泄露,最终就会导致内存溢出,系统会调用报oom killer并且把耗费资源最大的进程给kill掉
单机tps100,8台服务器,tps是多少? ==》8*tps100 = 800tps
并发度和活跃度的区别? 
从行业角度描述一下什么是性能测试
从技术角度描述一下什么是压力测试
什么是能力验证,有哪些验证指标
用简单的语言描述什么是性能调优
为什么性能测试需要做参数化
用简单的语言描述什么是负载测试  ==》通过不断的加并发线程数或者加请求,让tps不断升高,直到系统的tps达到一个阈值,找到系统的拐点或者瓶颈点,并且找到最大的tps值。
3小时内预计完成一百万笔业务,单笔时间20s ,用28法则计算出平均并发==》平均并发:20*1000000/3*3600=1851.85并发线程数,TPS:1000000/3*3600=92.59
什么是容量测试的数据周期
完整的性能测试流程包括哪些内容
性能准入需要检查哪些内容

【关于场景】
如何理解性能测试业务模型?
场景的分类?
如何设计容量场景?
稳定性场景,跑多久?
并发线程梯度如何设置?
稳定性场景,需要设置递增场景么?
【关于监控】
针对主流中间件、数据库,你是如何监控的?
如果jmeter压测,是用jmeter插件还是如何监控的?
【关于实战】
请举例一个最有成就感的性能bug

TPS和QPS的区别
TPS:Transactions Per Second,意思是每秒事务数,具体事务的定义,都是人为的,可以一个接口、多个接口、一个业务流程等等。一个事务是指事务内第一个请求发送到接收到最后一个请求的响应的过程,以此来计算使用的时间和完成的事务个数。
以单接口定义为事务为例,每个事务包括了如下3个过程:
a.向服务器发请求
b.服务器自己的内部处理(包含应用服务器、数据库服务器等)
c.服务器返回结果给客户端
如果每秒能够完成N次这三个过程,tps就是N;
如果多个接口定义为一个事务,那么,会重复执行abc,完成一次这几个请求,算做一个tps。
QPS
QPS:Queries Per Second,意思是每秒查询率,是一台服务器每秒能够响应的查询次数(数据库中的每秒执行查询sql的次数),显然,这个不够全面,不能描述增删改,所以,不建议用qps来作为系统性能指标。
区别
如果是对一个查询接口(单场景)压测,且这个接口内部不会再去请求其它接口,那么tps=qps,
否则,tps≠qps
如果是容量场景,假设n个接口都是查询接口,且这个接口内部不会再去请求其它接口,qps=n*tps
jmeter聚合报告中,Throughput是用来衡量请求的吞吐量,也就是tps,tps=样本数/运行时间;
我们定义的是tps,不是qps
如果没有定义事务,会把每个请求作为一个事务
QPS是Query Per Second,是数据库中的概念,每秒执行条数(查询),被引申到压测中来了,但是不包括插入、更新、删除操作,所以不建议用qps来描述系统整体的性能
建议用tps,这个t,你可以随意的定义,可以是一个接口,也可以是一个业务流程等等。

猜你喜欢

转载自blog.csdn.net/weixin_39362573/article/details/130144677