【原创】相对完整的一套以Jmeter作为工具的性能测试教程(接口性能测试,数据库性能测试以及服务器端性能监测)

准备工作

jmeter3.1,为什么是3.1,因为它是要配合使用的serveragent所支持的最高版本,下载链接 https://pan.baidu.com/s/1dWu5Ym

JMeterPlugins-Extras-1.4.0,服务器监测包(放本地),下载链接 https://pan.baidu.com/s/1i63aaA5

JMeterPlugins-Standard-1.4.0,服务器监测包(放本地),下载链接 https://pan.baidu.com/s/1smbFuK9

severagent,服务器监测包(放服务器),下载链接 https://pan.baidu.com/s/1i6BN3i1

mysql-connector-java-5.1.45,MySQL数据库包,下载链接 https://pan.baidu.com/s/1huhDBfA

设计测试用例

某网站同一时间段内较多的人登录

我们接下来对这个场景做性能测试

具体操作过程

1.先上一个完整的流程图,然后我们来一个一个的分析,往下走

2.http请求默认值,如果下面的接口走的都是相同ip,端口及其他的话就加上,省的后面还要在每个请求上添ip

JDBC Connection Configuration,右击线程组,配置元件下就能找到,他的作用就是连接你需要的数据库,博主这边以mysql为例,

variable name的作用是要配合后面的JDBC request使用可自定义,

databaseURL按博主格式来就行,jdbc:mysql://数据库地址:端口/库名,注意符号都得是英文,我部分地方使用中文是为了表现的更明显

JDBC Driver class 还是按博主的写,这是一个驱动名

username和password就是你数据库的账号和密码

具体配置如下图

3.紧接着就是一个具体的JDBC的请求,这边就可以体现出variable name这个参数的作用, 如果也是写作上面那个‘zhijian’的话,意思就是我连的就是这个库,主要是用作存在多个数据库时的场景,右边的框里就是写你需要的sql语句,同日常数据库查询,注意右下角有个     result variable name,这是一个结果集,用于配合后置处理器BeanShell PostProcessor使用,接下去讲到

4.右击JDBC Request,后置处理器选择BeanShell PostProcessor,然后将博主那段代码拷贝过去,记得修改下里面的参数名,按照你实际数据库字段名修改就行,这个的作用是用来读取和保存你上面sql语句里得到的结果,更好的模拟实际用户登录的场景,接下去的http请求就是普通的请求,参数后面带的值就可以参数化

到这请求就写完了,因为要做性能测试,那可以按照实际的情况进行线程以及线程启动时间的设置等,这个不做扩展,因为要看执行的结果,大家可以在请求后面加上各种监听器

具体配置如下图

5.接下去就是服务器端性能的监测了,把开头提到的JMeterPlugins-Extras-1.4.0和JMeterPlugins-Standard-1.4.0两个jar包都放在 \apache-jmeter-3.1\apache-jmeter-3.1\lib\ext路径下

severagent压缩包放到服务器端并解压,Linux的话就进入包所在的路径,然后运行命令 sh startAgent.sh,windows的话执行cmd运行startAgent.bat,如果成功会有started关键词出来

待成功运行后,回到本机操作jmeter,右击线程组添加jp@gc - PerfMon Metrics Collector监听器,在servers to Monitor栏填写服务器的ip地址,端口号以及想监听的内容,一般推荐是cpu,memory,Disk I/Ohe Network I/O,然后就可以执行自动化脚本了

具体配置如下

按照上面的操作完成并执行后得到的结果就包含了接口性能测试,数据库性能测试以及服务器端性能监测

如果有人碰到监听服务器性能时提示没有端口权限,可以尝试下由默认4444端口换成7777,命令如下java -jar ./CMDRunner.jar --tool PerfMonAgent --udp-port 7777 --tcp-port 7777

如果这篇文章对你有用,记得赞下

