zoukankan      html  css  js  c++  java
  • jmeter浅使用

    jmeter工具属于线程模式,loadrunner11属于进程模式,jmeter是用Java语言编写的。开源、

    jmeter各个文件夹简介:

      backups目录:脚本备份,jmeter会自动将一些jmx脚本文件备份保存在这里

      bin目录:主要放置jmeter配置文件、系统文件

      docs目录:放置接口文档

      extras目录:放置jmeter的扩展插件,

      lib目录:主要放置jmeter自带的jar包,以及第三方插件

      licenses目录:放置jmeter证书

      printable_docs目录:放置jmeter说明文档

    jmeter与loadrunner最大的区别:jmeter不支持ip欺骗,而LP支持

    jmeter主要组件:

      测试计划是jmeter进行测试的起点,是测试元件的容器

      线程组代表一定数量的并发用户,用来模拟并发用户发送的请求

      取样器(sampler)定义实际的请求内容,被线程组包含,常用的有:HTTP请求,jdbcRequest,DEbug Sampler

      监听器:查看结果树、聚合报告、表格察看结果、图形查看结果

      逻辑控制器:

      断言:

      配置元件:

      前置处理器:

      定时器:

    常用组件介绍:

      1·测试计划:测试计划是jmeter进行测试的起点,名称可以为要测试的计划取一个名字;注释:对测试项目的注释;用户定义的变量可以把反复填写的重复参数进行变量;

    [变量名=url]  在用到此变量的时候直接用 ${变量名}引用即可。

      2·线程组:线程数--设置发送请求的用户数目;Ramp-Up Period(in second)--线程间的时间间隔,单位是秒,也就是说在一定时间内启动线程;循环次数--请求线程运行重复的次数,可输入数字指定循环次数,也可永远循环

      

     3·取样器(sampler):是与服务器进行交互的单元,一个取样器通常进行三部分工作;向服务器发送请求,记录服务器的响应数据和记录响应时间信息

      HTTP请求:协议、ip、端口号、请求方法、路径、Parameters(以表格的形式填写参数),Body Data(以json形式填写数据)

      Debug Sampler:调试脚本,会把我们自定义大的变量输出在Response data 中,方便我们调试使用;正式执行脚本时,需要删除Debug Sampler

      JDBC Request :可以想数据库发送一个请求(sql语句),需要 JDBC connection configuration (JDBC链接配置)配置元件一起使用

    4·参数化:

      用户参数:前置处理器中 添加 用户参数

      函数助手:${__Random(,,)}

      Csv配置文件:配置元件中添加,使用前要准备好参数化的所有参数值,

      用户自定义变量:用户定义的变量可以把反复填写的重复参数进行变量,[变量名=url]  在用到此变量的时候直接用 ${变量名}引用即可。

    5·监听器:负责收集结果,聚合报告、察看结果树、用表格察看结果、图形察看器

    6·断言:用来判断请求响应结果是否符合用户所期望的

      1·测试字段常用的有响应文本(对响应结果进行断言)、响应头(对响应头文件进行断言)

      2·模式匹配规则常用有包括(响应结果包括断言的内容),相等(响应结果和断言结果相同)

    7·逻辑控制器:

    (场景如下:登录一个网站,反复进行充值,要求,在压测时,登录接口压测一次,充值接口压测数次;)

      1·仅一次控制器:

        该控制器下的子节点对每个线程只执行一次;在仅一次控制器下添加登录接口,

      2·循环控制器:可以实现循环调用指定次数的逻辑操作

        在循环控制器下添加充值请求,并设置循环次数;到此即实现了登录一次,却循环了多次充值接口的目的。

      3·简单控制器:用来指定一个执行单元,它可不改变元件执行顺序,他下面还可以嵌套其他控制器

     

    8·前置处理器和后置处理器:

      前置处理器:取样器发起请求前做的工作,常用的参数化

      后置处理器:响应后做的工作,常用的正则提取器,提取响应报文中的内容(coolie、token)

      动态数据关联:

      在HTTP请求的参数中经常会遇到一些参数的值是服务器响应的动态数据,这些数据需要进行关联才能使的每一次请求都能成功,可以采用正则表达式提取器来获取这些动态的数         据。

      正则表达提取器:

        引用名称:在HTTP等请求中,引用此数据,需要用到的名称  如果填写user_id,后面的引用方式  ${user_id}

        正则表达式:用于将需要的数据提取出来  【例子:user_id:"(.+?)"】【. 表示匹配任意字符串;+ 表示一次或多次;?表示找到一个后停止匹配】

        模板:表示使用提取到的第几个值:$1$:表示取第1个 $2$:表示取第二个 以此类推:$n$:表示取第n个   【$2$】

        匹配数字:0代表随机取值;1代表全部取值      【1】

        缺省值:如果正则表达式没有找到值,则使用此缺省值

    9·定时器

      定时器是在每个Sampler(采集器)之前执行的,而不是之后,当执行一个sampler之前时,所有当前作用域内的定时器都会被执行。如果希望定时器仅应用与其中一个sampler,

    则把定时器作为子节点加入。

      1·固定定时器:

        可以让每个线程在请求之前按相同的指定时间停顿,固定定时器的延时不会计入单个sampler的响应时间,但会计入事务控制器的时间。

      2·同步定时器(Synchronizing Timer):

        起作用是:阻塞线程,直到指定的线程数量到达后,再一起释放,可以瞬间产生很大的压力。

        (1)Number of Simulated Users to Group by:模拟用户的数量,即指定同时释放的线程数数量
        (2)Timeout in milliseconds:超时时间,即超时多少毫秒后同时释放指定的线程数

      为什么设置超时时间

      1·在实际运行过程中,可能出现始终无法达到集合点设置的并发要求,如果出现这种情况的话jmeter会一直卡在那里,等待满足要求,才会继续往下执行;

      2·为了避免上述情况的发生,需要设置一下集合点的超时时间

      设置规则:因为集合点超时时间的单位为ms,计算公式:超时时间 > 请求集合数量 * 1000 / (线程数 / 线程加载时间)

      集合点的概念:

      简单理解就是:设置一个阈值(请求数量),当请求数达到这个阈值时,允许请求同时发出。

     

  • 相关阅读:
    Oracle EBS Form调用JavaBean前期配置
    Oracle EBS Form Builder使用Java beans创建窗体
    将 Oracle Forms 集成到 Oracle ADF Faces 中
    Oracle EBS开发习惯
    支持MOAC功能的Form开发步骤
    Form的Trigger的优先级
    所有标准API
    EBS中Java并发程序笔记(1)
    ORACLE FORM中,如何使用警告?
    .Net Core3.0 WebApi 六: Sqlsugar+异步泛型仓储
  • 原文地址:https://www.cnblogs.com/sanya/p/12720544.html
Copyright © 2011-2022 走看看