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);
        }    
  • 相关阅读:
    HMM (隐马尔可夫) 推导 (上)
    图模型初识
    K-means 和 EM 比较
    EM-高斯混合模型
    EM算法-完整推导
    EM算法直观认识
    pandas 之 时间序列索引
    K-Means 算法
    接口。
    第一册:lesson ninety-nine。
  • 原文地址:https://www.cnblogs.com/yebaofang/p/10863833.html
Copyright © 2011-2022 走看看