1、如何定义和使用变量?
1)LR: 目前类C语法,以后可以使用Java
<1> C的变量:在代码中直接定义 (最开头)
  int age = 23;     char name[] = "Tom";
  double salary = 6000.5;
  使用时直接写变量名即可  age   name  salary
<2> LR的变量:
  a. 参数化  参数池中配置 username   password
  b. 关联    在函数中声明变量名
      web_reg_save_param("uid", "LB=", "RB=", LAST);
  使用时 {变量名}    比如{username}  {uid} ...

2)JMeter:
 在测试计划中通过不同方式定义:
   全局变量、参数化变量、关联时设置
   username   password   pid
 使用时 ${变量名}  比如${username}   ${uid}

2、如何做关联?  比如Session Id、航班号等
1)LR:
<1> 录制成功,但回放失败,怀疑存在动态数据;
<2> 通过录制两份脚本,对比发现动态数据; WDiff工具
<3> 找到相应请求:引起第一次出现动态数据响应的请求
              (录制时生成的日志)
 拿静态数据到Generation Log第一行开始搜索,找到第一次出现该数据的响应,根据响应id找到对应的请求(先向下,再向上),根据请求的快照名确定脚本的相应请求。
<4> 相应请求之前写关联函数:
    web_reg_save_param("uid",    //参数名  LR变量
                  "LB=左边界", "RB=右边界", LAST);
<5> 将脚本中静态数据都替换成参数 {uid}

2)JMeter:
<1> 录制成功,但回放失败,怀疑存在动态数据;
<2> 通过录制两份脚本,对比发现动态数据; --需要关联
      AptDiff_1.6.zip 文本比较工具
<3> 找到相应请求:引起第一次出现动态数据响应的请求
借助于监听器:查看结果树   分析请求和响应包的关系
                (回放时的效果--值每次都在变)
  使用取样器请求中的参数名,去查看结果树的响应文本中查找,使用Text视图,找到第一次出现响应的请求。
  顺便拷贝含有左右边界的文本:
name=userSession value=121290.810773593zcDiiQzpAHQVzzzHDHtDDpDHztHf>
name=userSession value=XXX>
<4> 在相应请求节点下,增加节点:后置处理器
右击相应请求 -> 添加 后置处理器 -> 正则表达式提取器
    正则表达式:规则表达式,通过特殊字符串表达某些规则
                用于文本的查找、替换等操作。 
1) 要检查的响应字段:主体
2) 引用名称:uid    参数/变量的名称
3) 正则表达式:name=userSession value=(.*)>
   (.*)    .表示任意字符   *表示任意多次
   根据左右边界匹配中间任意文本,赋值给uid   动态数据
4) 模板:$1$    要匹配到几个相关的值
5) 匹配数字:1   获取值中的第1项
<5> 将请求取样器中的静态数据都替换成参数 ${uid}

3、参数化数据文件格式?
1)LR:  user.dat
username,password
jojo,bean
qq,123
|

2)JMeter: user.dat
jojo,bean
qq,123
|

4、如何进行参数化?
1)LR: 类型 + 数据 + 策略
<1> 类型:File、Unique Number、Date/Time、Random Number、Vuser Id...
<2> 数据:dat文件、规则产生
<3> 策略:
 SE组合:顺序 + 每次迭代
 UEA组合:唯一 + 每次迭代 + 放弃VU   
      版本1:File类型
      版本2:Unique Number类型
 RE组合:随机 + 每次迭代

2)JMeter:
常用配置元件:CSV Data Set Config  默认使用文件取数据
需求:对buy1脚本的登录进行参数化
数据文件:user.txt
jojo,bean
qq,123
|
配置:
 file name文件路径:  D:\JMeter\user.txt
 文件字符集:默认不支持中文  需要可以写utf-8等
 变量名:username,password    使用英文逗号分隔
           对应文件的两列,也作为参数名
将取样器请求的参数替换成变量:
    ${username}    ${password}

