性能测试 QQ 交流群:777139651
描述你在岗位中的工作职责

清楚的表达自己在上家公司主要做什么的,负责什么项目、平台的接口性能测试等等,不要把之前所工作的公司都介绍一遍。在不明白面试官意图的情况下滔滔不绝,结果不会太好

你的项目测试怎么开展,有遇到哪些性能问题?

需要根据自己公司的一些情况、和对性能测试的理解介绍下当前性能测试的流程。通过介绍流程,面试官可以初步了解你们测试的是否系统全面,哪个环节可能是有问题。是否有值得借鉴或学习的。这些都是加分项。

“遇到哪些性能问题”,一般是想通过这个问题,了解求职者的经验是否丰富。稍微经验比较丰富点的求职者,可以列举出一堆各种各样的问题。大多数的回答:比如配置参数的调整,文件太大引起的内存泄漏。这样的回答比较官方,像是从网上抄来的,没有新意。

针对性能问题有什么解决方案?

资深的性能测试:可以把前因后果说的明明白白

初级阶段的性能测试:通常会回答自己不是很清楚,提交研发了或者自己只是负责发现问题,定位解决问题是研发来做的。

接着面试官可能会出 2 道题目,看下求职者的分析能力及定位问题的能力

如何把性能测试引入项目?

相关人员分析被测系统是否有性能相关的需求。相关人员包括运维、开发、运营等。

  项目暂时没有性能测试可能是暂时没有因为性能问题产生过故障或用户量暂时不高。平时多补充性能测试相关的知识,早晚用的上。

面对大用户量的系统并发压力测试,主要是从哪几个方面去考虑关注点?

主要关注系统的关键业务的响应时间、资源占用情况,TPS

还要根据系统的特性来设计性能测试用例。比如有些系统有主从互备,我们就应该在考虑在其中一个故障情况下,系统的表现如何

如何测试系统支持 8000 并发,允许 100 万用户同时在线的测试?

首先要确认是否需求真的需要 8000 的并发。因为有些性能需求是由于需求人员或者会开发人员不清楚而随手拍脑袋写的。

拿支持 8000 并发来说,到底是什么样的业务场景?s 是否包含思考时间?这些都需要具体细化,需要我们测试人员和相关人员进一步确认。

100 万用户同时在线也需要进一步细化,这 100 万是登录后什么都不做?还是部分产生压力?。

很多性能测试需求是需要进一步确认和细化的。

如何根据下面需求设计用例?

1:系统应确保在运行 5~10 年(每年 1000 万只表计数据处理能力,1000 万只表每只表数据量大约 2M)后对录入、文件导入、文件导出等操作时不得出现明显卡滞或数据溢出、丢失情况。

  2:系统长期多角色运行时其文件导入或导出速度不得低于 100k/s。

答:这几个需求涉及到:容量测试、可靠性测试 、负载测试

系统要求 5--10 年的未来性能储备。那就在执行时候设计一个按照目前标准来计算五年后的数据量情况来设计一个用例。如果 5 后的测试用例通过,那再设计一个 10 年的测试用例

导入导出不得低于 100K,要进一步确认是在什么网络下,不同网络对下载影响大的。同时也要进一步确认是并发导入导出。因为有些系统导入导出是指定人来做的,存在并发的情况很少。而有些是多人同时操作的。需根据具体操作业务确认

在监控 linux 系统的时候怎么识别内存的使用情况和瓶颈点?

对于大部分系统来说,关注一下是否内存泄漏,关注下是否使用了交换分区。是否与磁盘交互太多

如何对系统的性能问题进行分类?

比如说配置参数调整、数据库、程序问题占比大概多少,通过这个是想了解求职在性能测试方面的经验丰富与否以及个实际人能力。配置参数调整只能占我日常性能测试问题的 10%,甚至不到,90% 的问题是程序写的不合理和 SQl 使用不当导致的。一个稳定的系统环境是不会轻易去调整参数的,因为每一次调整存在风险。

描述你的性能测试流程

1.做性能需求分析,挑选用户使用最频繁的功能来做测试,比如:登陆,搜索,提交订单

2.确定性能指标,比如:事务通过率为 100%;90% 的事务响应时间不超过 5 秒;并发用户为 1000 人时 CPU 和内存的使用率在 70% 以下

3.性能测试计划,明确测试时间 (通常在功能稳定后,如第一轮测试后进行) 和测试环境和测试工具的选择

4.搭建性能测试环境

5.通过性能测试用例,编写性能测试脚本,准备性能测试数据

6.性能测试脚本进行调优,设置检查点、参数化、关联、集合点、事务,调整思考时间

7.设计性能测试场景,监控服务器,运行测试场景

8.分析性能测试结果,判断性能瓶颈,反馈结果信息

9.回归性能测试

10.编写性能测试报告

如何确定系统能够承载的最大用户数?

通过负载测试,不断增加用户数,随着用户数的增加,各项性能指标也会相应产生变化

如果出现了性能拐点,比如,当用户数达到某个数量级时,响应时间突然增长,那么这个拐点处对应的用户数就是系统能承载的最大用户数

你们系统哪些地方 (哪些功能) 做了性能测试?

我们选取了用户使用最频繁的场景来做性能测试,比如:登陆,打卡,请假,报销。

你们的并发用户数是怎么确定的

1)、根据线上收集到的用户访问数据进行预估。

2)、根据业务需求确定。

你们性能测试在什么环境开展?

搭建一套独立的性能测试环境进行测试,硬件设施尽量和线上环境保持一致

你们性能测试什么时间做?

功能测试之后,系统比较稳定的时候开展

怎样分析性能测试结果

1)首先查看结果概况,查看事物有没有大面积失败,有没有大量的 Error,响应时间有没有异常波动,如果都正常,表明测试结果可信

2)分析性能指标,比如,响应时间,事务通过率,CPU 等指标是否满足需求;如果测试结果不可信,分析异常的原因,开发修改后进行回归测试

程序在单用户场景下运行成功,多用户运行则失败,提示连不上服务器

程序可能没有做多线程处理。

如果性能测试脚本出现错误,从哪些方面分析?

检查日志,定位出错的位置,然后做对应的修改

语法出错:多打了个符合/空格;正则错误,导致关联失败

如何判断系统的性能是变好了还是变坏了

通过基准测试判断性能状况

性能测试需求哪里来的?

根据需求文档。如果需求不太合理,需要和相关人员进行讨论。比如,某个页面要求并发用户 2000 人,但是整个数据库的注册用户都没有 1000 人。很明显,做 2000 人并发是没有必要的。

如何实现 200 用户的并发?

在脚本对应的请求后添加集合点,设置隐性等待时间 3s

什么情况下要做关联,关联是怎么做的

根据需求文档或者抓包结果,对比找到需要关联的值,通过表达式获取,然后将变量传给下一个请求

有验证码的功能,怎么做性能测试

1)将验证码暂时屏蔽,完成性能测试后,再恢复。

2)使用万能验证码

jmeter 有哪些部件组成?

测试计划,线程组,配置元件,监听器

简述使用 jmeter 的步骤

新建线程组-- 选择 sampler — 设置代理服务器 — 添加结果树聚合报告 — 调试脚本 — 场景设计和运行 — 结果分析


↙↙↙阅读原文可查看相关链接,并与作者交流