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

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

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

 


概述

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:表单提交方法: POSTGET (默认: 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表示.可选值为YesNo.

 

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

 

Referer:所引用web页面的url

 

Mode:录制级别:HTMLHTTP. 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"表单提交。允许发送GETPOSTHTML表单请求。

 

当选择以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);

 

 

目录
相关文章
|
11月前
|
缓存 安全 Java
《深入理解Spring》过滤器(Filter)——Web请求的第一道防线
Servlet过滤器是Java Web核心组件,可在请求进入容器时进行预处理与响应后处理,适用于日志、认证、安全、跨域等全局性功能,具有比Spring拦截器更早的执行时机和更广的覆盖范围。
|
开发框架 缓存 .NET
并发请求太多,服务器崩溃了?试试使用 ASP.NET Core Web API 操作筛选器对请求进行限流
并发请求太多,服务器崩溃了?试试使用 ASP.NET Core Web API 操作筛选器对请求进行限流
755 0
|
安全 Java 数据安全/隐私保护
springSecurity学习之springSecurity过滤web请求
通过配置 Spring Security 的过滤器链,开发者可以灵活地管理 Web 请求的安全性。理解核心过滤器的作用以及如何配置和组合这些过滤器,可以帮助开发者实现复杂的安全需求。通过具体的示例代码,可以清晰地了解 Spring Security 的配置方法和实践。
826 23
|
SQL 存储 安全
Web安全-CSRF跨站请求伪造
Web安全-CSRF跨站请求伪造
792 4
|
JSON 前端开发 Java
一文读Web开发 之接口后端接口、类与前端请求、拦截器编写
一文读Web开发 之接口后端接口、类与前端请求、拦截器编写
2147 6
|
运维 Java 测试技术
Spring运维之boo项目表现层测试加载测试的专用配置属性以及在JUnit中启动web服务器发送虚拟请求
Spring运维之boo项目表现层测试加载测试的专用配置属性以及在JUnit中启动web服务器发送虚拟请求
333 3
|
Web App开发 安全 JavaScript
【Azure 应用服务】App Service 通过配置web.config来添加请求返回的响应头(Response Header)
【Azure 应用服务】App Service 通过配置web.config来添加请求返回的响应头(Response Header)
415 0
【Azure API 管理】在 Azure API 管理中使用 OAuth 2.0 授权和 Azure AD 保护 Web API 后端,在请求中携带Token访问后报401的错误
【Azure API 管理】在 Azure API 管理中使用 OAuth 2.0 授权和 Azure AD 保护 Web API 后端,在请求中携带Token访问后报401的错误
545 0
|
API Python
python flask 提供web的get/post开发
python flask 提供web的get/post开发
347 0