不管是Loadrunner还是jmeter进行性能测试,测试流程基本上都是一样的,限制以Jmeter为例分析测试流程:

一、性能测试需求分析
一般而言,被测对象的性能需求,会在用户需求规格说明说中给出,比如单位时间内的访问量达到多少、业务响应时间不超过多少、业务成功率不低于多少、硬件资源消耗应该在一个合理的范围内等,性能指标应以量化数据给出,对于一个规范的产品,产品团队会给出如下的性能要求:


如果产品团队并没有指明性能测试需求,或者只给出表述字面意义上的需求,如:系统的TPS需要到300以上,单笔交易时间不超过3秒,那么测试工程师如何提前量化的指标呢?

需要结合业务需求和系统本身特性进一步分解和提取显性和隐性的需求,可以从以下两个用户方法进行确定:

1、业务用户

用户频繁使用,且存在大量用户频繁使用的业务流程
交易占比高,日常占比在80%以上甚至更高的业务流程
特殊交易日或峰值交易占比80%以上甚至更高的业务流程
性能较差且做过调整的业务流程
特殊业务场景
核心业务发送较大流程调整的业务流程
以上为业务用户层面可能需要的性能需求点,实际项目中可能会向终端用户进行调研。

2、项目团队(业务系统)

曾经测试过性能后调整了架构设计的业务
逻辑复杂、关键的业务
可能消耗大量资源的业务
与外部系统存在接口调用,且有大量数据交互的业务
调用第三方业务组件,逻辑复杂业务
以上为项目开发角度可能需要的性能需求点,性能测试工程师需要与开发团队密切配合、深入了解被测对象。

3、案例分析

通过分析,我们以网上商城性能需求指标为例,得到下面数据:
二、测试用例设计及测试数据准备
1、测试用例设计

为了真实地反映被测对象可能存在的性能问题,需要尽可能地模拟被测对象可能发生瓶颈的业务场景,测试需求分析过程中已经确定了业务类型,在此需要设计如下性能测试场景:
2、测试数据准备

以本次测试为例,2小时内5万用户登录,意味着需要有50000个可用账户(尽量多准备一些,可以为60000),可以直接在数据库中添加,但要求对数据库结构相对熟悉;也可以使用Jmeter录制注册脚本,使用3个线程,循环2000次即可。

构造好测试数据后,需要对数据库进行备份,便于后期进行回归测试,可以使用NaviCat进行数据备份。
三、性能测试脚本开发
根据登录业务模型,利用BadBoy录制用户登录过程,生成Jmeter脚本
登录用户名进行参数化
设置定时器:参考测试用例输入信息5s、登录成功等待返回3s、退出成功等待返回
为登录成功页面设置断言,失败则提示信息,成功不提示
添加查看结果树、聚合报告等,实时查看脚本运行情况
四、场景设计及资源监控
1、场景设计

以登录业务为例子,本次测试的目的在于验证平台是否能支持100个用户的并发登录,无需考虑持续时间,根据对应的场景测试用例,设置线程组数据,脚本可以通用(如果有必要可以去掉思考时间、添加集合点等)。

相应的线程组可以改名为场景名称:用户登录业务并发负载
2、Jmeter利用自带插件进行资源监控

解压JMeterPlugins-Extras-1.4.0.zip及JMeterPlugins-Standard-1.4.0.zip到Jmeter安装目录/lib/ext下
重启Jmeter,添加监听器:jp@gc - PerfMon Metrics Collector
下载ServerAgent-2.2.3.zip,并通过rz指令上传到服务器(Linux)指定目录下,执行unzip -o ServerAgent-2.2.3.zip解压该文件到当前目录
关闭服务器防火墙:systemctl stop firewalld.service
给启动文件设置执行权限:chmod u+x startService.sh
执行sh文件:./startService.sh
Jmeter监听器jp@gc - PerfMon Metrics Collector下,添加监控的资源,如CPU、内存等
运行场景,即可监控服务器相应的资源
根据场景用例要求,业务量测试需要设置78个线程数,同时需设置执行的时间段(参考业务量指标:2小时完成5万笔交易或者是TPS),设置如下:
五、场景执行及结果分析
1、场景执行

