前言

作为测试工程师,相信大家对jmeter这个工具在熟悉不过了,小编的前几篇博客中也有写到jmeter用于接口自动化测试的实战文章,今天主要用来介绍使用jmeter来进行性能测试和稳定性测试的实战。

1、性能测试介绍

性能测试和我们以往提到过的关于存储软件产品和分布式存储性能测试(fio,vdbench)不一样,fio,vdbench一般是真针对硬件性能测试,本次介绍的是软件性能测试。

以web项目为例,性能测试用例包括但不限于以下几项:

性能测试模块 性能测试项 性能测试用例
模块A 模块A专题1精确搜索 在30万条数据量在测试环境下搜索3秒内返回结果
模块A专题1模糊搜索 在30万条数据量在测试环境下搜索3秒内返回结果
模块B 模块B专题1搜索 1亿条数据在测试环境下精确查询2秒内返回结果,模糊查询5秒内返回结果
关联关系总数小于50个,3秒内返回结果
关联关系总数小于150个,5秒内返回结果
模块C 模块B专题1搜索 50万条在测试环境下搜索3秒内返回结果
模块B专题2搜索 50万条在测试环境下搜索3秒内返回结果
模块B专题3搜索 50万条在测试环境下搜索3秒内返回结果
模块B专题9搜索 50万条在测试环境下搜索3秒内返回结果
模块B专题10搜索 50万条在测试环境下搜索3秒内返回结果
并发用户数 50个用户 登陆并且操作支持并发用户数50个

如上表所示,是一些性能测试用例的例子

2、稳定性测试介绍

对于web项目来说,稳定性一般来讲是指的在指定时间内可以无故障运行。包含但不限于以下几项:

测试模块 测试项 测试用例 预期结果
系统整体 负载持续运行 产品在50%左右负载情况下,能够无故障持续运行3*24小时 在3*24小时的运行中,系统运行正常,无故障出现。

如上表软件项目整体在50%负载(CPU、内存)能够无故障进行3*24小时,或者7*24小时。

3、jmeter脚本录制

1、打开jmeter选择录制模板点击创建

3、查看模板的目录

由下图我们可以看出是英文的,我们可以自己进行改为中文名字,以便于我们自己查看。

备注:因为真实环境中,你比如百度www.baidu.com,腾讯等这样的企业网站都有自己的安全保护措施,

没办法实战给大家展示,所以就在网上随便找了一个网站进行测试 ,如下,我们就是对下面这个网站

进行“计算字符串长度”的性能测试和稳定性测试。以此为例。

3、开启win10的代理设置

4、开启http的代理服务器

当http的代理服务器开启时,我们去浏览器上开始操作,jmeter其实就已经为我们录制了。去网站中刷新一下

jmeter就开始捕捉我们操作的行为了。

此时我们要密切注意,录制控制器中产生的请求。如下图:

为了我们更清晰的得到我们想要的,我们一般每执行一个操作(鼠标点击等操作)都会对新产生的请求去做注释。

加完注释如下图:这样我们的每一步操作就清晰可见了。

5、录制完之后停掉代理服务器,关闭win10自带代理

截止到上述步骤,录制脚本就执行完毕了。

4、性能测试跑脚本

1、添加聚合报告组件

2、设定循环时间或次数

下图代表,1个线程,跑1次

如果是100用户并发测试的话,就是100个线程

3、点击执行,执行完毕后,并查看结果树结果。

查看结果树:

从下图中我们看到,结果树中我们录制的脚本,都一一对应执行了,且都是绿色代表执行成功。(实战中绿色不一定成功)

我们还可进一步查看脚本执行的详情:包括请求、响应数据

4、查看聚合报告

聚合报告是本次执行脚本的一个综合报告,里面包含了我们执行本次甲苯的时间,正确率与错误率等。

如下图所示,我们一般要看两个地方,

Average:平均请求响应时间,单位为毫秒,图中数据显示我们619ms,代表我们执行的性能测试响应时间为619毫秒,

如果我们的测试要求在3秒内返回结果,619ms<3s,说明这个请求性能测试通过。

Error:一般如果为0,说明没报错,也就是测试正常。

5、稳定性测试跑脚本

1、修改时间

稳定性一般情况要跑的脚本和性能测试的脚本一样,就是把上述的步骤在执行一遍,但是不同的是测试时间要变。

我们稳定性测试要求是3*24小时,无故障运行。所以时间要改。

如下图,循环次数改为了  永远,勾选调度器,持续时间(秒):3*24*3600秒=259200秒,如果是100用户并发,线程数还要改为100

2、查看结果树、聚合报告

这样脚本会循环执行三天三夜,时间到了之后,程序会停,我们还是去查看结果树,看有没有脚本出错。

如果没有报错,并且,聚合报告中,Error也为0%,代表稳定性测试通过了。

总结:

本文到此是使用jmeter,对web项目的性能测试和稳定性测试进行了大体的介绍(比较详细),流程是很全面的,

但是可能各位同学自己在使用时,会出现各种各样的问题。不要担心都是正常的,一点点解决。

