💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
# 性能测试篇 [TOC] > ### 性能测试怎么做的? 参考答案: 1. 做性能需求分析,挑选了用户使用最频繁的功能来做性能测试,比如:登陆,打开系统首页,搜索,提交订单,确定性能指标,比如:事务通过率为100%,90%的事务响应时间不超过3秒,CPU和内存的使用率为70%以下。 2. 搭建性能测试环境,准备好性能测试数据。 3. 使用Jmeter开发优化脚本,包括:参数化,断言,关联等。 4. 设计性能测试场景,我们这个项目做了单用户单功能循环200次的基准测试,然后使用1500个用户,执行30分钟的负载测试,看系统有没有性能瓶颈; 5. 我们搭建了分布式压力测试环境进行测试,每台压力机并发500个用户,并监控linux服务器的CPU,内存,IO。 6. 分析性能测试结果,如果有性能瓶颈,收集相关的日志提单给开发修改。 7. 开发修改好后,回归性能测试,然后输出性能测试报告。 > ### 如何确定系统能够承载的最大用户数? 通过负载测试,不断增加用户数,随着用户数的增加,各项性能指标也会相应产生变化,当出现了性能拐点,比如,当用户数达到某个数量级时,响应时间突然增长,那么这个拐点处对应的用户数就是系统能承载的最大用户数。 > ### 你们系统哪些地方(哪些功能)做了性能测试? 我们选用了用户使用最频繁的功能来做性能测试,比如:登陆,打开系统首页,搜索,提交订单。 > ### 你们性能测试在哪里做的? 我们会搭建一套独立的性能测试环境进行测试。 > ### 你们性能测试什么时间做? 功能测试之后,系统比较稳定的时候再做。 > ### 怎样分析性能测试结果? 1. 查看聚合报告和服务器的资源使用图,检查响应时间,事务成功率,CPU,内存和IO使用率是否达到要求,如果出错率达到了总请求数的3%,我们会检查是什么原因导致的,修改好后,重新测试; 2. 如果出现了性能瓶颈,比如响应时间,或者CPU使用率不达标,我们会从服务器上导出日志,分析是哪个地方导致响应时间过长,如果分析不出来,就叫上开发一起讨论,确定问题后,就提单给开发修复,修复好了就进行回归测试。 > ### 如何判断网络是否存在瓶颈? > > 在性能测试结束之后,我们会根据性能测试的结果,查看在整个性能测试过程中,网络的吞吐量是多少,如果网络的吞吐量占到了服务器的70%以上,我们就认为网络存在瓶颈,通常会增加带宽或者压缩传输数据。 > ### 响应时间不达标 响应时间不达标的话,我们会根据性能测试结果先检查看下是否是服务器带宽存在问题,如果带宽存在瓶颈,则会考虑增加带宽或者压缩传输数据,如果带宽没有问题的话,我们会从服务器上导出日志,开发一起讨论分析是哪个地方导致响应时间过长,确定问题后,就提单给开发修复,修复好了就进行回归测试。 > ### CPU使用率不达标 CPU使用率不达标,我们会从服务器上导出日志,分析是哪个地方导致CPU使用率不达标,如果分析不出来,就叫上开发一起讨论,确定问题后,就提单给开发修复,修复好了就进行回归测试。 > ### 程序在单用户场景下运行成功,多用户运行则失败,提示连不上服务器。 原因:程序没有做多线程处理。 > ### 程序实现的功能是,随机给用户分配不同的任务,单用户运行时,能成功分配;多用户并发申请任务时,所有用户得到的任务都是一样的。 原因:程序存在线程同步的问题。 > ### 系统并发200个用户,服务器返回 http status-code = 500 原因:数据库连接没有来得及关闭,就有用户访问上来了,导致数据库崩溃 。这个就是数据库的链接这块开发没有处理好 > ### 你们的性能测试需求哪里来的? 参考答案:我们的需求文档上有的,不过有时候不太合理,我们可能需要和BA进行讨论。比如,我之前做了一个公司内部用的OA系统的性能测试时,要求并发用户200人,我们整个公司都没有100人,很明显,做200人并发是没有必要的,后来,我们只做了50人并发。 > ### 如何实现200用户的并发? 参考答案:在请求的前面添加集合点,设置并发用户数为200 > ### 什么情况下要做关联,关联是怎么做的? 参考答案:当发给服务器的请求数据需要依赖另一个请求返回的数据,就用关联。 > ### 有验证码的功能,怎么做性能测试? 参考答案: 1)、将验证码暂时屏蔽,完成性能测试后,再恢复。注意:屏蔽验证码是不会给性能测试的结果带来影响的。 2)、使用一个万能的验证码。 > ### 你们性能测试做的是前台还是后台? 参考答案: 我们做的是后台服务器的性能 > ### 性能测试指标有哪些? 平均事务响应时间,90%的事务响应时间,TPS,CPU、内存 > ### 你们项目最佳的并发用户数是多少? 参看答案:我们当时做到1500个并发用户的时候,查询功能的响应时间超过了性能指标2秒多,原因是有几个表的索引建得不合理导致的,重新建索引后,问题就解决了。我们当时做到1500并发用户后,就没再继续增加用户量了。 > ### 分布式环境怎么搭建? 分布式的环境搭建比较复杂,当时我也是根据自己的笔记来搭建的。具体的步骤不记得了,大概是要先修改配置文件,将所有需要使用到的压力机的IP地址添加进来,然后在压力机只需要开启服务,在主机的电脑就可以控制远程启动了 > ### 怎么监控服务器资源的 我们使用的是Nmon工具来监控服务器资源的,它能够将linux上一段时间的资源以文档的形式保存下来。 > ### Jmeter做性能测试的工作原理是什么? Jmeter通过主机来控制各个压力机,并发大量用户,对服务器产生负载,从而实现性能测试。 > ### 服务器的配置是怎样的 CentOS、 6.8 CPU型号:英特尔 酷睿 i5 CPU核数:16核 内存:32G