原文来自BlazeMeter的How to Get Started With JMeter系列,总共三部分,本文为第二部分。本文适合初级使用者。本文关注的重点是:创建脚步、在Non-GUI模式下运行测试、日志和错误信息、调试、配置jmeter、参数化和相关性。步骤如下:

  一、How to build a script(略,主要介绍脚步录制,可参考博文jmeter之脚步录制

  二、How to run jmeter

      录制完脚步之后,建议在GUI模式下,设置单个或者低量的thread count,以及listeners,运行下,确认一切正常。确认无误后,在Non-Gui模式下,禁用listeners或者删除(listeners开着耗内存)。步骤如下:

      Option A: Running from a single machine

          在cmd下输入:jmeter -n -t /路径/test_script.jmx -l /路径/test_results.jtl  (这个便是non-GUI模式,test_script就是你之前录制的脚本)。tip:确认运行Non-GUI模式命令的时候,去除了listeners,要查看结果,可以通过listeners打开test_results.jtl。

     Option B: Running from distributed mode(略,后面添加)

   

    Logging and Error Messages

    jmeter的日志文件能够显示错误信息。点击Options > Log Viewer 在底部就能看到了。

   wKiom1hI4wXjd8mLAALzcCUp07I601.png    也可以在以jtl结尾的日志文件中查看。如果碰到错误,也可以在线程组中设置,在这里你可以选择继续测试,开始下一个线程循环,停止线程,停止测试,或现在停止测试。

    Debugging

     如果软件运行的时候无法工作,你就需要调试并修复他们,jmeter调试方式如下:

     Real Time Sampler/Expression Debugging

     1.在view result tree listeners中的RegExp Tester测试你的正则表达式

     2.有时候某些测试在RegExp Tester中运行良好,但是在实际测试中却无法运行,出现这种情况就是由于动态文本的问题(参照flash动态文本)。

  wKiom1hI9yjS5aJTAAI7aME1MGc931.png     上述情况,可以通过debug sampler轻松解决

    1.在view result tree listener前面添加debug sampler,然后运行测试

    2.运行完成后,打开view result tree listener,并且选择debug sampler

    wKioL1hI99Kzcc3jAAFpc6X53GY966.png  

  Debugging JMeter Elements

   可以对jmeter测试脚本中的所有元件运行debug log。步骤如下

    1.在jmeter.properties文件中取消对jmeter.loggerpanel.display = true的注释。 此更改将在每次JMeter启动时打开日志查看器。

    2.测试树中,选择你想要查看调试信息的元件。

    3.点击菜单栏中的帮助按钮-->点击enabled debug,然后运行测试,就可以看到了。

     wKiom1hI-c7y59G5AAG12ECgcuQ364.png    4.要取消选中元件的debug,通过点击帮助->disabled debug. 


   Configuring JMeter

     You can modify your JMeter properties at user.properties in the /bin directory.

     OR, you can create your own copy of jmeter.properties and then specify it in the command line.

    

  Parameterization(参数化)

   如果你的测试需要引入大量的外部数据,比如大量用户数据要引入对应线程,那强烈建议你使用参数化。方法如下:

    1.命令行参数或属性文件(例如,将测试主机下的应用程序设置为“jmeter -Jhost = www.example.com”,并在HTTP请求采样器中将其作为“$ {__ P(host,)}”访问 )。

    2.通过CSV Data Set Config元件中的CSVRead()函数保存的CSV文件。

    3.任意文件类型通过FileToString() or StringFromFile()函数。

    4.数据库通过JDBC测试元件


  Correlations(相关性)

   上述动态数据(以及更多)常常会在您的脚本中出现问题,即使您的应用程序运行正常。

   使用JMeter,您需要为您需要参数化的每个值采取三个步骤:

   1.确定值。 对于在JMeter记录中捕获的每个请求,请求参数都在文本框中清楚地显示,并且它们通常标记为“authenticity_token”,或者它们的值是一长串随机字符串如“33aKfmjPhNmzVBFfxKEx6cmB9C5sjSRAd9VJEaJpba8”。

   2.找出哪些请求发出了值。 例如:“authenticity_token”(认证令牌)可能在对登录请求的响应中发出。 然而,它并不总是紧接在前面的请求后立即发出该值。 在这种情况下,请查看JMeter的结果树以检查响应。

   wKioL1hI_5-zqSNqAAFGNqpd91U671.png    3.使用正则表达式提取器,匹配与预期的内容相符的模式。以上面的例子,这可能在文本中显示为:在这种情况下一个正则表达式将是<input name =“authenticity_token”type =“hidden”value =“(.+?”)/>。 括号告诉JMeter保留它们中找到的值,然后将该值放入您为提取器提供的Reference Name中,我们可以称之为“authenticity_token”。

     wKiom1hJAP7yWAmpAADIiaLw6Kc251.png

    4.The JMeter variable format would then be ${authenticity_token}, so you finally go and replace the original captured value wherever it appears in subsequent requests with the variable.

    wKiom1hJAcrA-qldAAFRREg9UCs722.png

  这篇文章不是很懂,以后做补充和修改。