适合程序员的DB性能测试工具 JMeter

这篇具有很好参考价值的文章主要介绍了适合程序员的DB性能测试工具 JMeter。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景

1、想要一款既要能压数到mysql,又要能压数到postGre,还要能压数到oracle的自动化工具
2、能够很容易编写insert sql(因为需要指定表和指定字段类型压数据),然后点击运行按钮后,就能直接运行;不要写应用代码,因为我比较懒
3、可以指定测试时间,或者TPS等执行时行为。因为压数有数量级要求
4、sql插入的值,最好能动态生成;

目前选择了JMeter,初步的用起来还比较的可爱和丝滑。使用步骤和遇到的问题如下:

Q1 JMeter能同时测试 Mysql,postGreSql,oracle 数据库吗?

能支持的,JMeter 是用java写的,添加对应的JDBC驱动后,理论上任何数据库都可以进行测试。
这货还能测试常用的HTTP接口,TCP,FTP等,支持的种类还挺多。
在得到肯定回答后,开始了正式动手

Q2 JMeter 如何下载,安装和配置了?

两种下载方式

官网,非常慢:下载地址:https://jmeter.apache.org/

百度网盘下载地址: https://pan.baidu.com/s/1Ymoqk9besbSGSVha7OhW3Q 提取码:altb
和官网源文件 SHA512对比过,没有更改,请放十二个心使用。

安装

由于下载的是zip包,解压到本地目录即可。入下图:

适合程序员的DB性能测试工具 JMeter,数据库,测试工具,jmeter

配置

系统环境变量里增加
JMETER_HOME 解压包目录
Path %JMETER_HOME%\bin
ClassPath %JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib/logkit-2.0.jar;

启动

JMeter由于是java开发,运行依赖jvm。具体java安装配置,不详讲
进入bin目录。点击jmeter.bat。

启动后大概长这样

适合程序员的DB性能测试工具 JMeter,数据库,测试工具,jmeter

Q3 JMeter 如何配置 mysql 连接信息?

把Mysql 驱动加入到测试计划里,否则执行的时候会找不到对应驱动。在配置页面—>browse里加入mysql驱动位置
适合程序员的DB性能测试工具 JMeter,数据库,测试工具,jmeter

新建一个ThreadGroup,默认配置就好。
(见名知意,编程术语里叫线程组,测试术语里叫做用户数,可以指定测试的时候,模拟多少个用户,其实是多少个线程)
适合程序员的DB性能测试工具 JMeter,数据库,测试工具,jmeter

在ThreadGroup下新建JDBC链接信息。
路径Add===>Config Element===>JDBC Connection Configuration
配置JDBC链接信息。比如数据库url,用户名,密码,驱动名字等。入下图

适合程序员的DB性能测试工具 JMeter,数据库,测试工具,jmeter

Q4 JMeter 如何配置测试的insert sql

在新建的ThreadGroup下新建JDBC Request。路径 Add—>Sampler---->JDBC Request
简单的三步配置,即可执行sql:

  1. 指定数据源
  2. 选择Update Statement
  3. 填写Sql
    适合程序员的DB性能测试工具 JMeter,数据库,测试工具,jmeter

一般到这里,就可以调试性的执行了;如果要查看sql执行结果请看Q9;如果执行错误,需要排查问题请看Q9和Q8

Q5 Jmeter 在测试 insert 语句时,能动态生成插入字段的值吗?

可以的。目前有三种方式支持动态插入值。
第一种:用户变量定义
定义用户变量: 测试计划里,用户定义变量设置

适合程序员的DB性能测试工具 JMeter,数据库,测试工具,jmeter

在Sql里,用${变量名}的方式进行使用;

INSERT INTO `orders`(`order_id`,`sku_id`, `pay_type`, `pay_amount`, `pay_time`,  `remark`) VALUES (${order_id},1, 1, 12.03, '2023-08-14 14:34:23',  '第一个测试');

