美文网首页性能测试
LR执行过程--1.脚本录制

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

作者: 草中人 | 来源:发表于2019-08-21 14:42 被阅读0次

    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(退出一次)

    开始录制前选择 options设置 自动页面标题设置

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

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

    录制完后一些设置

    录制完脚本一些设置 字体设置 回放的设置

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

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

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

    <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.参数化:业务数据多变、更真实,满足业务需求。当数据不能重复使用时,必须要参数化。

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

    参数化关键点

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

    参数化

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

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

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

    web_reg_save_param("参数名",

             "LB=左边界",

              "RB=右边界",

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

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

               LAST);

    关联或参数化后此日志可查看

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

    脚本关联技术:

    如何找到动态数据?

    方法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结束运行。

    UEA版本 UEA说明 Abort Vuser配置

    相关文章

      网友评论

        本文标题:LR执行过程--1.脚本录制

        本文链接:https://www.haomeiwen.com/subject/tqyhsctx.html