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

Jmeter常见用法的更多相关文章

  1. Linux中find常见用法

    Linux中find常见用法示例 ·find   path   -option   [   -print ]   [ -exec   -ok   command ]   {} \; find命令的参数 ...

  2. php中的curl使用入门教程和常见用法实例

    摘要: [目录] php中的curl使用入门教程和常见用法实例 一.curl的优势 二.curl的简单使用步骤 三.错误处理 四.获取curl请求的具体信息 五.使用curl发送post请求 六.文件 ...

  3. Guava中Predicate的常见用法

    Guava中Predicate的常见用法 1.  Predicate基本用法 guava提供了许多利用Functions和Predicates来操作Collections的工具,一般在 Iterabl ...

  4. find常见用法

    Linux中find常见用法示例 ·find   path   -option   [   -print ]   [ -exec   -ok   command ]   {} \; find命令的参数 ...

  5. iOS 开发多线程篇—GCD的常见用法

    iOS开发多线程篇—GCD的常见用法 一.延迟执行 1.介绍 iOS常见的延时执行有2种方式 (1)调用NSObject的方法 [self performSelector:@selector(run) ...

  6. iOS开发多线程篇—GCD的常见用法

    iOS开发多线程篇—GCD的常见用法 一.延迟执行 1.介绍 iOS常见的延时执行有2种方式 (1)调用NSObject的方法 [self performSelector:@selector(run) ...

  7. [转]EasyUI——常见用法总结

    原文链接: EasyUI——常见用法总结 1. 使用 data-options 来初始化属性. data-options是jQuery Easyui 最近两个版本才加上的一个特殊属性.通过这个属性,我 ...

  8. NSString常见用法总结

    //====================NSStirng 的常见用法==================== -(void)testString { //创建格式化字符串:占位符(由一个%加一个字 ...

  9. [转]Linux中find常见用法示例

    Linux中find常见用法示例[转]·find   path   -option   [   -print ]   [ -exec   -ok   command ]   {} \;find命令的参 ...

随机推荐

  1. Linux一些基本命令一(学习笔记三)

    菜鸟记录. 一.更改主机名 hostname 新的主机名 hostname ln0491 将主机名更改为ln0491 登出再登陆,就变为新的主机名 二.新建文件夹和删除 如:在当前路径新建data文件 ...

  2. 触发器三(行级DML触发器)(学习笔记)

    行级DML触发器 每当一条记录出现更新操作时进行触发操作定义时要定义FOR EACH ROW 使用":old.字段"和":new.字段"标识符 No. 触发语句 ...

  3. YUM常用命令详解

    yum是一个用于管理rpm包的后台程序,用python写成,可以非常方便的解决rpm的依赖关系.在建立好yum服务器后,yum客户端可以通过 http.ftp方式获得软件包,并使用方便的命令直接管理. ...

  4. 检测和删除多余无用的css

    本文主要讲解如何检测页面中多余无用的css. 1.chrome浏览器 F12审查元素的Audits 说明:使用Audits,会检测出页面中没有用到的css,需要手动删除多余的css:同时需要说明的是检 ...

  5. 前端框架(二)DIV多选复选框框的封装和MySql数据库存取

    图能够包括的寓意和含义是文字不能比拟的,先有一个效果图你也就知道这篇文章的主要内容是关于什么问题的.省去了一大堆文字的累述.看以下这张图: watermark/2/text/aHR0cDovL2Jsb ...

  6. 在js里双引号里又加单引号的解决方案常用WdatePicker

    EndTime: '<input name="EndTime" type="text" class="editable center decim ...

  7. 如何提高SELECT的效率

      首先避免使用in ,not in,<>,<,<=,>,>=,is null,is not null 主要搜索字段建立索引 .WHERE子句中的连接顺序 sql解 ...

  8. C#:设置焦点在最小的TabIndex控件上

    private void FocusFirstTabIndex(Control container) { // init search result varialble Control searchR ...

  9. nginx 配置web 虚拟文件夹 而且codeIgniter,thinkphp 重定向url 地址

    nginx 配置虚拟文件夹而且url 重定向 server { #侦听80port listen 8090; #定义使用www.xx.com訪问 server_name 127.0.0.1; #设定本 ...

  10. php新特性:trait 关键字使用

    1.trait关键字:含义[特性] 1.1 和require include 区别: 后两者需要 实例化一个类或者静态调用,而trait相当于继承,但又不是extends关键字,它解决了单继承. 2. ...