Jmeter作为工具的性能测的更多相关文章

  1. 性能工具之JMeter+InfluxDB+Grafana打造压测可视化实时监控【转】

    概述 本文我们将介绍如何使用JMeter+InfluxDB+Grafana打造压测可视化实时监控. 引言 我们很多时候在使用JMeter做性能测试,我们很难及时察看压测过程中应用的性能状况,总是需要等 ...

  2. 4月27号开学! 第6期《jmeter实战接口自动化+性能》课程,零基础也能学

    2019年 第6期<jmeter实战接口自动化+性能>课程,4月27号开学! 主讲老师:飞天小子 上课方式:QQ群视频在线教学 本期上课时间:4月27号-6月9号,每周六.周日晚上20:0 ...

  3. apache并发测试工具ab为什么测不准

    apache并发测试工具ab为什么测不准 发表于2年前(2013-03-21 12:13)   阅读(1146) | 评论(1) 1人收藏此文章, 我要收藏 赞0 3月21日 深圳 OSC 源创会正在 ...

  4. JMeter学习工具简单介绍

    JMeter学习工具简单介绍   一.JMeter 介绍 Apache JMeter是100%纯JAVA桌面应用程序,被设计为用于测试客户端/服务端结构的软件(例如web应用程序).它可以用来测试静态 ...

  5. [性能] Bean拷贝工具类性能比较

    Bean拷贝工具类性能比较 引言 几年前做过一个项目,接入新的api接口.为了和api实现解耦,决定将api返回的实体类在本地也建一个.这样做有两个好处 可以在api变更字段的时候保持应用稳定性 可以 ...

  6. 20个linux命令行工具监视性能(下)

    昨天晚上第一次翻译了<20 Command Line Tools to Monitor Linux Performance>中的前十个命令,翻译得不是很好,今天晚上继续把后面的十个也翻译给 ...

  7. Jmeter自动化测试工具的简单使用--HTTP测试

    Jmeter自动化测试工具的简单应用 1.安装Jmeter 链接: https://pan.baidu.com/s/1mhSzU68 密码: 446z   到这里下载 1.1 jmeter 将下载好的 ...

  8. Webbench、ab命令:做压力测试的工具和性能的监控工具

    DDOS攻击:???DDOS概述:分布式拒绝服务(DDoS:Distributed Denial of Service)攻击,指借助于客户/服务器技术,将多个计算机联合起来作为攻击平台,对一个或多个目 ...

  9. JMeter测试工具中的参数化使用[函数助手]

    下面是我使用JMeter测试工具对某项目中的一个http接口进行测试时的配置参数,使用到了JMeter的随机函数: 在发送POST请求时,需要发送json格式的数据,其中使用到JMeter的" ...

随机推荐

  1. BZOJ 1069 求凸包+旋转卡壳

    思路: 求凸包: 先按照x轴排个序 从左往右扫一遍 找到上凸壳 (用叉积) 再从右往左扫一遍 求下凸壳 搞个旋转卡壳就好啦~ 嗯 我手懒 用的C++ Complex库 巨好用! //By Sirius ...

  2. C# HashSet<T> 简单使用

    一个简单的HashSet<T> 的例子,介绍其简单的方法,深入学习可参考微软:https://msdn.microsoft.com/en-us/library/bb359438(v=vs. ...

  3. 51Nod 最长的循环节(打表预处理)

    正整数k的倒数1/k,写为10进制的小数如果为无限循环小数,则存在一个循环节,求<=n的数中,倒数循环节长度最长的那个数,假如存在多个最优的答案,输出所有答案中最大的那个数.     1/6= ...

  4. caffe命令及其参数解析

    caffe的c++主程序(caffe.cpp)放在根目录下的tools文件夹内, 当然还有一些其它的功能文件,如:convert_imageset.cpp, train_net.cpp, test_n ...

  5. day01-Python介绍,安装,idea

    一. python 简介 Python,读作['paɪθɑn],翻译成汉语是蟒蛇的意思,Python 的 logo 也是两条缠绕在一起的蟒蛇的样子,然而 Python 语言和蟒蛇实际上并没有一毛钱关系 ...

  6. 手把手教你进行R语言的安装及安装过程中相关问题解决方案

    这篇文章旨在为R语言的新手铺砖引路,行文相对基础,希望对在R语言安装上有问题的小伙伴提供帮助和指引.一.什么是 R 语言R 编程语言被广泛应用在统计科学和商业领域. 在各种编程语言排名中 R 语言的排 ...

  7. 守护、互斥锁、IPC和生产者消费者模型

    守护进程 主进程创建守护进程 其一:守护进程会在主进程代码执行结束后就终止 其二:守护进程内无法再开启子进程,否则抛出异常:AssertionError: daemonic processes are ...

  8. PHP -Casbin: 支持 ACL、RBAC、ABAC 多种模型的 PHP 权限管理框架

    PHP-Casbin 是一个用 PHP 语言打造的轻量级开源访问控制框架( https://github.com/php-casbin... ),目前在 GitHub 开源.PHP-Casbin 采用 ...

  9. linux虚拟机拓展大小

    http://blog.csdn.net/wutong_login/article/details/40147057?utm_source=tuicool http://www.linuxidc.co ...

  10. 【android】getCacheDir()、getFilesDir()、getExternalFilesDir()、getExternalCacheDir()的作用

    getCacheDir()方法用于获取/data/data/<application package>/cache目录 getFilesDir()方法用于获取/data/data/< ...