JMeter 监控和记录&常用功能

AngelaDan 2012-01-29

使用https连接时,如果对应站点的CA证书错误,会直接报连接不到服务器的错误,org.apache.commons.httpclient.NoHttpResponseException,把错误证书删除后【证书发行商,证书有效时间,证书对应的站点3部分信息】,或者使用正确的证书,就可以!

工具栏按钮:

Find,ClearAll,Start,FunctionHelper,Help(鼠标点到某个项目,然后点击该按钮弹出相应帮组)

JMeter录制代理设置(注意这个代理是用来录制脚本的):

WorkBench->rightclick->Add->Non-TestElements->HttpProxyServer->Start

Firefox代理设置:

Tools->Options->Advanced->Network->ConnectionSettings->Manualproxyconfiguration

HTTPProxy:127.0.0.1Port:8080Usethisproxyserverforallprotocols

注意:Noproxyfor:localhost,127.0.0.1

HTTPProxyServer设置

JMeter执行代理设置(通过代理服务器来执行JMeter,当把代理设置成127.0.0.18888,默认就可以和Fiddler集成,即Fiddler会抓到JMeter发出的请求):

-H[proxyserverorIPaddress]

-P[proxyserverport]

-u[usernamefortheproxyauthentication]

-a[passwordfortheproxyauthentication]

jmeter.bat-H192.168.10.1-P8012

jmeter.bat-H192.168.10.1-P8012-umy_user_name-amy_password

HTTPRequestHTTPClient选项:

基础选项:

Add:

对于POST请求,Content-Type:application/x-www-form-urlencoded;charset=UTF-8;charset=UTF-8,

对于GET请求,Content-Type:charset=UTF-8;charset=UTF-8,

然后选中header?单选框,jmeter就以HTTPHeader的形式告诉服务器请求参数编码使用的字符集,而其他没有选上header?单选框的项目以Parameter的形式发送!注意HTTPGET请求,发送的中文字必须选中Encoder?单选框,而作为POST方式发送时,不需要选中,只需要指定编码!

高级选项:

Encoding编码,

Timeout(ms),

RedirectAutomatically(自动重定向-服务器内部进行重定向操作时,HTTPRequest自动重定向,然后返回Redict后的Response,如果选择否的话,服务器就不会进行自动重定向操作,这时,默认只显示第一个重定向前的请求,此时,如果把FollowRedirects选择为true时,那边在结果页面ViewResultTree中会把所有的请求都列出来)

一般情况下:RedirectAutomaticallytrue,FollowRedirectsfalse否则RedirectAutomaticallyfalse,FollowRedirectstrue

有时候在服务器存在多次Redirect或者对POST请求做了Redirect转发的时候,JMeter会处理不正常,这时候可以

1,使用HTTPRequest而不是HTTPRequestHTTPClient或者

2,使用GET请求来替换POST请求或者

3,把RedirectAutomatically和FollowRedirects都设置成false,然后用正则表达式Location:(.*)从响应头中提取Redirect的URL,然后根据提取的URL建立新的HTTP请求----直接从Location中得到的url拼到Path中能正常执行

Usemultipart/form-dataforPOST

Ignoreresponsecode

JMeter保存执行结果:

在ViewResultsTree界面以树状结构保存结果,在该画面上点击Configure的弹出画面中,选择SaveFieldNames,SaveAssertionFailureMessage,点击Done【注意:Writeresultstofile不要选中自己的脚本文件,不然就会丢失脚本!!默认显示所有结果:错误的和正确的】

JMeter日志:执行脚本时,Jmeter错误日志会输出到控制台中!

JMeter使用系统时间作为唯一值:

Add->PrePrecessors->UserParameters->currentTime=${__time(YMD)}${__time(HMS)},UpdateOncePerIterationchecked

使用的地方:${__threadNum()}_${currentTime},也可以不定义变量直接使用

JDBC数据库连接:

Add-->LogicController-->Case

Add-->ConfigElement-->JDBCConnectionConfiguration

DatabaseURL:jdbc:oracle:thin:@192.168.0.1:1521:dbinst

JDBCDriverclass:oracle.jdbc.driver.OracleDriver

VariableNameBoundtoPool(数据库连接池设置,和下面的JDBCRequest中的相应项目的值一致!):prjdata

这里好像必须写死,不能引用properties中的变量

Add-->Sampler-->JDBCRequest

sql中不能用分好结尾

输入的sql中可以直接使用变量,如select*fromtblwheres='${currentTime}'

把数据库中查询的值,设置到变量中来使用:

JDBCRequest的responseFormat选择xml,然后新建Add->PostProcessors->XPathExtractor->在弹出来的界面中,ReferenceName为将要被使用的变量名词,XPathquery设置为:/RecordSet/Record/ITEMNAME

/RecordSet/Record[2]/ITEMNAME:选取第二行记录中的相应项目的值

ReferenceName:refName-settofirst(oronly)match;ifnomatch,thensettodefault;refName_matchNr-settonumberofmatches(maybe0);refName_n-n=1,2,3etc.Settothe1st,2nd3rdmatchetc.

UseTidy:从HTML中提取时,选择Yes,从XHTML或者XML提取时,选择false

使用__StringFromFile函数读取错误,**ERR**,原因是改函数读取的文件是相对与JMeterlaunchdirectory目录的,即要把数据文件放到bin目录下!或者绝对路径

各元素执行顺序:

  • Configurationelements
  • Pre-Processors
  • Timers
  • Sampler
  • Post-Processors(unlessSampleResultisnull)
  • Assertions(unlessSampleResultisnull)
  • Listeners(unlessSampleResultisnull)

JMeter调试:

添加DebugSampler或者DebugPostProcessor后,在执行结果ViewResultsTree中可以在相应的Response标签中看到JMeterProperties,JMeterVariables,SystemProperties,SamplerProperties(DebugPostProcessor)的值!

DebugPostProcessor:给Sample建立一个子Sample以监听SamplerProperties以及其他的值!

JMeterCookie值的抓取:

参考页面:JMeter正则表达式提取器

JMeter脚本录制:

1,它提供了一个利用本地ProxyServer(代理服务器)来录制生成测试脚本的功能,不太好用

2,使用Badboy录制并导出JMeter脚本

参考:《JMeter从入门到精通》之一——开始你的第一个JMeter脚本

ResponseAssertion:

匹配规则Contains,Matches:Perl5-style正则表达式;Equals,Substring:大小写敏感的文本匹配

(?i)-大小写不区分;(?s)-多行模式,i.e."."matchesnew-line;(?is)-上面2种模式

jmeter结果保持、JTL文件读取:

JMeterPluginsCMDCommandLineTool

Jmeter:howtocreatesummaryreportfromJTLfile?

相关推荐

新路 / 0评论 2020-06-08