jmeter测试服务器性能测试报告,Jmeter的性能测试

jmeter测试服务器性能测试报告,Jmeter的性能测试需要分析的系统信息需要分析的业务信息性能需求评估确定性能测试点:关键业务:确定被测项目是否属于关键业务,有哪些主要的业务逻辑点,特别是跟交易相关的功能点。例如转账,扣款等接口。如果项目(或功能点)不属于关键业务(或关键业务点)日请求量:确定被测项目各功能点的日请求量(可以统计不同时间粒度下的请求量如:小时,日,周,月)。如果日请求量很高,系统压力很大,而且又是关键业务,该项目需要做性能测试,而且关…

大家好,又见面了,我是你们的朋友全栈君。

需要分析的系统信息

需要分析的业务信息

a6dc015663a1e1c167d3dfa8d00e78bc.png

性能需求评估

88f8202f1e92998854cfa8443e874514.png

确定性能测试点:

关键业务:

确定被测项目是否属于关键业务,有哪些主要的业务逻辑点,特别是跟交易相关的功能点。例如转账,扣款等接口。如果项目(或功能点)不属于关键业务(或关键业务点)

日请求量:

确定被测项目各功能点的日请求量(可以统计不同时间粒度下的请求量如:小时,日,周,月)。如果日请求量很高,系统压力很大,而且又是关键业务,该项目需要做性能测试,而且关键业务点,可以被确定为性能点

逻辑复杂度:

判定被测项目各功能点的逻辑复杂度。如果一个主要业务的日请求量不高,但是逻辑很复杂,则也需要通过性能测试。原因是,在分布式方式的调用中,当某一个环节响应较慢,就会影响到其它环节,造成雪崩效应。

运营推广活动:

根据运营的推广计划来判定待测系统未来的压力。未雨绸缪、防患于未然、降低运营风险是性能测试的主要目标。被测系统的性能不仅能满足当前压力,更需要满足未来一定时间段内的压力。因此,事先了解运营推广计划,对性能点的制定有很大的作用。例如,运营计划做活动,要求系统每天能支撑多少 PV、多少 UV,或者一个季度后,需要能支撑多大的访问量等等数据。当新项目(或功能点)属于运营重点推广计划范畴之内,则该项目(或功能点)也需要做性能测试。

建立性能指标

fbf093ebffb86b698d92122643450794.png

a.选取核心业务流程(重要程度/频繁)

b.并发用户数

c.事物吞吐需求

d.响应时间需求

e.系统占用资源需求

f.可扩展性需求

建立系统负载模型

业务层面:

(a)核心业务流程吞吐率

(b)高峰期业务分布时段

系统负载:

(a) 高峰/平常场景吞吐率

(b)CPU/IO/MEM/NETWORK

数据来源:

(a)服务器端监控

(b)数据库日志

(c)用户提出需求

制定测试计划的实施时间和方案

预设本次性能测试各子模块的起止时间和结束时间

测试环境的配置:局域网,虚拟机,操纵系统,数据库,中间件

参与人员:谁负责哪些任务,测试策略。

产出:测试方案,分析结果

搭建测试环境

测试机环境

699b4c009f148c8acff600e839733835.png

服务器环境

9b7d2fad3ae29acfe9713593033aa10a.png

测试场景设计

通过和业务部门沟通以及以往用户操作习惯,确定用户操作习惯模式,以及不同的场景用户数量,操作次数,确定测试指标,以及性能监控等

测试用例设计和脚本开发

选择LoadRuner或者Jmeter,我使用的是Jmeter。

我使用Jmeter的工具进行录制,

(PS:能直接写脚本就自己写尽量少录制,录制有时候会有干扰)

对脚本进行修改,增强脚本,让脚本更符合业务逻辑,可用性更强。

(1)参数化用户输入

(2)关联数据

(3)增加事物

(4增加检查点)

调试脚本

(1)Vugen单次回放

(2)Vugen多次回放

(3)Controller单脚本多用户

(4)Controller多脚本多用户

(5)查看回放日志

验证脚本

(1)通过检查点验证

(2)通过查看后台服务器日志验证

(3)通过测试系统查看运行后台变化

(4)利用SQL语句查询/插入/更新/修改,查看效果

测试数据准备

获取数据有两种方式:

(1)拉取生产数据,尽量保持数据一致以及量级足够

(2)利用脚本自动生成数据或者利用测试工具生成数据,(如:利用JDBC预埋数据)

a)负载测试数据:并发测试时需要多少数据?比如登录场景?

b)DB数据量大小:为了尽量符合生产场景,需要模拟线上大量数据情况,那么要往数据库里提前插入一定的数据量。

性能测试执行和管理

执行测试脚本

在已部署好的测试环境中,按照业务场景和编号,按顺序执行我们已经设计好的测试脚本

测试结果记录