场景执行前,需要对测试环境进行确认,保证所有环境,系统业务均能正常使用:

数据库恢复(避免脚本设计过程中对数据库中数据量的影响),记录商品、交易等相关数据
随机购买商品,为避免出现商品库存为零情况,将库存统一设置为1000
尽量单独部署服务器在Linux系统上,避免Jmeter对服务器性能的影响
执行前,启动相应的监控代理和apache和mysql服务
CMD下非GUI模式执行场景:

Jmeter -n -t 测试脚本Jmx文件 -l 日志文件名 -e -o HTML测试结果文件路径

2、场景结果分析

结合聚合报告,分析登录业务的每个请求的平均响应时间为:15s,是小于5s的,故该项指标测试不通过;在最大和最小响应时间差异较大时,我们可以采用90%事务响应时间作为标准。
Apdex(Application Performance Index)指标是一个国际通用的标准。是用户对应用性能满意度的量化数值,他提供了一个统一的测量和用户体验的方法, 吧最终用户的体验和应用性能统一度量,下图中0表示没有满意度,1表示所有用户均满意,是开发团队追求的目标。


六、性能调优及回归测试
测试结果分析完成以后,即可对进行性能问题的确定及优化,通常情况下性能问题表现如下几个方面:

1、响应时间问题:

响应时间平稳但较长,测试过程中响应时间就较长,即使减少线程数量(负载),也不会降低
响应时间逐步变长,测试过程中,负载不变,运行时间越长,响应时间越长,直至出现很多错误
响应时间随着负载的变化而变化,响应时间变长;负载减少,响应时间变短,资源利用率也下降
数据积累导致锁定,起初运行正常,但数据量积累到一定值,立刻出现错误,无法消除,只能重启系统
2、稳定性问题:

特定场景或运行很长时间以后,突然出现问题,系统运行缓慢,主要原因有如下:

物理内存资源不足
内存泄漏
资源争用
外部系统交互
业务失败时频繁重试,无终止状态
中间件配置不合理
数据库链接设置不合理(连接数或缓存)
进程/线程设计错误

最后感谢每一个认真阅读我文章的人,下面这个网盘链接也是我费了几天时间整理的非常全面的,希望也能帮助到有需要的你!!这些资料,对于想转行做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助……

如果你不想一个人野蛮生长,找不到系统的资料,问题得不到帮助,坚持几天便放弃的感受的话,可以点击下方小卡片加入我们群,大家可以一起讨论交流,里面会有各种软件测试资料和技术交流。

敲字不易,如果此文章对你有帮助的话,点个赞收个藏来个关注,给作者一个鼓励。也方便你下次能够快速查找。

自学推荐B站视频:

零基础转行软件测试:自学完软件测试,拿到了字节的测试岗offer,堪称B站最好的视频!

自动化测试进阶:已上岸华为,涨薪20K,2022最适合自学的python自动化测试教程,自己花16800买的,无偿分享

