jmeter与lr区别

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到达时再一起释放 (同步机制、等待)


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

py编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值