华硕网络产品技术交流平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

查看: 12430|回复: 3

[分享] Jmeter 基本设置教程(性能测试工具B)

[复制链接]

626

主题

6156

回帖

1万

积分

管理员

正品行货

Rank: 9Rank: 9Rank: 9

积分
16729

RT-AC88URT-AX68U

发表于 2014-7-15 11:45:41 | 显示全部楼层 |阅读模式
参考:
路由器性能测试(如:LAN吞吐量,WAN上传、下载速度等等)
网络模拟器WANem使用配置图文教程(性能测试工具A)

安装1> 安装JDK ,如我安装的地址为:C:/Program Files/Java/jdk1.5.0 ;

2> 设置环境变量:

     i 在用户变量中,新建变量名“JAVA_HOME”,变量值为:安装JDK的目录,如我的为:“C:/Program Files/Java/jdk1.5.0;” 。
     ii 再新建变量名为“CLASSPATH”,变量值为:

       “C:/Program Files/Java/jdk1.5.0/lib/dt.jar;C:/Program Files/Java/jdk1.5.0/lib/tools.jar;C:/Program

Files/Java/jdk1.5.0/bin;” 。   

     iii 在系统变量的“Path”变量值后加上:“%JAVA_HOME%/bin;”。

3> 安装Jmeter,解压“jakarta-jmeter-2.3.2.zip”到E盘根目录下:“E:/jakarta-jmeter-2.3.2”。
4> 设置环境变量:
   i 在用户变量中,新建变量名“JMETER_HOME”,变量值为:“E:/jakarta-jmeter-2.3.2;”。
   ii 修改“CLASSPATH”,添加:“%JMETER_HOME%/lib/ext/ApacheJMeter_core.jar;%JMETER_HOME%/lib/jorphan.jar;%JMETER_HOME%/lib/logkit-1.2.jar;”。
5> 在系统的CMD命令提示符下输入"java",能看到相应帮助信息,说明jdk安装成功。

6> 运行jmeter: 直接打开 E:/jakarta-jmeter-2.3.2/bin/jmeter.bat 即可。

Comment:挺奇怪的是,我的电脑自从重装后,么有安装过jdk,但是也可以直接运行jmeter,一点不影响,而我另外一台电脑则不行,挺奇怪的。

初识:
JMeter是一款在国外非常流行和受欢迎的开源性能测试工具,像LoadRunner 一样,它也提供了一个利用本地Proxy Server(代理服务器)来录制生成测试脚本的功能,但是这个功能并不好用。所以在本文中介绍一个更为常用的方法——使用Badboy录制生成 JMeter 脚本。

简单的介绍一下Badboy。Badboy是一款不错的Web自动化测试工具,如果你将它用于非商业用途,或者用于商业用途但是安装Badboy 的机器数量不超过5台,你是不需要为它支付任何费用的。也许是一种推广策略,Badboy提供了将Web测试脚本直接导出生成JMeter 脚本的功能,并且这个功能非常好用,也非常简单。你可以跟着下面的试验步骤来迈出你在开源世界的第一步。

1.      通过Badboy的官方网站下载Badboy的最新版本;

2.      安装Badboy。安装过程同一般的Windows 应用程序没有什么区别,安装完成后你可以在桌面和Windows开始菜单中看到相应的快捷方式——如果找不到,可以找一下Badboy安装目录下的Badboy.exe 文件,直接双击启动Badboy;

3.      启动Badboy,你可以看到下面的界面。


在地址栏(图中红色方框标注的部分)中输入你需要录制的Web应用的URL——这里我们以http://www.yahoo.com 为例,并点击GO 按钮开始录制。如果你用过LoadRunner之类的商业工具,对于这个操作一定不会陌生吧 ^_^

4.      开始录制后,你可以直接在Badboy内嵌的浏览器(主界面的右侧)中对被测应用进行操作,所有的操作都会被记录在主界面左侧的编辑窗口中——在这个试验中,我们在Yahoo的搜索引擎中输入 JMeter 进行搜索。不过你将看到,录制下来的脚本并不是一行行的代码,而是一个个Web对象——这就有点像LoadRunner的VuGen中的Tree View视图;

5.      录制完成后,点击工具栏中的“停止录制”按钮,完成脚本的录制;

6.      选择“File -> Export to JMeter”菜单,填写文件名“login_mantis.jmx”,将录制好脚本导出为JMeter脚本格式。也可以选择“File -> Save”菜单保存为Badboy脚本;