浅谈Jmeter性能测试流程相关推荐

  1. 浅谈软件性能测试中关键指标的监控与分析(转)

    浅谈软件性能测试中关键指标的监控与分析 一.软件性能测试需要监控哪些关键指标? 软件性能测试的目的主要有以下三点: Ø  评价系统当前性能,判断系统是否满足预期的性能需求. Ø  寻找软件系统可能存在 ...

  2. JMeter性能测试流程及性能指标关注点

    性能测试流程 平常我们做黑盒测试,都会有一套功能测试流程,做性能测试也不例外,性能也会有规范的流程.如下图所示就是我们常规的性能测试流程图. .1.业务学习:通过查看文档,手工操作系统来了解系统功能. ...

  3. api 二次 开发 禅道_浅谈-软件开发流程

    先直接放出我对软件开发的相关人员职责和流程: 图一:软件开发的相关人员职责 以下是截屏的开发流程泳道图: 横轴是相关开发人员的工作模块:纵轴是从上至下开发时序周期. 图二:软件开发的流程图 从职责图和 ...

  4. 浅谈软件性能测试,浅谈软件性能自动测试应用

    摘要:软件性能是软件测试工作中的重要一环,首先要正确理解软件性能测试,要从不同的角度去理解:其次要熟悉几种软件性能测试方法,LoadRunner性能测试和Segue性能测试以及PTGM模型是较好的测试 ...

  5. MyBatis系列之浅谈SQL执行流程分析

    目录 独立使用Mybatis Mybatis执行流程 SqlSessionFactory\SqlSession MapperProxy Excutor 独立使用Mybatis 这篇文章主要以分析Myb ...

  6. 浅谈Activity启动流程

    概述 Activity的启动方式有两种,一种是显式的,一种是隐式的. 而且,启动的 Activity 和原 Activity 的进程关系的不同又可以分为两种情况,一种是在同一个进程,另外一种情况是开启 ...

  7. 公开课视频-浅谈前端性能测试

    地址:https://edu.51cto.com/course/10658.html 转载于:https://blog.51cto.com/xqtesting/2350360

  8. 浅谈软件自动化集成测试的流程

    浅谈自动化集成测试 相信从事软件测试专业的同行很早就知道了自动化的测试技术,也许大家也很想知道具体的软件自动化具体的运行实施过程.本人学识尚欠,目前无法对综合的软件自动化的测试进行阐述,但是本人通过不 ...

  9. 浅谈CMMI几个过程概念流程管理 (转)

    浅谈CMMI几个过程概念流程管理 CMMI(Capability Maturity Model Integration)能力成熟度模型集成,正如它的名字一样,它是一个模型.个人觉得它更是一种概念.它带 ...

最新文章

  1. vim批量转文件编码
  2. 服务器安装织梦网站数据库,DedeCMS数据库及服务器空间更换教程
  3. Android图片处理
  4. 【STM32 .Net MF开发板学习-14】红外遥控器编码识别
  5. 老衣的微服务实践简要指引2017版
  6. nn.Conv2d的解释
  7. 天池实验室-Task04-Python数据分析:从0完成一个数据分析实战
  8. dylib java_使用单声道可执行文件捆绑.dylib文件
  9. Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks
  10. Ubuntu安装php
  11. Android开发手册 (Android的手工教程MtAndroid开发手册)
  12. 算法:链表最快的排序方法,分而治之再合并排序
  13. php 点击刷新验证码,thinkphp3.2点击刷新生成验证码
  14. python opencv批量修改图片分辨率
  15. OpenCV-Python教程:阈值化(threshold,adaptiveThreshold)
  16. java 微信给好友发信息吗,不在线,好友发给我的微信消息,会不会丢?
  17. 安装ssd后不识别网卡_安装固态硬盘后读不出来,怎么解决?
  18. MySQL的启动方式
  19. 路径衰耗和阴影衰落及其相关的模型
  20. 高级语言编译/解释流程

热门文章

  1. 解密犯罪时间JAVA
  2. 几种复杂网络模型的介绍:动态演化网络、社区网络、权重网络、相依网络、多层网络
  3. 分享扫描文字识别软件的操作方法
  4. OSCP-Pwned1(pwn题)
  5. C语言-代码实现十进制转二进制输出
  6. springboot layuiAdmin实现分页
  7. 身体是革命的本钱(防辐射)
  8. 编程猫IDE体验:对Scratch的改进
  9. 2020年11月计算机二级题库,2020年全国计算机二级考试试题题库(附答案)
  10. 解决新能源充电难!小桔充电牵手南网电动,共建充电场站