人们对从认识事物都有一个具体到抽象的过程,学习Jmeter也不例外,通过一个实例来进行学习,一方面可以让初学者有所见即所得的信心,另一方面,其实也是在初学者心中留下了对这事物的一个朦胧的印象,这在以后的学习中,会不断地被深化。

所以,下面我们不对Jmeter的任何部件做任何详细的说明,而是通过一个例子,让大家了解这个框架。
   一 前期准备

首先,你要去官方那里下载Jmeter的压缩包,官方地址是http://jmeter.apache.org/,另外,你的系统要配置好java环境,笔者写这篇文章的时候,官方版本是2.8,下载完了之后,进入里面的bin目录下,找到jmeter.bat这个批处理文件,然后双击,进入jMeter的工作界面:

这里面有很多功能,这我们先别去理会这一些,接下来,我们会一步一步地去创建一个web测试项目,让大家先从感性上去认识这个框架。

接下来,我们创建的这个项目是这样的,我们会建立一个计划,让它去访问我们设定好的url,并将访问得到的信息返回给我们。

首先我们要新建一个线程组,线程组的作用模拟多个访问对象,对系统可以进行压力测试,这里我们先有这个概念就行了。

然后再这些线程组下面我们要添加一个forEach逻辑单位,它会帮我们去遍历我们要访问的url

添加完forEach逻辑单位之后,我们要设置一下一些属性。

下面是上面参数的含义

Name:控制器名称

Comments:备注

Input Variable Prefix:输入变量前缀

Output variable name:输出变量名称

Add”_”before number:输入变量名称中是否使用“_”进行间隔。

在这里的url就是待会要我们输入的变量,returnVal就是每次遍历以url为前缀的变量之后输出的值。

这里很多人就会开始纳闷了,那么这个url是从哪里来的呢?

如下图

右击forEach逻辑控件,添加一个用户自定义的变量。添加待会要加载的url,这里我添加了两个以url为前缀的url,待会forEach控件就会从这里去遍历这些变量。

好了,有了数据之后,其实我们还少了一样东西,我们是要做访问页面的请求,其实这里还少了一个发动请求的控件。这里我们添加一个http请求。

点击这个http请求,我们现在只需要添加一项内容。

这个${}表示取值的意思,returnVal其实和前面那个forEach控件里面的returnVal对应,这样一来,我们就可以明白这整个流程了。

对于每一个http请求,它会去取forEach控件中的returnVal的值,而returnVal的值来自对前缀为url的值的遍历结果。

写到这里,其实就差不多了,但是,还少了一样东西,就是如何看到显示结果,这里我们再添加一个监听器,返回结果时,我们就可以看到响应结果了。如图,我们添加一个查看结果树。

然后点击菜单栏中的运行按钮,第一次运行时会要你先保存一下。

最后的左边的目录树应该是这样子的。

运行之后,点击查看结果树,你可以看到如下的图。

读者可能会感到很奇怪为什么一个是绿色的,一个是红色的。

绿色的表示访问是有结果的,红色是访问不成功的。这里我们访问了两个请求,一个是http://www.baidu.com,另外一个是http://www.google.com,百度这里是访问成功的,但是,在笔者写这篇文章的时候,刚好是不成功的,这里面的原因,不说,你也懂的,还有,有读者可能比较疑惑,为什么访问google的时候,会出现下面url呢?笔者猜测是在中国大陆访问google,默认都会 被重定向到香港那边的google服务器,至于为什么,可能是google在大陆这边是用不了是有关的。好了,这次就写到这里。

