关于使用 jmeter 进行压力测试

关于使用 jmeter 进行压力测试

月光魔力鸭

2021-06-28 14:55 阅读 186 喜欢 1 压力测试 jmeter

最近有系统需要知道性能瓶颈,尝试使用jmeter对重要接口进行并发测试,确定能否支撑一定的用户数量。由于我也是第一次使用,很多属性或操作都不明白,大都是搜索来的,接下来仅仅介绍下使用过的一些控件,用的都是很基础的,主要是进行接口并发测试,查看并发数以及响应时间,我们的要求是响应要在1s内完成。

Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。 Apache jmeter 可以用于对静态的和动态的资源(文件,Servlet,Perl脚本,java 对象,数据库和查询,FTP服务器等等)的性能进行测试。它可以用于对服务器、网络或对象模拟繁重的负载来测试它们的强度或分析不同压力类型下的整体性能。你可以使用它做性能的图形分析或在大并发负载测试你的服务器/脚本/对象。

JMeter 下载地址: https://jmeter.apache.org/download_jmeter.cgi

下载后解压,通过 /bin/ApacheJMeter.jar 双击打开GUI 界面,然后修改语言 options > choose language > simple chinese 修改为中文。

1. 添加线程组

右键测试计划 ,点击添加线程,选择线程组,属性中,线程数意味着用户数,根据自己的测试要求进行填写即可,ramp-up 为在多少秒内启动完成。 取样器错误后要执行的动作选择继续,错误后继续执行。调度器应为定时启动或延迟启动的设置,一般是计划执行的时候使用。

2. 添加取样器 ,这里只介绍 http ,其他的暂未用到。

新增后打开,可以添加协议、ip 、端口、请求方式、请求地址、请求参数等。

3.当有多个请求的时候,可以增加 http 请求默认值

右键线程组->添加->配置元件->http 请求默认值 ,将具有详情数据的信息进行录入,例如:请求的服务器,请求的参数等。

如果消息头也相同,则增加 http 信息头管理 .

4. 查看效果

当添加了这几个后,就可以尝试进行运行测试,并查看结果。 查看结果可以添加这几个: <查看结果树> <汇总报告> <响应时间图> <汇总图> 等 ,这些都在监听器中。 右键线程组->添加->监听器 . 汇总报告中可以查看响应时间 、异常等。 查看结果树中可以查看具体的请求数据,包括请求头、请求体、响应头、响应数据等,进行排查问题。

5. 进行多个用户或不同数据的操作

实际的场景中,可能每次的请求中所携带的数据都不同,或者用户都不相同,那么我们可以将对应的数据存储在文件中,由JMeter进行加载文件变更数据。 添加->配置元件->csv 数据文件设置 , 选择对应的csv文件 或者 txt 文件,我使用的是txt 。 不过选择元件还是这个 csv数据文件设置 .

根据分隔符不同,单行的内容分割不同,我当前的数据只有一列,所有一行 一条记录。然后第一行为 data ,如下。

在实际的使用中对 data通过${data} 进行取出使用,例如 :

然后点击开始测试查看每个请求的内容是否相同。

6.断言

增加断言可以测试请求的成功率或异常率,可以添加 响应断言 、JSON断言等等。


以上,目前由于第一次使用,很多功能都不熟悉,等待后续慢慢探索。

转载请注明出处: https://chrunlee.cn/article/jmeter-test-1.html


感谢支持!

赞赏支持
提交评论
评论信息 (请文明评论)
暂无评论,快来快来写想法...
推荐
本篇文章以一个实际的小项目为主题进行从头到尾的讲解实现,该项目总计开发时长约6小时,主要是有很多页面或功能都是现成的,直接复制过来的,剩下的就调整下样式、字段内容等。
扩展程序中会有需要请求外部接口获取数据的时候,如果直接在JS中写的话,会跨域,但是谷歌扩展程序支持这种情况,只需要配置一下即可。
功能来源于客户需求。客户有需求想把班级内所有学生的错题本生成pdf文档下载下来... 目前没有做这个功能,只有页面,还好chrome浏览器有保存pdf的功能,但是一想到这么多的学生,这么多的学科、以及这么多的参数... 还好有puppeteer
ubuntu 配置nginx反向代理,这里简单记录下,后续再复习..
反爬有很多手段,字体反爬就是其中之一。之前一直都是听过,但是却没怎么在实际爬虫中遇到过,最近在一个爬虫题目网站上看到了,试了试,发现还挺麻烦,当然自己从头研究字体肯定麻烦,简单的是模块多的是,选几个就过了。
最近一直琢磨着做一个第三方统一登录的这么一个小东西,虽然网上其实也挺多的.. 不过造轮子的感觉还是很爽的。 QQ /Github 比较简单,申请下就OK 了.. 微信真不是个东西,得花钱。
前一阵子做了个图床,可以粘贴上传,查看服务器上的文件... 但是自己的服务器总是有问题..空间还小,就怕哪天没钱续费了。同事昨天想要一个七牛的图床,在网上找了下,只找到了 qiniu upload files插件,自己使用了下,挺好用,但是没有复制粘贴
需求:可能会有在页面加载的时候想执行某个js,例如统计页面的DOM等等。