3.JMeter测试计划要素

JMeter中一个脚本即是一个测试计划,也是一个管理单元。JMeter的请求模拟与并发数(设置线程数,一个线程代表一个虚拟用户)设置都在脚本文件中一起设置。

要素一:脚本中测试计划只能有一个

JMeter测试计划类似LoadRunner Controller中的测试场景,同一时刻场景固然只能有一个,JMeter脚本在GUI中显示时是树形结构,测试计划是根节点,根节点当然只能有一个。

要素二:测试计划中至少要有一个线程组

JMeter负载是通过线程组驱动的,所以计划中至少要出现一个线程组。JMeter测试计划支持多个线程组,把不想管的业务分部在不同的线程组中。

要素三:至少要有一个取样器

测试的目的就是要模拟用户请求,没有取样脚本就毫无意义。

要素四:至少要有一个监听器

测试结果用来衡量系统性能,我们需要从结果中分析系统性能。

4.JMeter运行逻辑

第一,利用取样器模拟用户请求,如果需要做一些数据及环境的准备,那么久使用配置管理器,如果需要对响应的数据做处理,使用后置处理器。

第二,控制运行,使用线程组来设置运行场景,利用逻辑控制器来控制业务(实际就是控制取样器)。

第三,收集结果,利用断言来验证测试结果,利用监听器来收集显示测试结果。

同时JMeter也支持远程运行,弥补单台机器负载不够的情况。

5.JMeter Http协议录制

Http代理方式进行录制的原理是解析网络数据包。

5.1 Badboy进行录制

Badboy录制的脚本可以直接导出为.jmx格式,jmx正是JMeter脚本保存的格式,jmx实际上是一个XML格式的文件。

Badboy的录制方式有两种:一种是Request方式,一种是Navigation方式。这两种方式区别如下:

request:模仿浏览器发送表单信息到服务器,每个资源都将作为请求发送;

Navigation:记录用户鼠标操作,类似于自动化测试工具QTP,回放时模拟一个个点击。

5.2 界面详解

通过Badboy录制后的脚本导入到JMeter,以树形结构显示脚本,执行时原则上按节点先后顺序往下执行。详细界面如下:

A. Test Plan:测试计划,JMeter测试脚本根节点,每一个测试脚本都是一个测试计划,名称可以自己定义。

(1)设置用户全局变量,即在“用户定义变量”中定义。

(2)独立运行每个线程组,如果一个测试计划中有多个线程组,设置此项可以生效。不设置时每个线程组同时运行。

(3)Run teardown Thread Groups after shutdown of main threads,关闭主线程后运行teardown程序来正常关闭线程组(运行的线程本次迭代完成后关闭)。

(4)函数测试模式,在调试脚本的过程中我们可能需要获取服务器返回的详细信息就可以选择此项,此项记录较多的数据会影响测试效率,所以在执行性能测试时关闭此项。

(5)Add diretory or jar to classpath,把测试需要依赖的jar包或包所在的目录加入类路径。不过还是建议大家把依赖的jar包添加到%JMETER_HOME%\lib目录下。

B. Thread Group:线程组模拟虚拟用户的发起点,在此可以设置线程数(类似LoadRunner中的多少个虚拟用户)及运行次数或者运行时间,还可以定义调度时间和运行时长。

C. HTTP Cookie Manager:我们知道在用IE访问Web页面时会记录Cookie信息,JMeter通过加入HTTP Cookie Manager来自动记录Cookie信息,这里选择默认即可。