5、如何添加检查点? 确保自动化测试结果正确
1)LR:
<1> 边录制边添加:Insert text check
  优点:方便、直观    确定:有可能添加的位置不对
  默认函数:web_reg_find("Text=源代码文本", LAST);
         reg字样 注册性函数 放在相应请求之前
<2> 录制后添加:
 1) 找到相应请求
  使用Tree视图,使用HTML视图查看请求和响应页面的对应关系。
 2) 右击检查的文本 -> 添加检查点函数

2)JMeter:     需求:登录成功进行检查
<1> 找到相应请求:
 使用监听器:查看结果树   HTML视图
    找到请求和响应页面的对应关系
 建议:恢复到1VU运行,请求的节点才有顺序。
找到请求和检查的文本:
  页面文本:Welcome, jojo, to                  HTML视图
  页面源代码:Welcome, <b>jojo</b>, to      Text视图
<2> 针对相应请求添加子节点:断言 -> 响应断言
 要测试的响应字段:响应文本
 模式匹配规则:包括
 要测试的模式: 就是要检查的文本
   页面源代码:Welcome, <b>jojo</b>, to
   也要参数化:Welcome, <b>${username}</b>, to
<3> 在测试计划下,添加监听器 -> 断言结果

响应断言 : Test failed: text expected to contain /Welcome, jojo, to/
原因:检查的是页面源代码文本!

6、如何表示等待时间?  
目的:自动化测试中模拟用户的步骤间隔,更真实,控制压力
1)QTP: wait(秒数);
2)LR: lr_think_time(秒数); 
        Run-time Settings中设置策略 
3)Java: Thread.sleep(毫秒数);
4)Linux shell: sleep 秒数
5)monkeyrunner:  MonkeyRunner.sleep(秒数)
6)JMeter: 定时器
  加在哪个节点下,就表示该请求之前等多久
  加在公共区域,共享效果,所有请求都要等待
  多个定时器,时间上是累加的效应
<1> 固定定时器:固定等待多少时间   毫秒
<2> 高斯随机定时器:在某范围内,以更高的概率等待
 高斯定理(正态分布):随大流

7、如何进行并发测试? (重要面试题)
1)LR:
<1> Action脚本中添加事务:
 a) 平均事务响应时间  b) TPS 每秒事务数
 c) 并发的起点
  lr_start_transaction("事务名");
  ...
  lr_end_transaction("事务名", LR_AUTO);
<2> 事务开始之前添加集合点(并发点): (同步机制)
  lr_rendezvous("集合点名");              (等待、延迟)
<3> 场景中设置并发策略(集合点策略):
 比如:当所有VU的n%到达集合点时一起释放 (并发压力)
<4> 当负载不够时,考虑提高负载机的配置或使用联机测试;
<5> 服务器如果采用集群、负载均衡模块,需要使用IP欺骗技术让负载均衡模块生效。-- 更真实模拟客户端多用户效果,他们的IP一般不一样。

2)JMeter:
<1> 找到并发的起点:某个请求(取样器)
<2> 针对该请求添加定时器:
         同步定时器  Synchronizing Timer
 Java中同步关键字:synchronized  解决多线程安全问题
   同步:A任务完成后,B才能开始   需要等待
   异步:一边执行A,一边执行B     无需等待
 集合点:等待所有VU到达时再一起释放 (同步机制、等待)

