【原创】相对完整的一套以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作为工具的性能测试教程(接口性能测试,数据库性能测试以及服务器端性能监测)的更多相关文章
- Jmeter作为工具的性能测
[原创]相对完整的一套以Jmeter作为工具的性能测试教程(接口性能测试,数据库性能测试以及服务器端性能监测) 准备工作 jmeter3.1,为什么是3.1,因为它是要配合使用的serveragent ...
- 一.Jmeter+Ant+Jenkins搭建持续集成接口性能自动化测试
微创新作品信息 1)微创新作品描述 A.为什么诞生: 1. 接口测试是测试系统组件间接口的一种测试.接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点.测试的重点是要检查数据的交换, ...
- Jmeter入门--工具组成和线程组
1.Jmeter工具组成部分: 资源生成器:用于生成测试过程中服务器,负载机的资源代码.(LoadRunner中的VuGen) 用户运行器:通常是一个脚本运行引擎,根据脚本要求模拟指定的用户行为.(L ...
- 通过JMeter来测试Quick Easy FTP Server的上传与下载性能
FTP性能测试 1.1背景说明 本测试选用的是一个小型的FTP服务器软件:Quick Easy FTP Server.Quick Easy FTP Server是一个全中文的FTP服务器软件,反应迅速 ...
- jmeter 读写excel插件编写教程系列(1) -开篇
不知道为什么,jmeter 竟然不提供 读写excel 的Sampler! 但是在我们自动化接口测试过程中,参数化.保存测试数据,用excel 是比较好的解决方案! 接下来一段儿时间,大虫会抽出一些时 ...
- JMeter 服务器性能监测插件介绍
简介 压力测试过程中,能够随时对负载服务器的健康状况的把控是相当重要的,有了这些数据,我们才能准确分析出服务器负载瓶颈.当你面对的是一个集群的时候,如果能了解到负载是否被正确分发,是不是一件很棒的事情 ...
- JMeter性能监测插件介绍(三)
JMeter 性能监测插件介绍 压力测试过程中,能够随时对负载服务器的健康状况的把控是相当重要的,有了这些数据,我们才能准确分析出服务器负载瓶颈.JMeter 插件包现在能够支持服务器监控,可以在所有 ...
- 【原创】构建高性能ASP.NET站点 第七章 如何解决内存的问题(前中篇)—托管资源优化—监测CLR性能
原文:[原创]构建高性能ASP.NET站点 第七章 如何解决内存的问题(前中篇)-托管资源优化-监测CLR性能 构建高性能ASP.NET站点 第七章 如何解决内存的问题(前中篇)—托管资源优化—监测C ...
- Jmeter自动化测试工具的简单使用--HTTP测试
Jmeter自动化测试工具的简单应用 1.安装Jmeter 链接: https://pan.baidu.com/s/1mhSzU68 密码: 446z 到这里下载 1.1 jmeter 将下载好的 ...
随机推荐
- 机器学习 | 从加法模型讲到GBDT算法
作者:JSong, 日期:2017.10.10 集成学习(ensemble learning)通过构建并结合多个学习器来完成学习任务,常可获得比单一学习器显著优越的泛化性能,这对"弱学习器& ...
- 五分钟学习React(一): 什么是React
在前端的世界里,我们要处理的文件不是太多,而是太少.每天开发项目将html.css.js.图片.字体文件都像大杂烩一般加载都网页上.当应用变得越来越臃肿的时候,会发现js用了那么多全局变量,css的继 ...
- EXP导出aud$报错EXP-00008,ORA-00904 解决
主题:EXP导出aud$报错EXP-00008,ORA-00904 解决 环境:Oracle 11.2.0.4 问题:在自己的测试环境,导出sys用户下的aud$表报错. 1.故障现场 2.跟踪处理 ...
- python的while循环
age_of_laochuanzhang = 56 conut = 0 while True: if conut == 3: print("输入次数上限") break age = ...
- 微信小程序--合法域名校验出错
第一次做小demo的时候遇到一个问题,合法域名校验出错: 第一步:登陆微信公众号平台--个人中心--设置--开发设置--服务器域名(一个月只有5次修改机会一定要珍惜) 第二步 打开微信开发者工具,有个 ...
- Android热修复框架汇总整理(Hotfix)
Android平台出现了一些优秀的热更新方案,主要可以分为两类:一类是基于multidex的热更新框架,包括Nuwa.Tinker等:另一类就是native hook方案,如阿里开源的Andfix ...
- 【转】.NET IL实现对象深拷贝
对于深拷贝,通常的方法是将对象进行序列化,然后再反序化成为另一个对象.例如在stackoverflow上有这样的解决办法:https://stackoverflow.com/questions/785 ...
- Codeforces 626A Robot Sequence(模拟)
A. Robot Sequence time limit per test:2 seconds memory limit per test:256 megabytes input:standard i ...
- RSA关于加密长度限制的解决办法
RSA关于加密长度限制的解决办法 因为rsa采用分块进行加密的,所以有长度限制.如果加密信息较多,可分段加解密(不建议对大量信息rsa加密,效率低效): 正常加密情形如下: public ...
- C++ 默认参数(转载)
函数的默认参数值,即在定义参数的时候同时给它一个初始值.在调用函数的时候,我们可以省略含有默认值的参数.也就是说,如果用户指定了参数值,则使用用户指定的值,否则使用默认参数的值. void Func( ...