第二种:从excel文件中指定,不详述;比第一种值的来源更灵活

第三种:使用JmeterBean shell。非常的灵活,对写java代码的同学无门槛

用法:新建BeanShell PreProcessor :路径add===》Pre Processor===>eanShell PreProcessor
BeanShell 语法,基本上是java语法。
适合程序员的DB性能测试工具 JMeter,数据库,测试工具,jmeter

在sql里使用 ${order_id_shell} 对变量进行引用。这个脚本里,我用时间戳作为订单ID;注意这个值只支持String

Q6 jmeter 里如何设置,测试总次数或者测试持续时间

想要压测一定的数据量到库里,不可能只执行一次就完了吧。可以设置sql执行总次数或者持续执行sql的时间来解决。

注意 测试总次数和测试持续时间,两者选其一;
测试 总次数=图里的线程数*循环次数
测试持续时间,以秒为单位

适合程序员的DB性能测试工具 JMeter,数据库,测试工具,jmeter

Q7 数据库里的自增,在JMeter里能实现吗?

可以实现的,JMeter里有计数器,再加上变量引用,能解决自增的问题。并且还能保证在多个线程并发情况下,保证自增ID的唯一。
新建Counter:路径 在Add=config Element=>Counter里
填写;初始值,增量值;申明外部使用的变量名即可;使用也是通过${order_id_auto_incr}方式;这个变量在Bean shell脚本里也可以使用;大大增强了编码的灵活性

适合程序员的DB性能测试工具 JMeter,数据库,测试工具,jmeter

Q8 JMeter里能看到执行的错误日志吗?

如果不小心编写的脚本有问题,执行的时候,报错了,需要去排查,可以看JMeter本身的执行日志,在安装目录下的\bin\jmeter.log里

Q9 JMeter 能看到SQL执行结果吗?

想看看SQL执行结果,或者类似的HTTP执行返回后的结果 可在View Results Tree里查看。路径 Add===>Listener===>View Results Tree
之前没配置mysql 驱动jar包,返回报错了

适合程序员的DB性能测试工具 JMeter,数据库,测试工具,jmeter

Q10 JMeter如何查看测试报告

预测试已通过,正式压测后,想看看测试接口执行总次数(Samples),TPS(Throught),平均相应时间(Average),最大响应时间(Max),最小响应时间(Min),接口正确率(Std.Dev),错误率(Error)等指标,需要添加 Summary Report。路径 Add===>Listener======Summary Report

适合程序员的DB性能测试工具 JMeter,数据库,测试工具,jmeter

总结

天天写CRUD接口,到底写的这些接口性能咋样了?敢拿出来遛遛吗?JMeter可以让我们用数据来说话;我写的接口性能非常好,延迟小,吞吐量大。每个程序员都值得试试文章来源地址https://www.toymoban.com/news/detail-656188.html