7.      启动JMeter并打开刚刚生成的测试脚本。

也许你已经急不可待的准备开始尝试着用JMeter处理你手头的工作了^_^ 在下面的几节,我将继续为大家介绍如何在 JMeter 中完成一个测试场景的设置和JMeter测试结果分析入门,以及如何参数化JMeter脚本。

当然,如果你的动手能力很强,几分钟你就可以熟悉这些内容。不过还是请允许我一点点由浅入深的来帮大家完成“JMeter从入门到精通”的过程。我相信在这个过程中你将会了解到更多有关性能测试的知识和经验,甚至包括一些LoadRunner等商业测试工具所无法提供给你的经验。

comment:这位作者很厉害,写了很多对我们这些入门者来说受益匪浅的性能文章(http://kb.cnblogs.com/a/558720),非常推荐,初识就用他写的这篇吧

用Jmeter 录制脚本

1. 设置代理
    1) WorkBench->Add->Non-Test Elements->HTTP Proxy Server
    2) 在“HTTP Proxy Server”页面设置端口(确保端口没被其他正运行的程序占用,我一般用9000)
2. 给浏览器中设置代理
    1)IE
          工具->Internet 选项->链接->局域网设置
          勾选设置代理服务器,地址输入框中输入localhost,端口输入框中输入在1.2步中“HTTP Proxy Server”页面设置端口
          确定后即设置完IE的代理
    2)Firefox
           Tools- >Options->Network->Settings
           选上“Manual Proxy configuration”,HTTP Proxy和Port和上面一样填法
           确定后即设置完Firefox的代理
3. 添加线程组(Test Plan->Add Thread Group)
4. 启动Jmeter代理
    1)在WorkBench->HTTP Proxy Server窗体里,在Tartget Controller中选“Test Plan->Thread Group”
    2)点“Start”
5. 打开浏览器,访问的网站的请求会被录制下来
6. 录制完后停掉Jmeter的代理服务,改掉浏览器的代理



常用函数:

 "_csvRead"函数

  csvRead函数是从外部读取参数,csvRead函数可以从一个文件中读取多个参数。

  下面具体讲一下如何使用csvread函数:

  1.新建一个csv或者text文件,里面保存要读取的参数,每个参数间用逗号相隔。每行表示每一组参数,每列表示每种参数:

  比如:

  admin,123

  manager,456

  2.打开Jmeter的函数助手,选择csvread函数,如下图所示:

  其中:

  CSV file to get values from | *alias:要读取的文件路径,应该是绝对路径

  CSV文件列号| next| *alias:从第几列开始读取,注意第一列是0

  点击生成按钮,则生成了函数,在上图中则为:${__CSVRead(D:\login.txt,1)}csvread就是从login.txt文件中读取第一列的参数。以此类推。

  3.将生成的参数拷贝到需要参数化的参数的值一项中,如果要修改要读取的参数的列,则可以直接在参数值中修改数字而不用重新在csvread函数生成中修改。

  4.jmeter执行的时候,如果有多个线程,顺序读取第一行的数字,如果线程组多余文件中的行数,则循环读取。

  5.利用该功能,可以实现不同参数需要不同参数值的问题,只需要在需要参数化的地方将生成的CSVRead函数字符串粘贴过去,然后修改表示第几列的数字就可以了。

 "_Random"函数

  功能:这个函数是从某个数字段随机读取数据替换参数,可以利用在测试需要添加多条数据记录而且某些字段需要唯一性的测试脚本中,随机生成的参数是数字

  作用:可以用来实现参数化http请求发送的参数,使得在Jmeter运行时参数化了的参数在每个线程去不同的随机数。如果某个参数每次发送请求的时候不能重复才可以存储到数据库中,则用这个功能十分方便。

  使用:

  1.点击Jmeter的“选项”,选择“函数助手对话框”(或者使用快捷键“Ctrl+F”),在“选择一个功能”的下拉框中选择“_Random”。

  2.配置“_Random”函数,第一个参数是“一个范围内的最小值”,即所要取的随机数的最小值,我们设置成1;第二个参数是“一个范围内的最大值”,即所要取的随机数的最大值,我们设置成100;第三个参数是“函数名称”,即用于存储在测试计划中其他的方式使用的值,我们设置成Random。设置好上面的三个参数后,点击“生成”按钮,这样就会在对话框的最下面生成一个字符串“${__Random(1,100,Random)}”,在我们编写的脚本中,找到要替换的参数,把它的值换成前面生成的字符串就可以了,然后每次运行的时候,这个参数会变成一个1到100之间的随机数。

