zoukankan      html  css  js  c++  java
  • Loadrunner常用操作

      LoadRunner 参数化

    为什么需要参数化?

    大众理解:为了更加真实的模拟用户操作

    底层原理: 1,应用服务,数据库会校验该值的唯一性(unique key)

              2,为了避免数据库的查询缓存对性能测试结果的影响

      LoadRunner 关联

    一、为什么需要做关联?

    1,回放的时候业务没有成功

    2,服务器返回一个动态变化的值,并且下次请求时需要用到这个动态变化的值

    3,提交请求的时候,服务器会校验这些值的合法性;它们之间有依赖关系

    二、关联步骤:

    1,找到服务器返回的动态变化的值

    2,保存为一个参数

    3,替换

    三、哪些值需要做关联?

    1, 服务器返回的动态变化的值,然后提交的时候校验该值的合法性(跟数据不打交道)

    A,验证码(图片验证码、手机/短信验证码、邮箱验证码)

    图片验证码 关联不到里面的字符串(需要知道字符串从哪个jsp 里取出来的)

    手机/短信验证码、邮箱验证码  验证码都是加密以后的

    解决方法:1,让开发设置万能验证码;2,去掉验证码(一般不建议)

    B,Session ,token 

    C,时间戳

    D,看起来没有任何意义的特殊字符串,还出现在你的请求里并且还不是你自己输入的字符串  

    2, 跟数据库打交道的(增删改查)

    A.Insert  插入的值跟其他数据有关联关系-通过一系列ID 建立这种关系

    特征: 自增主键   Xxid   int 类型

    Insert into 帖子表 values (uid,title,msg,posttime,fid)

    Insert into 回帖表 values(tid,uid,msg,posttime,fid)

    B.Delete  补全where id 类条件

    Delete from table where xxid = ?? and xxid =?? And

                          In  (,,)

                          Not in (,,)

     between < >

    C. Update 补全where 后面的 id类条件

    Update table   set      where  同上

    D .  select  补全where 后面的 id 类条件

    select  字段 from 表 where 同上

    实操: 淘宝网注册-> 登录-> 绑定收件信息->修改昵称->删除一条收件地址->浏览商品->添加到购物车->支付->查看订单-> 取消订单-> 撤销申请-> 确认收货->评论-> 追加评论

    注册:参数化 手机号 (唯一性校验)关联:手机验证,session/token

    登录:参数化 手机号(唯一性校验)关联:session /token

    绑定收件信息:关联uid

    修改昵称: 关联uid

    删除一条收件地址:关联uid ,收件信息id

    浏览商品:参数化 商品id

    添加到购物车:关联uid, 商品id 店铺 id

    支付:关联uid ,订单id

    查看订单: 关联uid ,订单id

    取消订单: 关联uid ,订单id

    撤销申请: 关联uid ,id(订单id 或者工单id )

       确认收货:关联uid ,订单id

       评论:关联uid,订单id ,店铺id,商品id

       追加评论:关联uid , 订单id ,评论id

    四、关联函数的位置

    关联函数放在哪个函数的前面,只会作用于它的下一个请求,所以关联函数的位置很重要

    Insert  操作后紧接一条select 操作,将id 查出来以便后续操作--关联参数放在insert 之前

    五、关联函数的写法

    A,response 右键直接关联 (位置一定对)

    B, insert -new step

    C,Data returned by server (tree 视图中没有内容的时候)

    D, 页面源代码

    E,抓包

    Fiddler 4 操作

    Fiddler hide if url contains :REGEX:.(js|css|js|png|gif|ico|gif?.*|css?.*|js?.*|png?.*)$

    Any process  点击拖拽到浏览器上,则只记录该浏览器上的操作

     

    脚本精简:跟实现业务无关的请求都可以去掉,但是关联的依赖请求不能去掉

     完善脚本

    一、插入事务

    事务:是一切脚本的基础

    是成对出现的,start end 中名字需一模一样

    事务需定义准确,不要包含与被测接口无关的请求

    事务中不包含集合的、思考时间

    为了保持请求的干净及事务响应时间的准确性

    二、模拟用户思考时间

    Think Time : 等待多长时间再执行下面的请求

    底层作用:控制请求的发送频率,以达到控制服务器压力的目的

    能影响事务的响应时间及tps

    Tps:1s 钟的时间能处理几个事务

    三、插入检查点

    检查点:会影响性能

    为了调试用的;一般压测过程中去掉检查点

    Web_reg_find  预注册函数,放在请求前

    Web_find ,web_image_check 等函数性能不好,不建议使用

    注意事项:文本检查点函数需要注意位置;图片检查点需要开启run-time settings 里的设置

    数据库写操作可以不加检查点

    Select 操作时才需要加检查点

    四、插入集合点

    集合点:

    是反映服务器的瞬时压力

    集合点只是在某些特殊场景中需要验证严格并发是否能够通过,比如秒杀

    集合点不能添加到事务中,要放在事务外,否则事务的统计会把集合点的等待时间也统计进去

    进程、线程:默认勾选线程,进程资源消耗太多,一般没那么多执行机资源的

    实践经验:如果跑场景是出现乱七八糟的事务,run-time settings  中miscellaneous 中先勾选 automatic transactions 下的两个选项,

    点击【保存】->再次打开run-time settings ,取消勾选这两项,点击【保存】即可

      其他协议脚本

     一、Webservice 实例

    第一个是检查点,第二、三个是关联

    两关联是一模一样,只是结果稍有不同。工作中任选

    对应的函数分别为:

    Lr_xml_get_values()

    Lr_xml_find()

    Lr_xml_extract()

    二、WindowsSocket 协议:

    选择windowsSocket协议,点击录制

    相关函数:

    Lrs_receive_ex

    Lrs_receive

    Lrs_save_param

     

  • 相关阅读:
    js函数对象
    jQuery选择器
    js数组
    js知识点
    正则|数字|Format
    Ajax基础
    MVC 打包压缩
    JS(正则|JSON)
    CLR via C#
    Exists/In/Any/All/Contains操作符
  • 原文地址:https://www.cnblogs.com/chendai21/p/9288608.html
Copyright © 2011-2022 走看看