zoukankan      html  css  js  c++  java
  • Loadrunner:脚本编写通用模板(Http协议类型)

    1. 背景

    对于 Http协议,Loadrunner 脚本可以使用通用模板反复粘贴,只需要修改其中的 URL 和 传参,就可以完成一整个业务

    2. Get 类型的接口

    web_custom_request(
      // 名称,最好用英文
      "Hello", 
      // 接口的 URL,建议 appboss 地址设置成变量,方便切换环境
      "URL={appboss}/app/shopBuy/detail?tokenId={tokenId}", 
      // 提交方式
      "Method=GET", 
      "TargetFrame=", 
      "Resource=1", 
      // 返回内容定义的类型
      "RecContentType=application/json", 
      "Referer=",     
      // 请求内容定义的类型        
      "EncType=application/x-www-form-urlencoded; charset=utf-8", 
      LAST);

    3. POST 类型接口

    web_submit_data(
      // 名称,最好用英文
      "Hello", 
      // 接口的 URL,建议 appboss 地址设置成变量,方便切换环境
      "Action={appboss}/app/shopBuy/detail?tokenId={tokenId}", 
      // 提交方式
      "Method=POST", 
      "TargetFrame=", 
      "Referer=1", 
      // 返回内容定义的类型
      "RecContentType=application/json", 
      "Referer=",     
      "Mode=HTML",
      ITEMDATA,
      // 请求体内容
      "Name=传参的键", "Value=传参的值", ENDITEM,
      LAST);

    4. 添加事务

    事务是用来区分不同业务的,一个接口就可以用一个事务包含起来,方便统计

    // 事务开始
    lr_start_transaction("事务名称");
    
    web_submit_data(
      // 名称,最好用英文
      "Hello", 
      // 接口的 URL,建议 appboss 地址设置成变量,方便切换环境
      "Action={appboss}/app/shopBuy/detail?tokenId={tokenId}", 
      // 提交方式
      "Method=POST", 
      "TargetFrame=", 
      "Referer=1", 
      // 返回内容定义的类型
      "RecContentType=application/json", 
      "Referer=",     
      "Mode=HTML",
      ITEMDATA,
      // 请求体内容
      "Name=传参的键", "Value=传参的值", ENDITEM,
      LAST);
    
    // 事务结束
    lr_end_transaction("事务名称", LR_AUTO);

    5. 添加断言

    上面的脚本还缺少测试中最重要的一环,就是断言,判断执行的结果是否符合预期

    // 事务开始
    lr_start_transaction("事务名称");
    
    // 这个需要放到Http请求前面,从结果中查找预期匹配内容
    web_reg_find(
        "SaveCount=存储匹配次数的变量名",
      // 想要匹配的内容
    "Text="errorCode" : "200", ", LAST); web_submit_data(   // 名称,最好用英文   "Hello",   // 接口的 URL,建议 appboss 地址设置成变量,方便切换环境   "Action={appboss}/app/shopBuy/detail?tokenId={tokenId}",   // 提交方式   "Method=POST",   "TargetFrame=",   "Referer=1",   // 返回内容定义的类型   "RecContentType=application/json",   "Referer=",   "Mode=HTML",   ITEMDATA,   // 请求体内容   "Name=传参的键", "Value=传参的值", ENDITEM,   LAST); // 事务结束 // 根据匹配的数量进行判断事务是否成功 if(atoi(lr_eval_string("{存储匹配次数的变量名}"))>0) { // 事务成功 lr_end_transaction("事务名称", LR_PASS); } else { // 事务失败 lr_end_transaction("事务名称", LR_FAIL); }

    6. 添加集合点

    既然是做性能,自然少不了并发用的集合点

    // 集合点,需要放在事务之前
    lr_rendezvous("集合点名称");
    
    // 事务开始
    lr_start_transaction("事务名称");
    
    // 这个需要放到Http请求前面,从结果中查找预期匹配内容
    web_reg_find(
        "SaveCount=存储匹配次数的变量名",
      // 想要匹配的内容
        "Text="errorCode" : "200",
    ",
        LAST);
    
    web_submit_data(
      // 名称,最好用英文
      "Hello", 
      // 接口的 URL,建议 appboss 地址设置成变量,方便切换环境
      "Action={appboss}/app/shopBuy/detail?tokenId={tokenId}", 
      // 提交方式
      "Method=POST", 
      "TargetFrame=", 
      "Referer=1", 
      // 返回内容定义的类型
      "RecContentType=application/json", 
      "Referer=",     
      "Mode=HTML",
      ITEMDATA,
      // 请求体内容
      "Name=传参的键", "Value=传参的值", ENDITEM,
      LAST);
    
    
    
    // 事务结束
    // 根据匹配的数量进行判断事务是否成功
    if(atoi(lr_eval_string("{存储匹配次数的变量名}"))>0)
        {
            // 事务成功
            lr_end_transaction("事务名称", LR_PASS);
        }
    else
        {
            // 事务失败
            lr_end_transaction("事务名称", LR_FAIL);
        }    
  • 相关阅读:
    联想Thinkpad L460安装Win7 64位
    2019牛客暑期多校训练营(第六场)E 构造、原图是补图的同构图
    网络流24题 P2766 最长不下降子序列问题
    The 2019 ICPC China Nanchang National Invitational and International Silk-Road Programming Contest B、H
    P4781 拉格朗日插值
    P4717 快速沃尔什变换FWT 模板题
    2019CCPC-江西省赛C题 HDU6569 GCD预处理+二分
    Gym 101917 E 简单计算几何,I 最大流
    51 Nod 1238 最小公倍数之和 V3 杜教筛
    51Nod 1237 最大公约数之和 V3 杜教筛
  • 原文地址:https://www.cnblogs.com/yebaofang/p/10863833.html
Copyright © 2011-2022 走看看