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

     

  • 相关阅读:
    Poj 2017 Speed Limit(水题)
    Poj 1316 Self Numbers(水题)
    Poj 1017 Packets(贪心策略)
    Poj 1017 Packets(贪心策略)
    Poj 2662,2909 Goldbach's Conjecture (素数判定)
    Poj 2662,2909 Goldbach's Conjecture (素数判定)
    poj 2388 Who's in the Middle(快速排序求中位数)
    poj 2388 Who's in the Middle(快速排序求中位数)
    poj 2000 Gold Coins(水题)
    poj 2000 Gold Coins(水题)
  • 原文地址:https://www.cnblogs.com/chendai21/p/9288608.html
Copyright © 2011-2022 走看看