根据测试采用的工具不同,结果的记录也有不同的形式;展现方式:折线图,统计图,表格等,现在大多的性能测试工具都提供比较完整的界面图形化的测试结果,当然,对于服务器的资源使用等情况,可以利用一些计数器或第三方监控工具来对其进行记录,执行完测试后,对结果进行整理分析,

02ff432194de75b1bac34af2e7ec5009.png

性能测试结果分析与调优

测试环境的系统性能分析

根据之前记录得到的测试结果,经过计算,与预定的性能指标进行对比,确定是否达到了我们需要的结果;如未达到,查看具体的瓶颈点,然后根据瓶颈点的具体数据,

瓶颈定位分析

e77f80dd7f4ec967cb176d57cd05282c.png

硬件设备对系统性能表现的影响分析

配置几个不同的测试环境,故可以根据不同测试环境的硬件资源使用状况图进行分析,确定瓶颈是再数据库服务器、应用服务器抑或其他方面,然后针对性的进行优化等操作

其他影响因素分析

影响系统性能的因素很多,可以从用户能感受到的场景分析,哪里比较慢,哪里速度尚可,这里可以根据2\5\8原则对其进行分析;

至于其他诸如网络带宽、操作动作、存储池、线程实现、服务器处理机制等一系列的影响因素,具体问题具体分析,

测试中发现的问题

在性能测试执行过程中,可能会发现某些功能上的不足或存在的缺陷,以及需要优化的地方,需要多次执行测试。

测试报告和跟踪

fa269f45be6d7467e024c92da6623795.png

性能测试工程师完成该次性能测试后,需要将测试结果进行备案,并做为下次性能测试的基线标准,具体包括性能测试结果数据、性能测试瓶颈和调优方案等。同时需要将测试过程中遇到的问题,包括代码瓶颈、配置项问题、数据问题和沟通问题,以及解决办法或解决方案,进行知识沉淀。

上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。

22/2<12

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/151273.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • windows下面编译ucosII操作系统

    windows下面编译ucosII操作系统       ucos是一款在嵌入式系统上应用的实时操作系统,为了调试和学习(我们部门负责DSP、MCU、ARM到服务器的各种程序),有必要再windows下面模拟运行,我在一个德国网站上找到了一份移植过的代码,经过我的小小修改,已经可以用VS2010和Dev-C++(MinGw编译器)上编译运行。 运行过程中发现2个编译器编译出来的程序运行结果并不相同,看来2种编译器在实现…

    2022年6月4日
    30
  • 计算机cpu后面字母代表什么意思,CPU后缀含义是什么意思 AMD/intel处理器后缀字母代表什么涵义…[通俗易懂]

    计算机cpu后面字母代表什么意思,CPU后缀含义是什么意思 AMD/intel处理器后缀字母代表什么涵义…[通俗易懂]CPU分为intel与AMD两大品牌(平台),两者不但型号众多,而且型号后缀命名也非常之多,那么AMD/intel处理器后缀字母代表什么涵义?下面装机之家帮助广大电脑爱好者科普一下。CPU后缀往往会让用户困惑不已,如果您不查阅资料的话,你就不会知道i7-6820HK与i7-6820HQ的区别什么,也不知道i5-4200M与i5-4200U的性能差距有多大!因此,关于CPU后缀字母的科普是有必要的。…

    2022年5月22日
    45
  • neo4j如何安装_neo4j环境变量配置

    neo4j如何安装_neo4j环境变量配置一、neo4j简介最近开始学习知识图谱,所以首先想先学习一下neo4j的使用。Neo4j是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。由于知识图谱中存在大量的关系型信息(实体—关系—实体),使用结构化数据库进行存储将产生大量的冗余存储信息,因此将图数据库作为知识图谱的存储容器成为流行的选择。当前较为常用的图数据库主要有Neo4j等。二、neo4j的安装功能快捷键撤销:Ctrl/Command+Z重做:Ctrl/Command+Y加粗:Ctrl/Co

    2025年7月24日
    2
  • TaintDroid剖析之File & Memiry & Socket级污点传播

    TaintDroid剖析之File & Memiry & Socket级污点传播

    2021年9月17日
    48
  • 数组的splice方法和slice方法_splice方法返回值

    数组的splice方法和slice方法_splice方法返回值功能强大的splice方法数组中最强大的方法splice(),可以对数组进行添加、删除、替换操作删除arr=[‘0赵’,‘1钱’,‘2孙’,‘3李’,‘4周’,‘5吴’]arr.splice(index,num)第一个参数表示开始删除的索引位置,num表示删除的个数如arr.splice(1,2)返回的结果为:arr=[‘0赵’,‘3李’,‘4周’,‘5吴’]添加arr=[‘0赵’,‘1钱’,‘2孙’,‘5吴’]arr.splice(index,0,‘x’,‘y’)第一个参数表示

    2022年9月25日
    3
  • 一些模板代码

    一些模板代码jdbc模板代码nio读写模板代码publicclassNewBufferTest{publicstaticvoidmain(String[]args)throwsIOExce

    2022年7月3日
    28

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号