• 【原创】相对完整的一套以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 还是按博主的写,这是一个驱动名

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

      具体配置如下图

      

    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.1apache-jmeter-3.1libext路径下

       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

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

  • 相关阅读:
    Delphi 简体 繁体 转换
    简单地为DBNavigator填加Caption
    TEdit的 Clear 和 赋值 ''
    SSH服务端
    动态模块导入示例、断言
    异常处理
    反射、getattr
    类的各种自带方法,静态方法,属性方法,类方法等
    类的继承,深度优先于广度优先
    类变量与实例变量、析构函数、私有属性与私有方法
  • 原文地址:https://www.cnblogs.com/huangxiaocheng/p/8399650.html
Copyright © 2020-2023  润新知