当前位置 : 主页 > 网络安全 > 测试自动化 >

JMETER性能测试

来源:互联网 收集:自由互联 发布时间:2021-06-22
需要分析的系统信息 需要分析的业务信息 性能需求评估 确定性能测试点: 关键业务: 确定被测项目是否属于关键业务,有哪些主要的业务逻辑点,特别是跟交易相关的功能点。例如
需要分析的系统信息

需要分析的业务信息

 性能需求评估

确定性能测试点:
  关键业务:
  确定被测项目是否属于关键业务,有哪些主要的业务逻辑点,特别是跟交易相关的功能点。例如转账,扣款等接口。如果项目(或功能点)不属于关键业务(或关键业务点)
  日请求量:
  确定被测项目各功能点的日请求量(可以统计不同时间粒度下的请求量如:小时,日,周,月)。如果日请求量很高,系统压力很大,而且又是关键业务,该项目需要做性能测试,而且关键业务点,可以被确定为性能点
  逻辑复杂度:
  判定被测项目各功能点的逻辑复杂度。如果一个主要业务的日请求量不高,但是逻辑很复杂,则也需要通过性能测试。原因是,在分布式方式的调用中,当某一个环节响应较慢,就会影响到其它环节,造成雪崩效应。
  运营推广活动:
  根据运营的推广计划来判定待测系统未来的压力。未雨绸缪、防患于未然、降低运营风险是性能测试的主要目标。被测系统的性能不仅能满足当前压力,更需要满足未来一定时间段内的压力。因此,事先了解运营推广计划,对性能点的制定有很大的作用。例如,运营计划做活动,要求系统每天能支撑多少 PV、多少 UV,或者一个季度后,需要能支撑多大的访问量等等数据。当新项目(或功能点)属于运营重点推广计划范畴之内,则该项目(或功能点)也需要做性能测试。
  建立性能指标

a.选取核心业务流程(重要程度/频繁)
  b.并发用户数
  c.事物吞吐需求
  d.响应时间需求
  e.系统占用资源需求
  f.可扩展性需求
  建立系统负载模型
  业务层面:
  (a)核心业务流程吞吐率
  (b)高峰期业务分布时段
  系统负载:
  (a) 高峰/平常场景吞吐率
  (b)CPU/IO/MEM/NETWORK
  数据来源:
  (a)服务器端监控
  (b)数据库日志
  (c)用户提出需求
  制定测试计划的实施时间和方案
  预设本次性能测试各子模块的起止时间和结束时间
  测试环境的配置:局域网,虚拟机,操纵系统,数据库,中间件
  参与人员:谁负责哪些任务,测试策略。
  产出:测试方案,分析结果
 搭建测试环境
  测试机环境

 服务器环境

 测试场景设计
  通过和业务部门沟通以及以往用户操作习惯,确定用户操作习惯模式,以及不同的场景用户数量,操作次数,确定测试指标,以及性能监控等
  测试用例设计和脚本开发
  选择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数据量大小:为了尽量符合生产场景,需要模拟线上大量数据情况,那么要往数据库里提前插入一定的数据量。
  性能测试执行和管理
  执行测试脚本
  在已部署好的测试环境中,按照业务场景和编号,按顺序执行我们已经设计好的测试脚本
  测试结果记录
  根据测试采用的工具不同,结果的记录也有不同的形式;展现方式:折线图,统计图,表格等,现在大多的性能测试工具都提供比较完整的界面图形化的测试结果,当然,对于服务器的资源使用等情况,可以利用一些计数器或第三方监控工具来对其进行记录,执行完测试后,对结果进行整理分析,

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

硬件设备对系统性能表现的影响分析
  配置几个不同的测试环境,故可以根据不同测试环境的硬件资源使用状况图进行分析,确定瓶颈是再数据库服务器、应用服务器抑或其他方面,然后针对性的进行优化等操作
  其他影响因素分析
  影响系统性能的因素很多,可以从用户能感受到的场景分析,哪里比较慢,哪里速度尚可,这里可以根据2\5\8原则对其进行分析;
  至于其他诸如网络带宽、操作动作、存储池、线程实现、服务器处理机制等一系列的影响因素,具体问题具体分析,
  测试中发现的问题
  在性能测试执行过程中,可能会发现某些功能上的不足或存在的缺陷,以及需要优化的地方,需要多次执行测试。
  测试报告和跟踪
性能测试工程师完成该次性能测试后,需要将测试结果进行备案,并做为下次性能测试的基线标准,具体包括性能测试结果数据、性能测试瓶颈和调优方案等。同时需要将测试过程中遇到的问题,包括代码瓶颈、配置项问题、数据问题和沟通问题,以及解决办法或解决方案,进行知识沉淀。

网友评论