Jmeter介绍

2019-04-10  本文已影响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的优点:


优点

Jmeter工作原理

jemeter工作原理

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


图片.png

JMeter安装

  1. 安装java (注意安装的时候选择JDK版本 最好是JDK8,(而安装的要求是必须版本大于JDK6) 因为12属于短期的支持版本)
  2. 下载JMeter 下载路径, 选择tgz/zip文件, 然后解压到电脑中
    注意:选择哪个文件来下载取决于你使用的电脑, 如果是mac使用tgz, 如果是windowns使用zip
    解压后的文件得到如下:
    Jmeter安装文件夹
  3. 开启JMeter
    有以下三种模式
$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支持测试数据库

JMeter中的元素

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


JMeter Element

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

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

上一篇 下一篇

猜你喜欢

热点阅读