zoukankan      html  css  js  c++  java
  • Jmeter常见用法

    Jmeter (底层语言是Java)  单进程

    Loadrunner (底层语言是C) 多进程 性能更好,更稳定

    Tomcat  线程模式(与Java有关的都是单进程)

    lr的支持最大并发  跟license的允许数量一致

     如果是6.5w license  那单机理论上就是能支持6.5w并发 但是  你单机硬件支持不了   是硬件问题

    并发用户数与进程数无关  取决于线程数

    lr的  50并发为一个进程  那前提条件是    用线程模式  
    那50线程为一进程  是默认值  可以调整

    Jmeter  一个并发就是一个线程

    Jmeter 录制方法:1、代理录制;2、badboy 工具录制

    Jmeter lib 目录 放置依赖的jar 包 (以后工作中jar 放到该文件夹下)

    保存Jmeter 脚本需选中测试计划进行保存,否则保存内容不全

    Jmeter 有严格的 作用域,注意层级关系

    线程组比http 请求多了逻辑控制器

    作用域的关系,执行顺序

    执行顺序:先看作用域

    线程组

          配置元件

          逻辑控制器

                     前置处理器

                                定时器

                                       取样器

                                               后置处理器

                                               断言             

                                               监听器

    循环套循环  

    从最里面的循环往外执行

    思考:取样器后面的步骤执行完毕后如果前置处理器或定时器还有未执行的,是执行前置处理器、定时器还是Break 跳到配置元件?

    答案:Break 跳到配置元件

    后置处理器、断言、监听器 属于一个层级的东西,不会嵌套循环,执行完后不会回到取样器 而是break跳到配置元件

     

    取样器前后的东西都是作用于取样器;
    从线程组往下层层执行,可以有多个同级,到监听器后跳出到配置元件;
    后置处理器、断言和监听器可以理解为同级别,都作用于取样器

     

    实践经验:用作用域控制执行顺序

     

     

     

     

     

     

     

     

    参数化:

    Csv data set config:  sharing mode - all thread  – -- 唯一取值方式

    所有线程;唯一+每次迭代,每次迭代的时候才会变值,循环控制器不改变值的

              所有线程之间共享,只打开一次文件


    当前线程;顺序+每次迭代,线程(vu)与线程间是一样的,只有迭代的时候才会变化值。线程组1 用户1取1 ,用户2取1,迭代用户1取2,用户2取2

    (迭代的时候不同用户之间拿到的数据是一样的)

             每个线程,文件分别打开一次(第一行读取)

    当前线程组 : 顺序+唯一,线程(vu)与线程之间是顺序,线程组间内是唯一。线程组1跟线程组2的取值数据来源一样,线程组1取1,线程组2也是取1;线程内是唯一 。用户1取1,用户2取2,迭代用户1取3,用户2取4

    (唯一的时候不同用户之间拿到的数据是互斥的)(组外没有关系,当只有一个线程组时取值方式同“所有线程”)

             同一个线程组,只打开一次文件

    关联:

    Jmeter中的关联是后置操作

     

     

    A+  a重复一个或多个,优先取多(没有空)+ 作用于前面的字符串

    A?  a重复零次或一次,? 作用于前面的字符串

    A*  a重复零次或更多次,优先取多,* 作用于前面的字符串

     

    “ . ” 取换行符以外的一个字符

    “*” 取换行符以外的任意多个字符或0个字符,优先取多

    “.*” 取换行符以外的任意一个或多个字符,优先取多

    “.+”  同“.*”,但会剔除空字符串,优先取多

    “.?”  0个或1个

    “div.*div” 取换行符以外的任意一个或多个字符串,左边包含div

     

    “div(.*)div” 取换行符以外的任意多个字符串,左右两边包含div .会有两个结果,一个包含左右边界,一个刨掉了左右边界

    $1$  取刨掉左右边界以外的字符

     

     

     关联:建议用 .+ 或者 .* ,然后加上括号、左右边界;

    Sampler – debug sampler 可查看jmeter 中所有的参数化、关联值

    拓展:匹配18位身份证号 ^(d{6})(d{4})(d{2})(d{2})(d{3})([0-9]|X)$

    参考网址:http://tool.oschina.net/regex/#

    检查点:

    响应断言

     

     

    调试脚本时,响应断言查看结果树去看

    跑脚本时 添加监听器-断言结果 去看

    Think time :

    固定定时器  、高斯随机定时器 。。。。。。

    集合点:

    定时器-Synchronizing timer

     

    事务:

     

    Logic controller - Transaction controller

    仅一次控制器:once only controller 类比lr 中init end

     

  • 相关阅读:
    用eclipse创建maven项目
    Maven学习 (一) 搭建Maven环境
    linux下top命令查看cpu占用情况
    Jmeter以non-gui模式进行分布式测试
    如何使用JMeter来实现更大批量的并发的解决方案(即如何设置controller和Agent)
    Linux zip解压/压缩并指定目录
    理解 JMeter 聚合报告(Aggregate Report)
    WebSocket 是什么原理?为什么可以实现持久连接
    JMeter监控服务器CPU, 内存,网络数据
    WebSocket API简介
  • 原文地址:https://www.cnblogs.com/chendai21/p/9358564.html
Copyright © 2011-2022 走看看