热饭面试复习:【性能测试相关】上

2022-05-19 17:36:58 浏览数 (1)

前言

性能测试,面试官问的时候,一般只会从三个方面问:

  • 如何做性能测试?
  • 性能测试指标等基础知识
  • 如何分析性能瓶颈和优化

其实就算你真的做了性能测试,也大概率轮不到你来对数据层,函数代码层的算法 乃至架构,甚至中间件来指手画脚 去解决性能问题,公司的专业开发人员不是吃白饭的。但是呢?这些知识你要懂,这样以便随时打下手,也是拉开面试差距的主要指标。

如何做性能测试

这个问题就是要由浅入深的回答。从工具使用,基础的请求搭建,数据准备,到复杂的场景构造。

用jmeter / lr / 自研平台

jmeter是个轻量级的压测工具,且免费,所以使用比较广泛也算是面试必考。

lr是个收费的高级压测工具,能模拟各种复杂的场景和功能,如集合点,ip欺骗,分压机等。但因代码语言特殊,且收费,所以一般中小公司不用,而大公司就会自己研发压测平台,所以也很少用lr,面试几乎不问。

自研平台,难度极高,你要面对的是多个技术难点的细节追问:项目开发技术,底层驱动,表层交互,架构并发,队列消息,抓手赋能,报告生成,设计方案,流量回访,数据偏移,全链路保证,数据准备等方面,如果没真做过,建议不要瞎说。

jemter基础

负载发生器:

产生负载,多进程线程去模拟用户行为

用户运行器:

脚本运行引擎,用户运行器附加在进程或线程上,根据脚本模拟用户行为

资源生成器:

生成测试过程中服务器,负载机的资源数据

报表生成器:

根据测试数据生成报表,提供可视化方案

测试计划:

相当于新建一个项目,之后的具体性能测试功能设置都包含在此内

线程:

包含setup,teardown,线程组。分别是先运行,收尾运行,实际内容部门。

测试片段:

需要被调用的工具作用的特殊线程组

控制器:

取样器(记录响应最小单元设置)和逻辑控制器(顺序,循环,随机,单次,交替等逻辑执行策略)

监听器:

展示测试结果,包含聚合报告,结果树,图形结果等

定时器:

等待时间是控制客户端qps的手段,包含多种定时器

断言器:

包含多种方式多个位置的断言,保证接口请求符合预期

前置处理器:

请求头/体等设置,也可以设置用户参数等

后置处理器:

对响应进行处理,比如取出某返回值做为参数等

0 人点赞