JMeter测试工具的使用

Posted zxq1

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JMeter测试工具的使用相关的知识,希望对你有一定的参考价值。

一:JMeter介绍:

      Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。

二:元件的作用域与执行顺序:

     1:元件的作用域: JMeter中共有8类可被执行的元件(测试计划与线程组不属于元件),这些元件中,取样器是典型的不与其它元件发生交互作用的元件,逻辑控制器只对其子节点的取样器有效,而其它元件(config elements 、timers 、post-processors、                                                    assertions、listeners、)需要与取样器(sampler)等元件交互。

          配置元件(config elements  :元件会影响其作用范围内的所有元件。

          前置处理程序(Per-processors):元件在其作用范围内的每一个sampler元件之前执行。

          定时器(timers ):元件对其作用范围内的每一个sampler 有效

          后置处理程序(Post-processors):元件在其作用范围内的每一个sampler元件之后执行。

          断言(Assertions):元件对其作用范围内的每一个sampler 元件执行后的结果执行校验。

         监听器(Listeners):元件收集其作用范围的每一个sampler元件的信息并呈现。

         在jmeter中,元件的作用域是靠测试计划的的树型结构中元件的父子关系来确定的,作用域的原则是:

  •  取样器(sampler)元件不和其它元件相互作用,因此不存在作用域的问题。
  •  逻辑控制器(Logic Controller)元件只对其子节点中的取样器 和 逻辑控制器作用。
  •  除取样器 和逻辑控制器 元件外,其他6类元件,如果是某个sampler的子节点,则该元件公对其父子节点起作用。
  •  除取样器和逻辑控制器元件外的其他6类元件,如果其父节点不是sampler ,则其作用域是该元件父节点下的其他所有后代节点(包括子节点,子节点的子节点等)。

     2.元件的执行顺序

           了解了元件有作用域之后,来看看元件的执行顺序,元件执行顺序的规则很简单,在同一作用域名范围内,测试计划中的元件按照如下顺序执行。

       (1)配置元件(config elements )

       (2)前置处理程序(Per-processors)

      (3)定时器(timers )

      (4)取样器(Sampler)

      (5)后置处理程序(Post-processors) (除非Sampler 得到的返回结果为空)。

      (6)断言(Assertions)(除非Sampler 得到的返回结果为空)。

      (7)监听器(Listeners)(除非Sampler 得到的返回结果为空)。

       关于执行顺序,有三点需要注意:

            *  前置处理器、后置处理器和断言等元件只能对 取样器作用,因此,如果在它们的作用域内没有任何取样器,则不会被执行。

            *  如果在同一作用域范围内有多个同一类型的元件,则这些元件按照它们在测试计划中的上下顺序一次执行。

            *  一个断言在测试树中是分等级的。如果它的父元件是请求,它就被应用于那个请求。如果它的父元件是控制器,它就影响所有那个控制器下的所有请求。

三:具体使用

技术分享图片

 

 技术分享图片

若参数是json格式,一定要加HTTP信息头管理器 Content-Type    "application/json"

技术分享图片

如果参数非常长,选择post请求

技术分享图片

若参数需要处理后重新作为参数(当前请求)========前置处理器---BeanShell  PreProcessor

 技术分享图片

若是想让上一个请求的返回直接作为下一个请求的参数=====  若需要上一个请求的多个返回值,就设置多个正则表达式提取器

技术分享图片下一个请求的参数设置中,取值

 

技术分享图片

 

 技术分享图片

若是想让上一个请求的返回直处理过后再接作为下一个请求的参数=====再上面的基础上加上后置处理器-----BeanShellPostProcessor

技术分享图片

脚本里面:String jsonContent=prev.getResponseDataAsString();  //获取当前请求的返回值  ,不需要其他的jar包

技术分享图片给下一个请求赋值。

技术分享图片下一个请求取值

 

 在BeanShellPostProcessor写脚本的注意点:

 1:当是自己写的java类,类里面需要的jar包和导出的java类的jar包都要放在:D:apache-jmeter-3.3libext文件夹下面 ,并点击测试计划,导入包。

 2:运行脚本在没有语法出错的情况下报错,多半是引包的问题

以上是关于JMeter测试工具的使用的主要内容,如果未能解决你的问题,请参考以下文章

jmeter工具使用+测试

jmeter压力测试工具使用

Jmeter性能测试工具的使用(Web性能测试)

使用 JMeter 测试工具

JMeter测试工具的使用

自动化测试工具JMeter学习1 安装与基本使用