到了这里,关于适合程序员的DB性能测试工具 JMeter的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 读程序员的README笔记07_测试(下)

    2.5.2.1. 首先应该关注代码中的高风险的区域 2.5.2.2. 那些低风险或被废弃的代码并不值得测试 3.2.1.1. 如果网络出现问题,那么测试也会失败 3.5.2.1. 使用常数种子的随机数生成器的测试将总是通过或总是失败 3.7.3.1. 注入式时间戳将让你使用模拟来精确控制测试中的时间流逝

    2024年02月05日
    浏览(39)
  • 读程序员的制胜技笔记06_测试(下)

    1.3.1.1. 假设18岁是你游戏用户的法定年龄 1.3.2.1. C# 1.3.2.1.1. 不需要测试公元1年1月1日到9999年12月31日之间所有可能的DateTime值(有360多万个) 1.3.2.1.2. 只需要测试7个不同的输入 1.3.2.1.3. 通过条件语句将输入范围进行分割的操作称为“边界条件”(boundary conditional) 1.3.2.1.3.1. 定

    2024年02月05日
    浏览(36)
  • 读程序员的README笔记06_测试(上)

    4.2.3.1. 消除外部依赖性可以使单元测试快速而集中 4.5.3.1. 压力测试可暴露系统的负载能力究竟有多大,以及在过度负载下会发生什么状况 4.6.3.1. ISO认证审核委员会要求提供需求和相应的测试文件证据 5.2.1.1. 管理测试的setup和teardown 5.2.1.2. 管理测试执行和编排 5.2.1.2.1. 可

    2024年02月05日
    浏览(36)
  • 读程序员的制胜技笔记05_测试(上)

    3.5.3.1. 也是最容易编写的 3.5.3.2. 只测试单个代码单元:公共函数(public function) 3.5.3.3. 需要是公开的,因为测试应该检查外部可见的接口,而不是类的内部细节 3.5.3.4. 问题是即便它让你能够知晓单个单元是否正常工作,但是并不能保证所有单元能够正常协同工作 3.5.4.1. 测

    2024年02月05日
    浏览(36)
  • 测试/开发程序员有8大好处,自我实现和自我超越......

    测试/开发程序员有8大好处 很早前网络就关于程序员种种不好的标签,比如“不修边幅,生活邋遢“,“无趣呆板,不浪漫“,“加班多“,“不疼爱女朋友“,“情商低”等,通通都是瞎扯,除了加班多,其他跟程序员行一点关系都没有。 当测试/开发程序员好处多多 1、相

    2024年02月03日
    浏览(72)
  • 职场经验、为什么程序员一定要写单元测试?

    2024软件测试面试刷题,这个小程序(永久刷题),靠它快速找到工作了!(刷题APP的天花板)_软件测试刷题小程序-CSDN博客 文章浏览阅读2.5k次,点赞85次,收藏11次。你知不知道有这么一个软件测试面试的刷题小程序。里面包含了面试常问的软件测试基础题,web自动化测试、

    2024年02月21日
    浏览(46)
  • 文心一言代码能力测试:文心一言能否取代程序员?

    文心一言代码协助能力使用体验,这篇博客基本上就是文心一言帮忙写的,素材是我和文心一言的对话,国产大语言模型确实取得了巨大的成就,在和文心一言对话的过程中感到未来已来,确实和之前的自动问答机器人不一样。对于文心一言之类的大语言模型能否取代程序员

    2024年02月05日
    浏览(34)
  • 为什么有35岁「职业危机」的程序员不转做测试呢?

    针对这个问题,我想我还是有点发言权的,虽然我不是做开发,但是我老公是妥妥的程序员一枚,而我又是干测试的,所以我也会问他,为啥不转测试呀,测试相对不累,且工资也高于市面很多工作,即轻松又能赚钱,何乐而不为? 和老公交流过这个问题。交流后,我觉得要

    2024年02月10日
    浏览(40)
  • 上海28岁程序员失业,感叹:测试估计没戏了,想去卖点煎饼果子养家~

     程序员危机,似乎是一个跨不过去的坎,最近,在职场论坛上看到了一位魔都程序员被裁的帖子,现在因为“互联网寒冬”不少程序员优化被裁。   帖子具体内容如下:因为疫情,老大哥所在部门被砍掉了,部门所有人都被裁掉了。 老大哥是做测试的,python,自动化测试,

    2024年02月08日
    浏览(37)
  • 程序员技能与成长:如何学习新的编程语言和代码规范与单元测试

    一名软件工程师的最大挑战就是使自己的技术栈跟得上技术的发展,而在这个技术飞速发展的时代,保证自己不被淘汰的唯一方法就是不断学习。 那么,程序员需要掌握多门编程语言吗?很多初学者都被这个问题所困扰。Google研究总监 Peter Norvig曾就这个问题给出自己的观点

    2024年04月10日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包