Jmeter介绍

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,692评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,482评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,995评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,223评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,245评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,208评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,091评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,929评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,346评论 1 311
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,570评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,739评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,437评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,037评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,677评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,833评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,760评论 2 369
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,647评论 2 354

推荐阅读更多精彩内容