foreach控件的运用(非原创)http://blog.chinaunix.net/uid-26884465-id-3416869.html的更多相关文章

  1. 利用Aspose.Cell控件导入Excel非强类型的数据

    导入Excel的操作是非常常见的操作,可以使用Aspose.Cell.APOI.MyXls.OLEDB.Excel VBA等操作Excel文件,从而实现数据的导入,在导入数据的时候,如果是强类型的数据 ...

  2. Foreach控件使用

    在SSIS中,Foreach控件可以循环处理选中的文件中的文件,例如sql文件,Excel文件等.下面就介绍一个比较经典的案例,将一个文件夹中包含的多个Excel文件循环导入至数据库中. 第一步:在数 ...

  3. C++ 关于MFC List Control 控件的使用事项 原创

    1\在开发项目时,使用到了 listcontrol 控件,就一些问题,做一下备注,以备以后使用 (1)  给list项目 删除所有的项目  DeleteAllItems(); (2) 给list项目 ...

  4. [Python] wxPython 菜单栏控件学习总结(原创)

    1.总结 1.大体创建过程 1.创建一个 菜单栏  : menuBar = wx.MenuBar() 相当于这个白色地方,没有File这个菜单 2.创建 菜单 : fileMenu = wx.Menu ...

  5. asp.net、mvc、ajax、js、jquery、sql、EF、linq、netadvantage第三方控件知识点笔记

    很简单,如下: 父页面:(弹出提示框) function newwindow(obj) { var rtn = window.showModalDialog('NewPage.htm','','sta ...

  6. 17Web服务器端控件

    Web服务器端控件 Web服务器端控件 ASP.Net提供了两类服务器端控件:Html服务器端控件和Web服务器端控件.由于Web服务器端控件功能更强大,和Windows应用程序的控件使用方法类似,容 ...

  7. 9.2.2 .net framework下的MVC 控件的封装(下)

    控件封装的部分说明 可能有人觉得应该前后端分离,我也承认这是应该的方向,我们也在考虑使用ng2等简化前端.但是,我们封装控件还是因为如下原因综合考虑的: 我们这是个框架,上面支撑了许多个应用,包含几百 ...

  8. 基于MVC4+EasyUI的Web开发框架经验总结(16)--使用云打印控件C-Lodop打印页面或套打报关运单信息

    在最新的MVC4+EasyUI的Web开发框架里面,我整合了关于网购运单处理的一个模块,其中整合了客户导单.运单合并.到货扫描.扣仓.出仓.查询等各个模块的操作,里面涉及到一些运单套打的操作,不过由于 ...

  9. MFC编程入门之二十二(常用控件:按钮控件Button、Radio Button和Check Box)

    本节继续讲解常用控件--按钮控件的使用. 按钮控件简介 按钮控件包括命令按钮(Button).单选按钮(Radio Button)和复选框(Check Box)等.命令按钮就是我们前面多次提到的侠义的 ...

随机推荐

  1. Ubuntu安装bcmath扩展

    sudo apt-get install php-bcmath

  2. 判断某个字符串里面是否包含caoyang 这个字符串?

    $string = 'Lorem ipsum dolor sit amet'; $preg = '/caoyang/'; $status = preg_match($preg, $string,$ma ...

  3. java 23种设计模式学习。

    一.3大类设计模式:创建型,结构型,行为型. a.5种创建型模式:工厂方法,抽象工厂,单例,建造者,原型. b.7种结构型模式:适配器,装饰器,代理,外观,桥接,组合,享元. c.11种行为型模式:策 ...

  4. object SparkStreaming_StateFul {

    窗口查询 ) )).reduceByKeyAndWindow(_+_,_-_,Seconds(10),Seconds(15))     每隔15s进行查询,查询为前10s的结果.这里的值必须为采集时间 ...

  5. XML 解析的两种方法

    申请博客有一段时间了,一直没有写些什么,今天写一下被遗忘的 xml,因为 ios 现在一般都用 JSON,但毕竟还有一部分老一些的服务器还会有 xml xml 格式的解析方式有两种 1.SAX解析: ...

  6. java.io.IOException: java.sql.SQLException: ORA-01502: index 'BTO.PK_xxxxx' or partition of such index is in unusable state

    最近由于数据库的全备出问题了,所以一直在观察. 刚好发现很多不需要的数据,就删了几百个G的数据吧. 今天突然就报这个问题. java.io.IOException: java.sql.SQLExcep ...

  7. 2019.01.23 hdu1964 Pipes(轮廓线dp)

    传送门 题意简述:给一个没有障碍的网格图,任意两个格子连通需要花费一定代价,现在求一条覆盖所有格子的哈密顿回路的总权值的最小值. 思路: 跟这道题一毛一样,除了把求和变成求最小值以外. 代码: #in ...

  8. 2018.06.27The Windy's(费用流)

    The Windy's Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 6003 Accepted: 2484 Descripti ...

  9. 简单实现java线程池

    使用多线程以及线程池的意义无需多说,要想掌握线程池,最好的方法还是自己手动去实现. 一.实现思路      (网络盗图) 二.实现代码 1.线程池类 package com.ty.thread; im ...

  10. Codeforces Round #543 (Div. 2) F dp + 二分 + 字符串哈希

    https://codeforces.com/contest/1121/problem/F 题意 给你一个有n(<=5000)个字符的串,有两种压缩字符的方法: 1. 压缩单一字符,代价为a 2 ...