jmeter与lr区别相关推荐

  1. postman支持socket吗_你必须知道postman和Jmeter做接口测试区别

    1.  用例组织方式 Jmeter的组织方式相对比较扁平,它首先没有WorkSpace的概念,直接是TestPlan,TestPlan下创建的Threads Group就相当于TestCase,并没有 ...

  2. 谈谈功能测试、性能测试、自动化测试区别

    1.功能测试 根据产品特性.操作描述和用户方案,测试一个产品的特性和可操作行为以确定它们满足设计需求. 功能测试又称为黑盒测试,是把测试对象看作一个黑盒子.利用黑盒测试法进行动态测试时,需要测试软件产 ...

  3. 什么是Jmeter以及怎么下载和配置

    什么是Jmeter? Apache JMeter是Apache组织开发的基于Java的压力测试工具. 适用的测试领域: (1)可以对软件进行压力测试 (2)可以对应用程序做功能/回归测试,通过创建带有 ...

  4. Jmeter学习笔记一:Jmeter安装以及环境变量配置

    什么是Jmeter Apache JMeter是Apache组织开发的基于Java的压力测试工具. 适用的测试领域: 用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域.它 ...

  5. Jmeter(一)jmeter介绍和安装

    由于很多大公司面试的时候都要求掌握jmeter,所以我建议大家都掌握该软件,而且该软件学习起来很简单. 参考:http://www.cnblogs.com/TankXiao/p/4045439.htm ...

  6. [机器学习] LR与SVM的异同

    1 为什么将LR和SVM放在一起来进行比较? 回答这个问题其实就是回答LR和SVM有什么相同点. 第一,LR和SVM都是分类算法. 看到这里很多人就不会认同了,因为在很大一部分人眼里,LR是回归算法. ...

  7. 【转】Jmeter + DadBoby 安装使用

    一直接触LR比较多,这阵子突然想了解一下开源的性能测试工具,无意中接触到了Jmeter+Badboy,这两款工具对于想进行性能测试,但又对LR高额的商业费用望而止步的小公司可谓是再适合不过了. 自已小 ...

  8. jmeter java性能_jmeter之自定义java请求性能测试

    写在前面 最近个人情绪不稳定.心情很不美丽,特别懒,没有博客和技术文章更新,这个文章也是迟到了一周多的时间,啰嗦完了,开始正题吧. 我们在实际做性能测试的时候,一般会采用jmeter.Lr进行测试,但 ...

  9. jmeter报告分析工具

    一直以来做性能测试都是用jmeter和LR,当然还有一些自己写测试脚本,LR不用说,分析结果那个组件杠杠的!但是jmeter毕竟是开源的,所以分析查看结果不像LR那样自带图形神马的,虽然可以自己写脚本 ...

最新文章

  1. AndroidCamera开发学习笔记01
  2. Rotation Rose各部分的名称
  3. python 取一个字前的文本的_python删除某一行字符前面的内容
  4. 简述 maven 命令 package、install、deploy 的区别
  5. Solr4.3整合到Tomcat中并添加MMSeg4j中文分词器
  6. matlabif语句怎么用_腾讯面试:一条SQL语句执行得很慢的原因有哪些?
  7. 如何查看局域网络计算机资料,怎么查看局域网内所有电脑的信息
  8. C语言----输入人数和姓名,输出最长姓名
  9. 语音识别:声学的要素和特征
  10. Playrix《梦想小镇》为何能成为10亿美元独角兽?
  11. Python统计文件夹里文件个数及每一个文件的行数
  12. oracle 12c id 自增,Oracle 12c Identity Columns 新特性 和 序列 构成自增列
  13. opencv图像处理学习
  14. C语言单元测试之安装gtest教程及一个简单样例
  15. Ps使用旋转扭曲制作图片
  16. 闪客快打介绍(摘自百度)
  17. 如何突破领英每周邀请上限限制的方法技巧,提高我们的领英人脉
  18. STM32开发 -- W25Q32JV SPI FlASH详解
  19. 最大化参数 火车头_火车头采集(LocoySpider)设置技巧
  20. 数字赋能 共创未来憨猴科技“共域时代”年度大会成功举办

热门文章

  1. 海康威视监控摄像头大华摄像头webrtc监控低时延无插件直播页面播放毫无延迟
  2. caffe的安装配置(CUDA7.5+VS2013)
  3. 考研大作文模板与实战(图表为主+部分图画新题型)
  4. 富勒烯|Fullerene C60 富勒石 CAS:131159-39-2 |瑞禧
  5. LeetCode739. Daily Temperatures
  6. linux fontconfig字体报错问题
  7. 开发一款出境旅游类APP需要包含哪些功能?
  8. intellij idea快速切换大小写
  9. 带大家读python数据分析一书(三)
  10. PC - 电脑应该多久清洁一次?