2.2 Linux的性能监控 本节以Ubuntu Linux为例进行介绍。 1. 负载为1表示当前单核CPU全部占用,如果一台机器有3个CPU,每个CPU都是双核的,这是负载最大值为1×2×3=6。 1 1 99 0 0 | 9232k 470k| 0 0 | 0 0 | 129 192 从上面可以看见有9232K的数据处于磁盘读操作,性能低的瓶颈可能有进程在读磁盘
为什么选择k6 在得知需要做性能测试后,我们就开始针对性能测试做了一番调研,在阅读了一些性能测试工具对比的文章后,最终挑选了k6,locust和Gatling做了进一步对比,下面是对比的结果。 -> updateOrder k6的executor选择 k6提供了多个executor,不同的executor会以不同的方式去执行测试。 我们可以根据项目的需求来选择不同的executor来执行测试。 让性能测试在CI上跑起来-集成TeamCity k6官方提供了目前主流CI工具的How to文档,非常容易上手。 Scaling 测试中发现性能不稳定,后来发现是UAT环境开启了HPA会触发Auto Scaling,所以在执行测试时,需要考虑不同的场景: 测试固定pod下的性能,方便优化对比性能 测试Auto Scaling 的Policy有效性 网络影响 这是一个比较通用的问题,测试时应注意网络变化对性能指标的影响,防止变量太多,性能数据分析不准确 不同API的性能差距较大 这里主要是用例设计时需要考虑,k6会统计所有的请求数据
1.编写docker-compose文件 编写redis.yml,network_mode为host这样可以减少网卡资源消耗,提高性能,如果要求不高可以使用桥接网络,这样端口可以自由映射;调优修改的配置都是修改宿主机的配置 3.性能测试 redis-benchmark -h 127.0.0.1 -p 6379 -c 50 -n 10000 -q
原文后续持续更新地址 https://www.aiprose.com/blog/145 1.编写docker-compose文件 编写redis.yml,network_mode为host这样可以减少网卡资源消耗,提高性能 3.性能测试 redis-benchmark -h 127.0.0.1 -p 6379 -c 50 -n 10000 -q
简介性能测试计划是在进行软件或系统的性能测试之前制定的详细计划和指导文件。它描述了所需性能测试的目标、范围、测试环境、资源需求、测试策略、测试用例、时间表等重要信息。 为什么要制定性能测试计划制定性能测试计划的主要目的是确保性能测试的有效性和可靠性。 以下是制定性能测试计划的重要原因:明确测试目标:性能测试计划可以明确定义所需测试的性能目标,例如响应时间、吞吐量、并发用户数等。这有助于确保测试的准确性和一致性,并提供可评估的性能指标。 确保工具和测试环境的通信设置正确。编写性能测试脚本:根据需要和测试场景,编写性能测试脚本。性能测试脚本用于定义测试场景,包括模拟并发用户行为、设定请求参数和验证响应等。 测试完成后,及时与相关人员沟通,确认是否满⾜需求。发送测试报告邮件。总结为什么要制定性能测试计划。性能测试计划的流程。性能测试中的常用命令。
20230114_性能测试-性能测试指标 本文总结接口性能测试中,常见的性能指标概念,查看及通用通过标准 注: 本文只考虑B/S架构 4.性能测试指标.pdf Jmeter.xlsx 客户端指标 并发用户数 多个用户在同一时期内进行相同的事物或者操作称为并发, 而用户数量称为并发用户数 绝对并发: 多个用户同一时刻对服务端进行请求 相对并发: 多个用户同一时间段对服务器进行请求 并发用户数和产品性能的关系 超过此节点理发师开始自乱阵脚 设定及查看方式 设定测试计划时, 选择合适的并发用户数对系统进行测试 通过性能测试, 通过找到产品的最佳并发数和最大并发数 准过标准 最佳并发数应该大于系统平均负载, 否则需要进行优化 平均时间: 2/5/8标准 95% Line及99% Line 时间不能高于平均时间太多(自己拿捏吧) 不同架构的软件,不同的行业, 不同的使用场景,对于RT的要求都不同, 往往需要参考公司内部测试规范和惯例能确定标准 Error% 概念 所有请求中失败请求的占比 查看方式 Jmeter中通过Aggregate Report查看 准过标准 一般业务: 失败率<0.5% 重要业务: 失败率=0 点击率Hit Rate 概念 性能测试指
2022年第 11 期《JMeter 性能测试实战》课程,6月15号开学 上课方式:微信群视频在线教学,方便交流 本期上课时间:2022年6月15号 - 2022年9月2号(具体看时间安排) 报名费:报名费 领导给了几个性能指标,我啥都不会,怎么开展性能测试? 报名的学员,老师可以辅导,开展性能测试 有没试听? 想听下老师讲课的风格 有的,试听咨询微信/QQ: 283340479 (上海-悠悠)
什么是性能测试 在软件开发中,性能测试是一种常见的测试实践,用于确定系统在特定工作负载下的响应能力和稳定性表现。它还用于排查,观察,验证系统在其他方面的质量。例如可扩展性,可靠性和资源使用情况。 性能测试是测试工程的一个子集,是一种计算机科学实践,致力于将性能指标构建在系统的设计,实现和架构中。 相关概念解释 解释 QPS 每秒查询率 Queries Per Second。 常见性能测试工具 由于我对其他测试框架不是很了解,这里只是简单的罗列,感兴趣的同学可以帮忙补充。 平台和可视化平台 常见性能测试类型 维基百科罗列了多达 8 种 性能测试类型,感兴趣的小伙伴可以查看文末连接查看更多详细内容。 其主要目的是:通过较长时间的性能测试来发现系统长时间处于压力之下而导致的性能和可靠性问题。 关键词解释 在 K6 中,通过一些参数配置可以模拟上述的测试场景。
web-port=PORT PORT 指定 –web-host 的端口,默认是8089 -f LOCUSTFILE, –locustfile=LOCUSTFILE LOCUSTFILE 指定运行 Locust 性能测试文件 ,默认为: locustfile.py –csv=CSVFILEBASE, –csv-base-name=CSVFILEBASE CSVFILEBASE 以CSV格式存储当前请求测试数据。 –no-web no-web -c 和 -r 配合 模式运行测试,需要 -c 和 -r 配合使用. -l, –list 不带参数 显示测试类, 配置 -f 参数使用 –show-task-ratio 不带参数 打印 locust 测试类的任务执行比例,配合 -f 参数使用. –show-task-ratio-json 不带参数 以 json 格式打印 locust 测试类的任务执行比例,配合 -f 参数使用.
""" 之前偶然听到k6这款便捷的性能测试工具,好奇之下就用来玩了一下,结果真的不懒,做一些单接口的压测完全够用了, 所以写下这个介绍文档,第一是自己做一个笔记,第二是为有需要的朋友简单介绍一下,方便快速上手 """ 简介 k6是高性能的负载测试工具,也是一种高性能工具,旨在在预生产和QA环境中以高负载运行测试,可使用JavaScript编写脚本。 它是一个以开发人员为中心(当然,测试人员亦可以使用,因为真的很方便),免费和开源的负载测试工具,旨在使性能测试具有生产力和令人愉悦的体验,可最大程度地减少系统资源的消耗。 名称 描述 vus 当前的虚拟用户数 vus_max 虚拟用户的最大数量(已预先分配VU资源,以确保在扩大负载级别时性能不会受到影响) iterations 测试中的VU执行JS脚本(default函数 其他操作 在K6执行测试任务时,我们可以再次打开一个新的命令窗口来控制测试的暂停测试等操作: ?
性能测试一直是测试行业中比较难的一块,含金量比较高,工作经验越多工资越高,而且最近很多招聘中初级测试都要求会性能测试,要求越来越高了,那我们就一起学习性能测试吧! 负载测试:在一定软件硬件的环境下,不断进行增加负载,来确定满足性能指标情况下能够承受的最大用户数 性能测试:模拟用户在负载环境下,测试系统的响应时间和吞吐量是否满足性能指标的要求 TPS:每秒完成的事务数 RT:响应时间 pv:每秒用户访问页面的次数 三、使用jmeter完成接口测试 要学习性能测试,就不得不先去学习如何使用jmeter测试,下面给大家介绍个简单的案例,后面我会不断更新性能测试合集,这里只是入门
ie=utf-8&wd=jmeter性能测试 请求参数: >ie:编码方式,默认为utf-8 >wd: 搜索词 返回结果:搜索结果,通过校验结果中是否含有搜索词wd来判断本次请求成功或失败 二、实际操作 当启动时间已过,手动只需测试时当前时间也会覆盖它。 结束时间:测试结束时间,持续时间会覆盖它。 因为接口调试需要,我们暂时均使用默认设置,待后面真正执行性能测试时再回来配置。 : 6、右键点击“HTTP请求” -> “添加”-> “监听器” -> “断言结果” : 在运行一次,就可以在断言结果中查看到结果的成功或失败了 7、右键点击“线程组” -> “添加” -> “监听器 ” -> “聚合报告”,用以存放性能测试报告 这样,我们就完成了一个完整Http接口的JMeter性能测试脚本编写。 8、重新配置线程组,做性能测试。
简介性能测试报告是性能测试的产出物之一,它是对系统性能测试结果和数据的总结和分析,记录了系统在不同负载和场景下的性能表现和性能问题。 性能测试报告作用性能测试报告的输出是非常重要的,主要原因如下:决策依据:性能测试报告提供了对系统性能的评估和分析,能够帮助项目团队做出决策。 性能测试报告的内容性能测试摘要测试目的、范围、主要发现和建议的简短概述测试背景、目的和目标的描述测试环境描述进行性能测试时使用的实际环境,包括硬件设备、软件系统、网络配置等。 、配置文件、日志文件和其他支持材料最终结论基于测试结果的最终结论性能测试报告总结性能测试报告应该清晰、准确、客观,并且易于理解为开发团队提供了改进产品性能的依据用于测试结果数据、图形、图表来支持最终结论与调优建议性能测试报告是性能测试结果的最终提交物总结什么是性能测试报告 为什么要输出性能测试报告。性能测试报告的内容。性能测试报告总结
这样的情况下,能用生产环境做性能测试吗? 二、性能测试工具 三、性能测试流程 一、性能测试的前提 1、性能测试的必要性研究---关键项评估 做性能测试,首先要进行关键项的评估。 公司的这个产品需要做性能测试。得知道哪些功能需要先做性能测试,哪些功能后做性能测试。 6)业务剧增; 这种促销活动,在上线之前肯定要做性能测试的。 虽然这不是核心业务,这种促销活动做完了,下次可能不会再用这个页面了,但是因为它的特殊性,也得做性能测试。 7)重大缺陷修复。 在开发的时候,功能测试人员也在测试,性能测试人员写的脚本可以直接对接测试环境。 将来只要把环境的ip对接到性能测试环境中去,就可以在性能测试环境中做性能测试了。 6.测试报告与结果跟踪 性能测试报告。 性能测试问题跟踪。 发现的性能问题并不能这次就能解决。比如发现个内存问题,有可能是代码的结构性的调整来解决这个问题。 那就当期解决不了了。
blog.weiyigeek.top/2019/4-17-576.html Redis基础运维之在K8S中的安装与配置 - https://blog.weiyigeek.top/2019/4-17-524.html Redis数据库性能测试及优化配置 1.redis-benchmark 命令 描述: Redis 性能测试是通过同时执行多个命令实现的,该命令是在 redis 的目录下执行的; 官网参考: https://redis.io/topics 基础实例: # (1) 同时执行 10000 个请求来检测性能(所有默认测试),通过 -q 参数让结果只显示每秒执行的请求数 $ . 影响基准测试要素 1) 工作负载(连接的客户端的数量) 2) 不同版本的Redis 3) 提供服务的服务器物理配置(磁盘、网络、CPU、内存),在多 CPU 插槽服务器上,Redis 性能取决于 NUMA 6) 与 TCP/IP 环回相比,Unix 域套接字的性能优势在大量使用流水线(即长流水线)时趋于降低。
性能测试目的 1 性能调优 开发人员对系统调优后,需要测试人员配合去做性能测试,验证这次优化是否有效果。如果性能指标相比较之前的性能指标更好了,说明系统优化的有效果。 那么不同的设计方案到底哪个好,我们可以通过性能测试验证不同方案的性能,其次了解系统大概达到什么量级的并发后系统就会出现问题,了解系统架构在达到性能峰值时哪块会出现瓶颈,帮助开发针对性地进行系统调优工作。 ,频繁操作数据库的,系统核心功能这些地方考虑到性能测试范围内。 ---- 性能测试原则 3+1原则(指量、全、深+快) 主要对性能测试设计、测试执行以及数据分析。 将经验固化成模板或工具便于经验的传承,减少测试的重复和遗漏;二是性能测试的自动化,包括性能测试环境构建和测试执行以及测试分析的自动化,自动化对性能测试效率的提升价值更大。
为测试设置时间限制 如果要指定测试的运行时间,可以使用 --run-time 或者 -t: $ locust -f --no-web -c 1000 -r 100 --run-time 1h30m 一旦时间到 然后,将一直等到连接了诸多从节点之后才开始测试。
性能测试必知名词 QPS:每秒查询率 RPS:每秒用户请求率 HPS:每秒用户点击率 后面的我再介绍 性能测试流程 需求分析——熟悉业务 明确性能测试指标 了解整体软件功能、架构 制定测试计划,做好工作量评估 编辑测试用例 搭建环境(包括监控)、脚本开发 执行测试 测试结果分析与调优 分析依据:结果图表 分析思路:服务器硬件瓶颈->网络瓶颈->服务器OS瓶颈(参数配置、数据库、web服务器)->应用瓶颈(SQL 语句、数据库设计、业务逻辑、算法) 输出测试报告与结果跟踪
简介性能测试流程是指在进行性能测试时所遵循的一系列步骤和阶段,以确保对系统的全面测试和评估。性能测试流程的具体步骤可能会因组织、项目和测试需求而有所不同。 性能**测试流程**分析现状:首先需要对应用程序或系统进行详细的分析,了解其当前的性能状况、发现性能瓶颈,并确定性能测试的目标。 编写测试计划/脚本:根据用户场景和性能验收标准,编写性能测试计划,包括测试目标、测试场景、测试数据准备等。同时,根据场景编写相应的测试脚本,用于自动化执行性能测试。 持续测试:性能测试是一个持续的过程,在系统迭代升级或新增功能时需要定期进行性能测试,以确保系统的性能稳定性和可扩展性。 ** **总结性能测试流程。性能测试方法。
); 确保测试周期汇中,都会把代码冻结应用于测试环境; 确保性能测试中,不会受到其他用户的影响(防止对性能测试执行和结果造成影响); 确定所有性能测试的目标,并征求各利益方(整个测试团队和相关人员)的同意 内部性能测试额外关注的点: 团队成员以及汇报制度(建立专门的性能测试团队或有内部测试专家组成的核心团队(大型公司); 最起码要确保您有一位项目经理和足够的性能测试工程师); 准备好性能测试中需要用到的测试工具和资源 第四步:创建性能测试场景 考虑如下几点: 你所做的性能测试属于哪种类型的性能测试: 基准测试、负载测试、渗透测试(疲劳测试)、压力测试(峰值测试)、非性能测试; 设置思考时间和步进时间(压力测试除外), 第五步:执行性能测试 执行性能测试仅仅是验证软件的性能目标。 第六步(后测试阶段):分析测试结果、撰写测试报告和环境恢复 数据收集(收集并备份所有在性能测试项目中生成的数据); 对比项目需求设定的性能目标和测试结果,确定性能测试是否达标(提前确定性能指标的“一致性