LR执行过程--1.脚本录制

reg字样:注册性函数,要写在相应请求之前

执行测试计划

1.Vugen

1)梳理业务需求:流程-用例中体现

2)合适的协议:B/S常用web[Http/Html]协议

3)常用设置

    <1> IE浏览器:工具---- Internet选项

            常规-->设置    每次访问此页时检查

            程序 --> 重置web设置

            高级 --> 去除 启用第三方浏览器扩展(需要重启动)

    <2>关闭一些冲突的服务

    <3> 使用脚本视图,设置界面字体、回放后自动弹出测试结果

     <4>录制选项

        录制方式--默认采用基于HTML方式--脚本简约

            必要时采用基于URL方式,如采用HTTPS协议(优点:录制脚本比较全面、完整)

    设置自动页面标题检查点,目的辅助检查

        设置录制使用的字符集:UTF-8或其他

    <5> 采用架构:B/S 或C/S

    <6> 采用协议:web[HTTP/HTML]

    <7>指定浏览器

    <8>URl地址

    <9>录制位置:

vuser_init(登录一次) action(核心事务) 录vuser_end(退出一次)


LR执行过程--1.脚本录制_第1张图片
开始录制前选择


LR执行过程--1.脚本录制_第2张图片
options设置


LR执行过程--1.脚本录制_第3张图片
自动页面标题设置

设置自动页面检查点,辅助检查,建议开发方在设计网页时,不同页面的标题不一样,便于后续自动检查所在页面是否正确 (测试驱动:以便于测试为出发进行开发设计)

操作完成后录制开始,在与后台交互前设置开始事务,事务设置完成后设置检查点,结束事务,退出即可,编译回放验证过程是否正确。

录制完后一些设置

LR执行过程--1.脚本录制_第4张图片
录制完脚本一些设置
LR执行过程--1.脚本录制_第5张图片
字体设置
LR执行过程--1.脚本录制_第6张图片
回放的设置

录制完脚本后,改一下思考时间lr_think_time(xx),节省回放和测试的时间,提高效率,并将其移动至事务之前。以保证事务时间的纯粹性,避免统计到事务时间内,又能够模拟请求之间的间隔,让业务更真实。

<10> 设置Run-time Settings 模拟1VU回放

            模拟运行轨、频率,发现脚本本身的问题

LR执行过程--1.脚本录制_第7张图片

<11> 增强脚本 

        A. 事务:平均事务响应时间、TPS、并发的起点

           lr_start_transaction("事务名"); 

            请求,步骤的代码...

            lr_end_transaction("事务名",LR_AUTO)


    B. 检查点:自动为响应内容进行检查  文本为主

        reg函数  注册性函数   相应请求之前添加,因请求之后的响应结果文本需要检查

            web_reg_find("Text=页面HTML源代码",LAST);   #常用
                 ~参数:页面HTML源代码               
                ~位置:相应请求之前 

            web_image_check();图片检查点  

            ~参数 为图片路径名,缺点返回结果是否包含该图片

               位置:相应请求之后 ,符合常理 ,请求发送之后检查

            web_check(); 普通的文本检查点,效率低

    C.集合点:并发测试时使用,其他时候不用,Insert-rendezvous

     lr_rendezvous(“集合点名/事务名称”);       

    位置:Action脚本的事务开始之前 针对事务并发

    D.参数化:业务数据多变、更真实,满足业务需求。当数据不能重复使用时,必须要参数化。

参数化关键:类型+数据+策略

LR执行过程--1.脚本录制_第8张图片
参数化关键点

        操作:定位到某个参数化值,find所有,右击其中一个,选择replace with a Parameter,

LR执行过程--1.脚本录制_第9张图片
参数化

使用F3找到同样的值,右击-Use Existing Parameter-选择parameter name中设置的名字即可


LR执行过程--1.脚本录制_第10张图片
LR执行过程--1.脚本录制_第11张图片

  E.关联:获取到响应的数据,供后续请求携带参数使用,让脚本适应服务器端动态数据的变化。

            动态数据:服务器端生成的,有可能改变的数据;该数据在后续请求中需要携带,是需要关联的重要依据。

web_reg_save_param("参数名",

         "LB=左边界",

          "RB=右边界",

          "ORD=1",#默认匹配到满足左右边界的第一条数据,all匹配所有结果

                           #ORD=all 时 {参数化名}为数组,使用下标编号获取单元素

           LAST);


LR执行过程--1.脚本录制_第12张图片
关联或参数化后此日志可查看

脚本的参数化:数据由自己设计并准备

脚本关联技术:

如何找到动态数据?

方法1:通过录制两次脚本,观察脚本中不同的文本,借助于wdiff文本比较器,结合对业务数据的理解,排除其它不同数据,包括坐标点,思考时间秒数、检查点文本、段落差异...

方法2:凭借对业务流程、业务数据的理解,进行推理分析。

关联的操作步骤:

(1)发现问题:录制成功,回放失败,怀疑动态数据

(2)根据对比或分析,确定动态数据

(3)找到相应请求--导致第一次产生动态数据响应的请求

        根据静态数据到Generation Log【录制时日志】生成日志中第一行开始搜索,搜索到第一次出现的位置(一般都是响应包response),根据响应id号,找到与之对应的请求(先向下,不远处找到id号相同的请求--request、Event;如果没有再向上,找到最靠近的请求,往往id号不同),根据请求的快照名,找到脚本中对应的请求。

(4)在相应请求之前写关联函数  web_reg_save_param();

执行后在响应包中根据左右边界获取到动态数据文本,赋值给参数,供后续使用

(5) 将后续请求中的静态数据都替换成{参数名},代表了动态数据的值

            注:替换时复制粘贴即可,不可使用参数化的方式。               

▲▲注:录制后脚本,检查点函数位置 可能会出现误差,后续通过Tree视图进行检查纠正,检查点函数 reg注册性函数,相应请求2之前,{number_3}关联参数名只有在相应请求1发送之后才能取值

   F.流程控制:分支、循环,一般不刻意改变业务流程

if(web_find("xxx",LAST) == -1){

    lr_err_message("找不到!");

}else{

    lr_output_message("找到了!")

}

    E.函数调用 :复用已有的功能

    F.策略---UEA组合,应用场合:多用户使用不重复数据时使用,比如:注册时用户名、手机号、编号等 业务方面要求唯一 ,性能自动化考虑多VU,分别取值,通过分志方式确保数据的有效隔离;块大小要保证数据的充足使用,避免不足产生的VU结束运行。

LR执行过程--1.脚本录制_第13张图片
UEA版本
LR执行过程--1.脚本录制_第14张图片
UEA说明
LR执行过程--1.脚本录制_第15张图片
Abort Vuser配置

你可能感兴趣的:(LR执行过程--1.脚本录制)