zoukankan      html  css  js  c++  java
  • 性能测试第八章学习 Loadrunner http POST三种请求格式的脚本

    原文:https://blog.csdn.net/xieyuemin/article/details/52642924

    本篇文章主要针对POST请求的三种数据请求格式,组织不同的脚本,较为基础,入手教简单

    (1)、application/x-www-form-urlencoded 键值对

    (2)、multipart/form-data 表单

    (3)、application/json Json串

    注意:loadrunner参数中的引号,需要自己加""。

    1. application/x-www-form-urlencoded 键值对

    [plain] view plain copy
     
    1. Action()  
    2. {  
    3.     lr_start_transaction("checkPerson");  
    4.     /* 注册获取返回参数,该方法可以配合打印返回数据,检测数据内容 */  
    5.     web_reg_save_param("Para",  
    6.                        "LB=",  
    7.                        "RB=",  
    8.                        LAST);  
    9.   
    10.     /* 注册断言: Text=断言内容 */  
    11.     /* 该方法会判断后面的web请求方法的返回值 */  
    12.     web_reg_find("Text=成功",  
    13.              LAST);  
    14.   
    15.     /* 汉字进行UTF-8编码 */  
    16.     lr_convert_string_encoding("需要进行UTF-8加密的中文字符串",LR_ENC_SYSTEM_LOCALE,LR_ENC_UTF8,"result");  
    17.   
    18.     /* 向后面的web请求函数增加请求头 */  
    19.     /* 如果web请求方法中已经设置了相同的头,则优先使用web请求方法中的头,例如web请求方法中的EncType参数,对应请求投中的Content-Type。由于下面的方法已经设置了EncType参数,所以这里的设置并没有什么X用 */  
    20.     /* 表单直接使用方法自带参数,键值对和json建议使用该方法 */  
    21.     web_add_header("Content-Type",  
    22.                "application/x-www-form-urlencoded; charset=utf-8");  
    23.   
    24.     /* 主要针对form表单和键值对两种格式的web请求 */  
    25.     web_submit_data("checkPerson",  
    26.         "Action=http://130.1.11.105:9080/ibis/faceService/checkPerson",  
    27.         "Method=POST",  
    28.         /* 该方法支持常见的两种请求数据格式 */  
    29.         /* (1)"EncType=multipart/form-data"。form表单提交数据 */  
    30.         /* (1)"EncType=application/x-www-form-urlencoded"。默认使用键值对提交数据 */  
    31.         //"EncType=",  
    32.         "TargetFrame=",  
    33.         "Referer=",  
    34.         ITEMDATA,  
    35.         "Name=Name1", "Value=Value1", ENDITEM,  
    36.         "Name=Name2", "Value=Value2", ENDITEM,  
    37.         LAST);  
    38.   
    39.     /* 打印相应结果 */  
    40.     /* lr_eval_string("{result}") 使用loadrunner引用外部函数,只有这样才能取出上面web_reg_save_param方法的返回值 */  
    41.     lr_log_message(lr_eval_string("{result}"));  
    42.   
    43.     lr_end_transaction("checkPerson", LR_AUTO);  
    44.   
    45.     return 0;  
    46. }  



    2. multipart/form-data 表单

    [plain] view plain copy
     
    1. Action()  
    2. {  
    3.     lr_start_transaction("checkPerson");  
    4.     /* 注册获取返回参数,该方法可以配合打印返回数据,检测数据内容 */  
    5.     web_reg_save_param("Para",  
    6.                        "LB=",  
    7.                        "RB=",  
    8.                        LAST);  
    9.   
    10.     /* 注册断言: Text=断言内容 */  
    11.     /* 该方法会判断后面的web请求方法的返回值 */  
    12.     web_reg_find("Text=成功",  
    13.              LAST);  
    14.   
    15.     /* 汉字进行UTF-8编码 */  
    16.     lr_convert_string_encoding("需要进行UTF-8加密的中文字符串",LR_ENC_SYSTEM_LOCALE,LR_ENC_UTF8,"result");  
    17.   
    18.     /* 向后面的web请求函数增加请求头 */  
    19.     /* 如果web请求方法中已经设置了相同的头,则优先使用web请求方法中的头,例如web请求方法中的EncType参数,对应请求投中的Content-Type。由于下面的方法已经设置了EncType参数,所以这里的设置并没有什么X用 */  
    20.     /* 表单直接使用方法自带参数,键值对和json建议使用该方法 */  
    21.     //web_add_header("Content-Type",  
    22.     //         "multipart/form-data; boundary = --------BORN3QKNRTS4; charset=UTF-8");  
    23.   
    24.     /* 主要针对form表单和键值对两种格式的web请求 */  
    25.     web_submit_data("checkPerson",  
    26.         "Action=http://130.1.11.105:9080/ibis/faceService/checkPerson",  
    27.         "Method=POST",  
    28.         /* 该方法支持常见的两种请求数据格式 */  
    29.         /* (1)"EncType=multipart/form-data"。form表单提交数据 */  
    30.         /* (1)"EncType="。默认使用键值对提交数据 */  
    31.         "EncType=multipart/form-data",  
    32.         "TargetFrame=",  
    33.         "Referer=",  
    34.         ITEMDATA,  
    35.         "Name=Name1", "Value=Value1", ENDITEM,  
    36.         "Name=Name2", "Value=Value2", ENDITEM,  
    37.         LAST);  
    38.   
    39.     /* 打印相应结果 */  
    40.     /* lr_eval_string("{result}") 使用loadrunner引用外部函数,只有这样才能取出上面web_reg_save_param方法的返回值 */  
    41.     lr_log_message(lr_eval_string("{result}"));  
    42.   
    43.     lr_end_transaction("checkPerson", LR_AUTO);  
    44.   
    45.     return 0;  
    46. }  


    3.  application/json Json串

    [plain] view plain copy
     
      1. Action()  
      2. {  
      3.     lr_start_transaction("checkPerson");  
      4.     /* 注册获取返回参数,该方法可以配合打印返回数据,检测数据内容 */  
      5.     web_reg_save_param("Para",  
      6.                        "LB=",  
      7.                        "RB=",  
      8.                        LAST);  
      9.   
      10.     /* 注册断言: Text=断言内容 */  
      11.     /* 该方法会判断后面的web请求方法的返回值 */  
      12.     // web_reg_find("Text=成功",  
      13.     //       LAST);  
      14.   
      15.     /* 汉字进行UTF-8编码 */  
      16.     lr_convert_string_encoding("需要进行UTF-8加密的中文字符串",LR_ENC_SYSTEM_LOCALE,LR_ENC_UTF8,"result");  
      17.   
      18.     /* 向后面的web请求函数增加请求头 */  
      19.     /* 如果web请求方法中已经设置了相同的头,则优先使用web请求方法中的头,例如web请求方法中的EncType参数,对应请求投中的Content-Type。由于下面的方法已经设置了EncType参数,所以这里的设置并没有什么X用 */  
      20.     /* 表单直接使用方法自带参数,键值对和json建议使用该方法 */  
      21.     web_add_header("Content-Type",  
      22.                "application/json; charset=UTF-8");  
      23.   
      24.     /* 主要针对form表单和键值对两种格式的web请求 */  
      25.   
      26.     web_custom_request("web_custom_request",  
      27.         "URL=http://www.baidu.com",  
      28.         "Method=POST",  
      29.         "TargetFrame=",  
      30.         "Resource=0",  
      31.         "Referer=",  
      32.         "Mode=HTTP",  
      33.         /* json和键值对数据格式,建议使用web_add_header方法添加Content-Type头 */  
      34.         //"EncType=application/json",  
      35.         "Body={"Name1":"Value1","Name2":"Value2"}",  
      36.         LAST);  
      37.   
      38.     /* 打印相应结果 */  
      39.     /* lr_eval_string("{result}") 使用loadrunner引用外部函数,只有这样才能取出上面web_reg_save_param方法的返回值 */  
      40.     lr_log_message(lr_eval_string("{result}"));  
      41.   
      42.     lr_end_transaction("checkPerson", LR_AUTO);  
      43.   
      44.   
      45.     return 0;  
      46. }   
  • 相关阅读:
    python-设计模式:抽象类
    python协程的使用
    python生成器异步使用
    python2和python3的内存使用情况
    python基础
    python对象序列化pickle
    docekr-image的区别和container;docker run和start,create
    airflow 安装配置celery+rabbitmq celery+redis
    Centos7 安装部署 Airflow
    centos7 安装后静态ip的配置
  • 原文地址:https://www.cnblogs.com/dyjnicole/p/8711891.html
Copyright © 2011-2022 走看看