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

 

by:授客 QQ1033553122

概述

web_link()和web_url()函数都是页面访问型函数,实现HTTP请求中的GET方法,如果需要实现POST方法,可使用web_submit_form或web_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 和 POST的HTML表单请求。

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

Loadrunner 脚本开发-利用web_submit_data函数实现POST请求的更多相关文章

  1. Loadrunner 脚本开发-利用web_custom_request函数进行接口测试

    脚本开发-利用web_custom_request函数进行接口测试 by:授客 QQ:1033553122 一.POST + JSON格式参数 例: web_custom_request(" ...

  2. Loadrunner 脚本开发-利用loadrunner开发Windows Sockets协议脚本

    脚本开发-利用loadrunner开发Windows Sockets协议脚本 by:授客 QQ:1033553122 欢迎加入软件性能测试交流QQ群:7156436 实践举例 Socket服务端简单实 ...

  3. Loadrunner 脚本开发-利用Loadrunner生成Web service测试脚本

    脚本开发-利用Loadrunner生成Web service测试脚本 1.选择协议--Web Service,如下图 2.导入服务 入口1:点击Manage Services ->弹出窗中选择“ ...

  4. LoadRunner 脚本开发和常用函数

    开发性能测试脚本原则.简单 正确 高效 在lr中,脚本运行是解释执行的.所以在运行时,需要先编译. 局部变量和全局变量 1.在init.action.end中定义的变量就是局部变量 2.在global ...

  5. loadrunner 脚本开发-参数化之将内容保存为参数、参数数组及参数值获取

    转自:http://blog.sina.com.cn/s/blog_13cc013b50102v49c.html(查看原文) 在VuGen中默认使用{}的字符串称为参数 注意:参数必须在双引号中才能用 ...

  6. Loadrunner脚本开发规范

    Loadrunner脚本开发规范 目录 1.一般约定... 3 2.代码注释约定... 4 3.格式化代码... 5 1.一般约定 1.1具体脚本规则,必须在具体代码中加注释,以便脚本开发人员阅读和理 ...

  7. loadrunner 脚本开发-web_custom_request函数详细介绍

    脚本开发-web_custom_request函数详细介绍 by:授客 QQ:1033553122 c语言版本: int web_custom_request(const char *RequestN ...

  8. Loadrunner 脚本开发-soap_request函数介绍及WebService接口测试

    脚本开发- soap_request函数介绍及WebService接口测试 by:授客 QQ:1033553122 函数介绍 soap_request 函数执行一个SOAP请求 函数原型 int so ...

  9. loadrunner 脚本开发- web_url函数详解

    脚本开发- web_url函数详解 by:授客 QQ:1033553122   加载指定url的web页面(GET请求) C语言函数 int web_url( const char *StepName ...

随机推荐

  1. centos上ftp服务器的简易安装部署

    申明:本示例为centos7 开启ftp服务命令为:systemctl start vsftpd 关闭防火墙命令为systemctl stop firewalld 7版本以下开启ftp服务器为 ser ...

  2. PyTorch--双向递归神经网络(B-RNN)概念,源码分析

    关于概念: BRNN连接两个相反的隐藏层到同一个输出.基于生成性深度学习,输出层能够同时的从前向和后向接收信息.该架构是1997年被Schuster和Paliwal提出的.引入BRNNS是为了增加网络 ...

  3. ffmpeg常用转换命令

    音频转换: 1.转换amr到mp3: ffmpeg -i shenhuxi.amr amr2mp3.mp3 2.转换amr到wav: ffmpeg -acodec libamr_nb -i shenh ...

  4. 机器学习入门13 - 正则化:稀疏性 (Regularization for Sparsity)

    原文链接:https://developers.google.com/machine-learning/crash-course/regularization-for-sparsity/ 1- L₁正 ...

  5. 如何在vue中使用ts

    注意:此文并不是把vue改为全部替换为ts,而是可以在原来的项目中植入ts文件,目前只是实践阶段,向ts转化过程中的过渡. ts有什么用? 类型检查.直接编译到原生js.引入新的语法糖 为什么用ts? ...

  6. 【ABP框架系列学习】模块系统(4)

    0.引言 ABP提供了构建模块和通过组合模块以创建应用程序的基础设施.一个模块可以依赖于另外一个模块.通常,程序集可以认为是模块.如果创建多个程序集的应用程序,建议为每个程序集创建模块定义. 当前,模 ...

  7. The EntityFramework package is not installed on project

    VS2015 使用EF的code first 报错 Get-Package : 找不到与参数名称“ProjectName”匹配的参数.所在位置 packages\EntityFramework.6.1 ...

  8. Java核心技术及面试指南 面向对象部分的面试题总结以及答案

    问题2.7.1,开放性问题,说一下你对面向对象思想的了解. 要点1,先说基础概念,比如面向对象思想包括封装.继承.多态,然后说些语法,比如可以通过extends继承类.通过implement来实现接口 ...

  9. 微信小程序内嵌业务域名内的网页

    微信小程序在2017年11月左右开放了内嵌网页的功能,即新组件<web-view>.官方文档链接:https://mp.weixin.qq.com/debug/wxadoc/dev/com ...

  10. ZOJ Problem Set - 3708 Density of Power Network

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3708 #include <stdio.h> #include ...