comment:这个文章蛮多的啦,我就摘录了两个这次用到的,如果要查具体的每个函数的用法可以看(http://jakarta.apache.org/jmeter/usermanual/functions.html),简单的就可以看看51testing上的(http://www.51testing.com/html/35/n-208335-2.html)

断言的使用

先说一下使用断言的目的:在request的返回层面增加一层判断机制。因为request成功了,并不代表结果一定正确。类似于QTP中的检查点检查点。断言的使用方法:
step_1:在你选择的Sampler下添加对应的断言(因为不同类型的断言检查的内容不同)。配置好响应的检查内容(根据断言情况而定,有的断言控制面板不需要添加任何内容,如XML Assertion)。
step_2:添加一个断言结果的监听器(从监听器中添加),通过“断言结果”可以看到是否通过断言。对于一次请求,如果通过的话,断言结果中只会打印一行请求的名称;如果失败,则除了请求的名称外,还会有一行失败的原因。(不同类型的断言,结果不同。)
注意:一个Sampler可以添加多个断言,根据你的检查需求来添加相应的断言,当Sampler下所有的断言都通过了,那么才算request成功。
下面简单说一下几种断言的使用(前3种应该较为常用一点):
1、Response Assertion(响应断言)
适用于判断返回内容中的内容,控制面板截图如下:


位置1:名称、注释
位置2:要测试的相应字段,即要检查的项
位置3:模式匹配规则
Ø 包括:返回结果包括你指定的内容
Ø 匹配:(好像跟Equals查不多,弄不明白有什么区别)
Ø Equals:返回结果与你指定结果一致
Ø Substring:返回结果是指定结果的字串
否:不进行匹配
位置4:要测试的模式,即填写你指定的结果(可填写多个,如图中就是希望返回文本中包含有2个指定的字符串,只有当同时包含了这2个串,这个断言才算通过,否则,算失败。)按钮【添加】、【删除】是进行指定内容的管理
2、Size Assertion(Size断言)

Size Assertion用于判断返回内容的大小,Size Assertion控制面板截图如下:



位置1:名称、注释
位置2:指定大小(单位:字节)与比较类型,返回内容的大小、比较类型、指定字节大小的比较时的摆放顺序是:【返回内容的大小】【比较类型】【指定字节大小】,如果这个比较结果通过,则断言通过,如图中,如果返回内容的大小大于10个字节,则断言通过,否则失败。

3、Duration Assertion(Size断言
Duration Assertion用于判断服务器的响应时间,控制面板截图如下:




位置1:名称、注释
位置2:响应时间设置(单位:毫秒),如果响应时间大于设置的响应时间,则断言失败,否则成功!(等于的情况不好设置,暂不知道具体情况如何)

4、HTML Assertion(HTML断言)

html assertion的作用是检查返回的的内容,格式是否符合指定格式的相关标准。具体见下面说明。HTML Assertion的控制面板如下:



位置1:名称、注释
位置2:Tidy Settings,Doctype有auto、omit、strict、loose(这里各设置代表什么意思暂不太了解)
位置3:格式类型,即你按那种格式来检查返回内容,html or xhtml or xml?
位置4:能接受的最大值设置,Error threshold:最大可以接受的错误数;Warning threshold:最大可以接受的警告数。如果勾选“Error only”这忽略Warning,只对Error作统计检查。如果对返回内容的检查结果不超过指定结果,则断言通过,否则失败。
5、XML Assertion(XML断言)
就目前的理解来看XML Assertion的作用是判断返回结果



微信扫一扫,阅读更方便^_^

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

21

主题

227

回帖

763

积分

高级会员

Rank: 4

积分
763
发表于 2014-7-15 14:32:42 | 显示全部楼层
收藏先.......
回复

使用道具 举报

299

主题

2907

回帖

9259

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
9259
发表于 2014-7-15 16:30:10 | 显示全部楼层
支持下
回复

使用道具 举报

14

主题

210

回帖

1万

积分

论坛元老

Rank: 8Rank: 8

积分
14221
发表于 2014-7-15 20:35:36 | 显示全部楼层
难搞
0+0=?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

快速回复 返回列表 搜索 官方QQ群
×

秒后自动关闭

小黑屋|手机版|Archiver|华硕网络产品技术交流平台 ( 苏ICP备16010857号-1 )苏公网安备 32050502000499号

GMT+8, 2024-3-29 10:14 , Processed in 0.042561 second(s), 32 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表