美文网首页
Jmeter介绍

Jmeter介绍

作者: 小眼睛的露鹿酱 | 来源:发表于2019-04-10 17:27 被阅读0次

    Jmeter 一个正常的流应该有的模块

    Test Plan
        |______> Thread Group
                        |_______>  Config Element:配置参数
                        |_______>   Pre-Processor: 编辑变量
                        |_______>   Timers: 设置等待时间
                        |_______>   Logic Controller: 逻辑控制
                        |_______>   Sampler: 编辑请求
                        |_______>   Post-Processor:处理响应数据
                        |_______>   Assertion: 验证响应数据
                        |_______>   Listener: 查看结果报告             
        |______> ...
        |______> ...
        |______> Test Fragment
        |______> ...
    
    ***注意事项:
    1. View result Tree会消耗大量的内存,建议调试单个请求的时候拿他看看error的信息, 最后run的时候不要使用
    2. 使用csv格式的输出, xml的输出 不建议使用
    3. 使用少的assertion
    4. 不建议使用jmeter graphs, 可以使用JTLs tab 在web端看结果
    5. 跑之前清除下不需要的log文件
    
    

    什么是Jemeter

    Apache的jemeter是一个纯粹的java开源软件。首先是由Apache软件基金会成员stefano开发的, 用于测试软件性能和负载行为。起初是被用于测试web应用或者FTP应用,目前被用于功能测试 数据库服务器测试等
    一测试过一个web服务器的有效性吗, 验证这个服务器能成熟多少个用户同时登陆。
    jemeter的优点:


    优点
    • 开源: 完全的开源 免费,允许开发者使用源代码
    • 友好地界面: 使用简单很快就能上手
    • 平台的独立性:纯粹基于java应用, 能够在不同的平台上使用
    • 多线程框架: 多线程组独立完成不同的测试 JMeter allows concurrent and simultaneous sampling of different functions by a separate thread group
    • 可视化的测试结果:能够汇总并以不同的形式显示测试结果
    • 简单的安装
    • 容易扩展:你可以写你自己的测试,jemter也支持可视化的plugin 允许你扩展你的测试
    • 多种测试策略: 支持负载测试,分布测试, 功能测试等
    • 模拟: 能模拟多个用户进行压力测试
    • 支持多协议: jemeter不支持web应用测试但是允许评估数据库服务器的性能。所有的协议像HTTP,JDBC,LDAP,SOAP,JMS,FTP都支持
    • 记录&回放: 记录用户活动并模拟其行为
    • 脚本测试: jemeter能够与bash以及selenuim集成用于自动化测试。

    Jmeter工作原理

    jemeter工作原理

    Jmeter能模拟多个用户向目标服务器发送请求,并返回一个可视化的图来呈现统计结果
    完整的工作原理如下所示


    图片.png

    JMeter安装

    1. 安装java (注意安装的时候选择JDK版本 最好是JDK8,(而安装的要求是必须版本大于JDK6) 因为12属于短期的支持版本)
    2. 下载JMeter 下载路径, 选择tgz/zip文件, 然后解压到电脑中
      注意:选择哪个文件来下载取决于你使用的电脑, 如果是mac使用tgz, 如果是windowns使用zip
      解压后的文件得到如下:
      Jmeter安装文件夹
    3. 开启JMeter
      有以下三种模式
    • GUI mode 打开bin/JMeter.bat文件即可
    • Server mode
      JMeter的GUI会浪费很多电脑的空间,为了节省资源,我们最好选择使用Non GUI,我们就需要使用下列的命令,注意是需要进入到/bin路径下
    $jmeter -n -t testPlan.jmx - l log.jtl -H 127.0.0.1 -P 8000
    

    根据所需, 我们需要一个或多个可选择的packages
    Java compiler: 用于开发额外的插件
    SAX xml parser:解析xml文件的jar包
    email support:支持自动发送邮件,并有SMTP
    JDBC driver:安装jdbc driver支持测试数据库

    • Command line mode
      jmeter: 运行 JMeter(GUI mode)
      jmeter-server: 开启JMeter-server模型
      jmeter.sh: 基础
      mirror-server.sh:启动镜像服务器
      shutdown.sh: 关闭
      stoptest.sh:中断测试

    JMeter中的元素

    下图指出来JMeter中基本的元素


    JMeter Element

    研究所有的组件看起来复杂而又无聊,我们仅讨论你开始测试之前的必备知识
    下面的组件将会重点讨论

    • Thread Group
    • Samplers
    • Listeners
    • Configuration
      Thread Group
      线程组是线程的集合。每一个线程代表一个使用该应用的用户。一般而言,一个线程模拟一个向服务器发送请求的真实用户
      线程组的控制就是设置该组中线程的数量
      例如,如果你设置线程的数量为100, 那JMeter就是创建某100个用户来向服务器发出请求。
      图片.png

    Samplers

    我们都知道JMeter能支持测试HTTP,FTP,JDBC以及其他的协议, 现在线程组用来设置请求服务的用户数量,那如何能让每一个线程知道具体的请求是什么呢,这就需要使用Samples

    sample

    其实Samples顾名思义就是给出一些例子, 它能够对不同的测试给出一定的性能测试的样例供我们擦靠使用

    1. FTP Request
      假设你想做FTP服务器的性能测试,你可以使用FTP Sample来完成这个任务。Controller让你向FTP server发一个下载文件或者上传文件的请求。


      图片.png

      例如,如果你想从FTP服务器下载一个文件“Text.txt”,你需要配置以下的参数:


      image.png
    2. HTTP Request
      这个Sampler让我们向服务器发送一个请求, 在后面的章节会做出详细的介绍。


      image.png
    3. JDBC Request
      示意图如下


      image.png

      假设,一个数据库服务器有一个列名为test_result且存放在table test_tbl中。你想从这个数据库服务器中检索这个数据;你可以命令这个JMeter向该服务器发送这个请求来得到这个数据。


      image.png
    4. BSFSampler
      以下的实例是允许我们使用BSF脚本 来写sampler


      image.png
    5. Access Log Sample


      image.png

      这个sampler是演示如果阅读本地的文件然后生成http请求, 本地文件可以为html css image等

    6. SMTP Sampler:
      如果你想测试邮件服务器,你可以使用以下的sampler。这个sampler或使用SMTP协议来传送邮件:

    图片.png

    Listener

    Listener:显示执行的结果,并可以使用多种形式来表示:tree 图或log形式

    Listener
    1. Graph
      注意图形式的result会反应服务器的响应时间
    graph
    1. Tree
      树状图反应用户请求的动作,比如在一个session 里面的动作


      tree
    2. Table
      表格会显示测试过程的汇总


      table
    3. log
      log会显示测试结果


      log

    配置元素

    可以通过Sampler来设置默认值和变量供后续者使用。
    下图显示的是JMeter常用的配置元素


    configuration element
    1. CSV Data set config
      假设你想去测试一个有100个用户使用不同证书登陆的网站。你没必要去记录100次脚本运行。你可以参数化你的脚本使它包含不同的用户登陆证书。这个登陆信息(账户密码等)就可以在一个txt文件中存储。JMeter有一个element能从txt文件中读取不同的参数。这就是CSV data set config,被用于从文件中读取每一行,并将其拆成不同的变量
      csv data set config

    这个就是一个CSV data,包含了登陆网站的用户和密码


    csv data
    1. HTTP Cookie Manager
      理解这个需要引入下面的例子
      你使用你的浏览器(Firefox,IE等)来进入www.google.com
      然后登陆google账号使用你自己的密码和帐号。你的账号和密码将会被你的电脑以cookie来保存,下一次,当你来访问的时候,你会自动登录而不需要自己重新登陆。这是因为你的浏览器会使用你的cookies来作为用户登陆的信息。
      HTTP Cookie Manager就具有和浏览器同样的作用。如果你有一个HTTP的请求并且相应会包含一个cookie,这个manager会自动记录这个cookie,当以后登陆该网站的时候会使用这个cookie。

    2. HTTP request default
      这个element会让我们为http请求控制器使用来设置默认的值。
      例如,
      你正在向goole发送100个http请求。
      你不得不手动为这100个申请输入服务器名。
      当然,你可以添加一个单独的http请求默认值如: Server Name or IP" field = google.com


    3. login Config Element
      该元素能让我们添加或重写在sampler中设置的账号和密码
      例如,你想模拟用户使用某个账号和密码来登陆facebook,你可以设置改element 来为用户请求添加账号密码。


      图片.png

    那这个与CSV Data config的区别


    其他不错的资源
    https://medium.com/@chayathilakumarai

    相关文章

      网友评论

          本文标题:Jmeter介绍

          本文链接:https://www.haomeiwen.com/subject/bvntpqtx.html