• Loadrunner 脚本开发-利用web_submit_data函数实现POST请求


    脚本开发-利用web_submit_data函数实现POST请求

     

    by:授客 QQ1033553122

    概述

    web_link()web_url()函数都是页面访问型函数,实现HTTP请求中的GET方法,如果需要实现POST方法,可使用web_submit_formweb_submit_data()函数。当请求比较特别,VuGen无法使用以上4个函数时,便会采用web_custom_request()函数。

     

    其中,web_submit_form 类似web_submit_data函数,不同的是web_submit_data() 函数无须引用页面支持,直接发送给对应页面相关数据即可。

     

    函数原型(C)

    int web_submit_data(const char *StepName, const char *Action, , ITEMDATA, , [ EXTRARES, ,] LAST ); 

     

    StepName:自定义函数名称

     

    Action:提交数据时需要访问的http地址。语法:"Action=" 

     

    List of Attributes:支持以下属性

    Method: 表单提交方法: POST GET (默认: POST).

     

    EncType: 方法使用的编码

    Enctype属性指明了Content-Type请求头的value值,具体如下:

    • "EncType=application/x–www–form–urlencoded"
    • "EncType=multipart/form–data"  
    • "EncType=" (空字符串,表明请求不含"Content–Type" 请求头).

     

    如果指定了“EncType”,那么它将会覆盖web_add_[auto_]header函数指定的Content-Type。如果省略了“EncType”时,那么使用web_add_[auto_]header函数指定的。如果既没有指定EncType也没使用web_add_[auto_]header函数设定请求头,且“Method=POST”,那么,将使用“application/x-www-form-urlencoded”做为默认值。如果Method不是POST,那将不会生成Content-Type请求头。

     

    EncodeAtSign: 编码"@"符号为其ASCII表示.可选值为 Yes No.

     

    TargetFrame: 包含当前链接、资源的frame

     

    Referer: 所引用web页面的url

     

    Mode: 录制级别:HTML HTTP. Click here for more information.

     

    UserAgent: 标识一个组件替代浏览器来执行函数,比如浏览器的ActiveX组件。函数将为该请求添加UserAgent头。不对该UserAgent是否匹配浏览器User-Agent运行时设置做任何确认检查。

     

    ITEMDATA 分隔属性列表和和数据列表的标识

     

    List of Data:定义了表单数据。data域包含所有隐藏(携带hidden属性)的表单数据。

    数据域。

     

    数据域的值可以加密后的(encrypted)或者是原始的(plain),如下:

    "name=n1", "value=v1", ENDITEM,

    "name=n2", "EncryptedValue=qwerty", ENDITEM, 

     

    EXTRARES:表明接下来的参数为资源属性列表。

     

    List of Resource Attributes 资源属性列表

    当录制在当前脚本的step中时,额外的资源被当作参数列出,支持以下资源属性:

    URL       需要加载的web资源

    Referer   URL引用的web页面

    ENDITEM   表示list中,每个资源结束的标记

     

    HTML资源,如.gif .jpg 图片,仅在资源录制选项设置为Record within the current script step时,才会插入到当前函数中,如下:

     

     

    LAST  暗示属性列表结束。 

    action函数,执行"unconditional" or "contextless" 表单提交。允许发送GET POSTHTML表单请求。

     

    当选择以HTTP录制模式录制一个WEB会话时,会生成该函数。另外,当表单提交后,无法生成web_submit_form时,也会生成该函数。

    1:上传文件

    web_submit_data("choujiang",

            "Action=http://xxx.xxx.x.xx:xxx/ditui/fileupload",

            "Method=POST",

            "Resource=0",

            "RecContentType=application/json",

            "Referer=",

            "Mode=HTML",

            "EncType=multipart/form-data",

             ITEMDATA,

             "Name=MultiPart File","Value=E://test_pic.png", "File=yes", ENDITEM,

            LAST);

     

    运行结果:

     

     

    对比工具测试结果:


     

    2:登陆

        web_submit_data("login.pl",

            "Action=http://127.0.0.1:1080/WebTours/login.pl",

            "Method=POST",

            "TargetFrame=body",

            "RecContentType=text/html",

            "Referer=http://127.0.0.1:1080/WebTours/nav.pl?in=home",

            "Snapshot=t3.inf",

            "Mode=HTML",

            ITEMDATA,

            "Name=userSession", "Value=118025.184447145zAHAQcAptcfDztcfpfccff", ENDITEM,

            "Name=username", "Value=jojo", ENDITEM,

            "Name=password", "Value=bean", ENDITEM,

            "Name=JSFormSubmit", "Value=off", ENDITEM,

            "Name=login.x", "Value=58", ENDITEM,

            "Name=login.y", "Value=2", ENDITEM,

            LAST);

     

     

  • 相关阅读:
    CodeIgniter 2.X 于 PHP5.6 兼容错误
    解决 TextMate 2 无法安装 Emmet 插件
    Windows 10 KMS 激活方法
    Sublime Text 3 如何修改默认快捷键
    Grunt快速使用笔记
    CSS3字体发光效果
    CSS3使用盒模型实现三栏布局
    CSS3Transition添加多个过渡效果
    Javascript 判断网页横竖屏
    【iOS知识汇】OC点语法的坑
  • 原文地址:https://www.cnblogs.com/shouke/p/10157664.html
Copyright © 2020-2023  润新知