有问题请留言哦,看到必回复。

测试学习-114-使用jmeter工具对web项目进行性能测试与稳定性测试相关推荐

  1. maven学习(4)-Maven 构建Web 项目

    紧接着上一节(3),现在maven新建web项目,user-web.模拟一个用户登录的需求: 工程结构: pom.xml: <project xmlns="http://maven.a ...

  2. 测试回顾版-某通信企业的web业务系统性能测试

    系统架构,J2EE Struts +ejb+herbinate 使用协议,http,https 测试工具:需要能够支持HTTP/HTTPS协议测试,监控unix,windows,oracle,tomc ...

  3. JavaWeb开发---B/S和C/S模式 tomcat服务器 Tomcat项目部署和发布 静态网页和动态网页 tomcat对web项目的目录要求 使用idea开发工具创建web项目 设置默认首页

    目录 1. B/S和C/S模式 1.1 C/S模式 1.2 B/S模式 1.3 B/S和C/S区别 2.服务器 3.web 服务器 3.1.IIS 3.2.Tomcat 3.3.Zeus 3.4.Ng ...

  4. python学习之美多商城(一):web项目的常见商业模式、开发流程

    商业模式: 1.B2B–企业对企业: B2B (Business to Business)是指进行电子商务交易的供需双方都是商家(或企业.公司),她(他)们使用了互联网的技术或各种商务网络平台,完成商 ...

  5. Java Web学习总结(28)——Java Web项目MVC开源框架SSH和SSM比较

    SSH和SSM定义 SSH 通常指的是 Struts2 做控制器(controller),spring 管理各层的组件,hibernate 负责持久化层. SSM 则指的是 SpringMVC 做控制 ...

  6. AutoRunner自动化测试工具如何创建项目-Alltesting|泽众云测试

    一.AutoRunner自动化测试新建项目.导入项目 方式一: 新建项目,弹出新建项目对话框 如果项目限定了录制程序,为使限定有效,必须在录制前通过本功能运行录制程序,如果未执行本功能,录制被视为不限 ...

  7. 什么是压力测试,为什么要进行压力测试?Jmeter工具的使用

    这里是修真院后端小课堂,每篇分享文从 [背景介绍][知识剖析][常见问题][解决方案][编码实战][扩展思考][更多讨论][参考文献] 八个方面深度解析后端知识/技能,本篇分享的是: [什么是压力测试 ...

  8. 使用 Apache JMeter™工具进行性能测试

    使用 Apache JMeter™工具进行性能测试 一.性能测试的定义. 性能测试是通过自动化的测试工具模拟多种正常.峰值以及异常负载条件来对系统的各项性能指标进行测试.负载测试和压力测试都属于性能测 ...

  9. jmeter工具进行性能测试

    jmeter工具进行性能测试 性能测试理论概述 背景 性能测试指标 TPS 平均响应时间 TOP响应时间 其他指标 性能监控指标 性能测试流程 jmeter工具 jmeter常用组件 jmeter命令 ...

最新文章

  1. static和global的区别
  2. 未来十年,中间商不会死,但是经销商可能会无店可供!
  3. 知乎高赞回答:是否有必要系统学习概率图模型?
  4. vm中linux物理内存不足解决方案
  5. debian9为什么默认是pip2_VirtualBox内刚刚安装完Debian9系统,也无法设置共享文件夹。解决的方法就是安装VirtualBox客户端增强包。...
  6. [c/c++]小议几个写缓冲区的函数
  7. CentOS7设置中文字符集
  8. mysql ip地址查询 优化_mysql数据库字段(ip地址,时间)优化
  9. PYTHON1.day07
  10. python爬取豆瓣电影250_利用Python爬取豆瓣TOP250的电影
  11. linux开机启动grub rescue,Ubuntu 开机出现 grub rescue 的模式下修复
  12. Python经典例题:跑马灯文字效应
  13. Vue--移动端开发
  14. 安装及配置 Mac 上的 Rime 输入法——鼠鬚管 (Squirrel)(也适用于小狼豪)
  15. HTML5与CSS3及Less
  16. oracle中before,oracle触发器before和after数据区别
  17. Superset部署+连接MySQL8+省份地图可视化
  18. 职业生涯成长阶段分几个阶段_开发人员职业生涯的每个阶段的最佳选择
  19. 关于JS里的数组和对象的日常使用
  20. 为什么要使用flowable工作流

热门文章

  1. DorisDB使用笔记(一)
  2. atd和crond两个任务管理程序的区别
  3. 微信小游戏获取用户相关api返回签名错误87009的解决方案
  4. html100pc,音基100电脑版
  5. youtube 网红主博邮箱采集笔记
  6. Unity 3D : ComputeShader 全面詳解
  7. 北漂程序员,年收入200万却想辞职,幸福感为0却放不下家庭
  8. 面向对象:希望能遇到可以相伴一生的人
  9. Ubuntu上的几个音频工具
  10. Amazon云服务 - 遇到的问题总结