JMeter学习笔记(二)的更多相关文章

  1. WPF的Binding学习笔记(二)

    原文: http://www.cnblogs.com/pasoraku/archive/2012/10/25/2738428.htmlWPF的Binding学习笔记(二) 上次学了点点Binding的 ...

  2. AJax 学习笔记二(onreadystatechange的作用)

    AJax 学习笔记二(onreadystatechange的作用) 当发送一个请求后,客户端无法确定什么时候会完成这个请求,所以需要用事件机制来捕获请求的状态XMLHttpRequest对象提供了on ...

  3. [Firefly引擎][学习笔记二][已完结]卡牌游戏开发模型的设计

    源地址:http://bbs.9miao.com/thread-44603-1-1.html 在此补充一下Socket的验证机制:socket登陆验证.会采用session会话超时的机制做心跳接口验证 ...

  4. JMX学习笔记(二)-Notification

    Notification通知,也可理解为消息,有通知,必然有发送通知的广播,JMX这里采用了一种订阅的方式,类似于观察者模式,注册一个观察者到广播里,当有通知时,广播通过调用观察者,逐一通知. 这里写 ...

  5. java之jvm学习笔记二(类装载器的体系结构)

    java的class只在需要的时候才内转载入内存,并由java虚拟机的执行引擎来执行,而执行引擎从总的来说主要的执行方式分为四种, 第一种,一次性解释代码,也就是当字节码转载到内存后,每次需要都会重新 ...

  6. Java IO学习笔记二

    Java IO学习笔记二 流的概念 在程序中所有的数据都是以流的方式进行传输或保存的,程序需要数据的时候要使用输入流读取数据,而当程序需要将一些数据保存起来的时候,就要使用输出流完成. 程序中的输入输 ...

  7. 《SQL必知必会》学习笔记二)

    <SQL必知必会>学习笔记(二) 咱们接着上一篇的内容继续.这一篇主要回顾子查询,联合查询,复制表这三类内容. 上一部分基本上都是简单的Select查询,即从单个数据库表中检索数据的单条语 ...

  8. NumPy学习笔记 二

    NumPy学习笔记 二 <NumPy学习笔记>系列将记录学习NumPy过程中的动手笔记,前期的参考书是<Python数据分析基础教程 NumPy学习指南>第二版.<数学分 ...

  9. Learning ROS for Robotics Programming Second Edition学习笔记(二) indigo tools

    中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...

  10. Redis学习笔记二 (BitMap算法分析与BitCount语法)

    Redis学习笔记二 一.BitMap是什么 就是通过一个bit位来表示某个元素对应的值或者状态,其中的key就是对应元素本身.我们知道8个bit可以组成一个Byte,所以bitmap本身会极大的节省 ...

随机推荐

  1. iOS开源项目:JSONKit

    一个Json解析库,其特点是代码简单,只有一个.h和.m文件. https://github.com/johnezang/JSONKit JSON(JavaScript Object Notation ...

  2. oracle分析函数之windowing_clause--rows

    Some analytic functions allow the windowing_clause. In the listing of analytic functions at the end ...

  3. python2 python3编码问题记录

    最近在服务器上跑脚本,linux自带的是python 2.x,中文显示经常有问题,通过下面两篇终于弄懂了. https://www.cnblogs.com/575dsj/p/7112767.html ...

  4. echarts使用记录(二)legend翻页,事件,数据集,设置y轴最大/小值,让series图形从右侧出往左移动

    1.有时候legend比较多的时候,需要做翻页比较好,有个属性legend的type属性设置为scroll,然后animation可以控制动画,官方文档均可查. 再就是scrollDataIndex, ...

  5. ECharts学习总结(一):ECharts的第一个图表

    在进行echarts图表开发之前先要到echarts官网下载echarts的库文件,我下载的是echarts-2.2.7.然后把库文件放到工程文件web目录下.接下来进行第一个图表的显示步骤如下: 1 ...

  6. 解决eclipse中运行web项目时弹出的"Port 8080 required by Tomcat 9.0 Server at localhost is already in use...

    1.tomcat默认端口是8080,可以修改通过tomcat的端口 修改tomcat\conf\server.xml     结果运行程序,还是报"Port 8080 required by ...

  7. Android -- Vibrator

    Vibrator                                                                                    public c ...

  8. C# 怎么显示中文格式的星期几

    1.DateTime.Now.ToString("dddd",new System.Globalization.CultureInfo("zh-cn")); 2 ...

  9. C++ 相关面试题汇总

    多态性与虚函数 (陈维兴教材) (1)所谓多态性就是不同对象在收到相同的消息时,产生不同的动作.直观的说,多态性是指用一个名字定义不同的函数,这些函数执行不同但又类似的操作,从而可以使用相同的方式来调 ...

  10. python中字符串list转化为数值型

    之前在网上找相关的资料,给出的方法都不合适, 经过很长时间的试错才知道源于python2.X和python3.X的不同, 原理都是采用map函数,但是二者返回的信息不同 Python2.x,可以使用m ...