LoadRunner中web_custom_request和web_submit_data的差别

作者:网络    软件教程库   2020-05-23

web_custom_request方法可以发送post和get类型的请求

web_submit_data只能发送post类型的请求

所有web_submit_data方法发送的请求都可以使用web_custom_request来实现

web_custom_request可以实现web_submit_data无法实现的请求,

比如查询所有邮件并删除这个案例中,查询时我们使用关联把所有邮件对应的标识抓取成一个数组,如果使用web_submit_data来完成这 个删除的请求,需要很多个web_submit_data请求才能完成,但使用web_custom_request就可以通过一个请求完成,方法是自己 写代码拼一个web_custom_request 方法post请求的body值。

web_submit_data请求中提交的数据是以这样的方式存在的

name=属性名称,,value=属性值 

如:

     name=locale, value=l2prime;, enditem, 
     name=datacenter, value=yh, enditem, 
     name=username, value=12044prime;, enditem,

 如果我们想提交的某个属性包含包含多个值(上文的例子中就是这样的情况),它就无法处理了,只能通过多个web_submit_data来处理。

 下面是一个典型的web_submit_data和web_custom_request请求,可以看到web_custom_request中提交的数据(body)是以这样的方式存在的

body=属性名称=属性值属性名称=属性值

    web_submit_data(login, 
        action=http://192.168.14.21:78ndex_sso.jsp, 
        method=post, 
        reccontenttype=text/html, 
        referer=http://192.168.14.21:7888%3d%2findex_sso.jsp, 
        mode=html, 
        itemdata, 
        name=locale, value=l2prime;, enditem, 
        name=datacenter, value=yh, enditem, 
        name=username, value=12044prime;, enditem, 
        name=password, value=, enditem, 
        name=_eventid, value=submit, enditem, 
        name=ispureweb, value=true, enditem, 
        name=solutionname, value=eas, enditem, 
        name=dbtype, value=1prime;, enditem, 
        name=eassessionid, value=eas;yh;l2;12044;basedb, enditem,        
        name=userauthpattern, value=basedb, enditem, 
        name=loginflow, value=true, enditem, 
        last);

    web_custom_request(commonquerydialog.jsf_3prime;,
        url=http://192.168.14.21:7888/eauerydialog.jsf,
        method=post,
        resource=0prime;,
        reccontenttype=text/javascript,
        referer=http://192.168.14.21:7888/dailyloanuerc%2bihtml,
        mode=html,
        enctype=application/x-www-form-urlencoded;charset=utf-8prime;,
        body=querydialog%3aselectsolutionlist=%e6%9f%a5%e8%af%a2querydialog%3aj_iduserfilterpanel_3_value=kd5qoaepeadgaaf8wkgedmznrtq%3d=%e6%b9%96%e5%8d%97%e4%ba%9a%e5%8d%8e%e4%b9%b3%e4%b8%9a%e6%9c%89%e9%99%90%e5%85%ac%e5%8f%b8querydialog%3aj_iduserfilterpanel_6=querydialog%3aj_iduserfilterpanel_9_value=3=%e5%a4%a7%e4%ba%8e%e7%ad%89%e4%ba%8equerydialog%3aj_iduserfilterpanel_11=0querydialog%3aj_iduserfilterpanel_14_value==querydialog%3aj_iduserfilterpanel_17_value==querydialog%3aj_iduserfilterpanel_20_value==querydialog%3aj_iduserfilterpanel_23_value==querydialog%3aj_iduserfilterpanel_26_value==querydialog%3aj_iduserfilterpanel_29_value==querydialog%3aj_iduserfilterpanel_32=querydialog%3aj_iduserfilterpanel_35_value==querydialog%3aj_iduserfilterpanel_38=2008-08-01querydialog%3aj_iduserfilterpanel_41=2008-08-28querydialog%3afiltergrid_modifieddata=%5b%5dquerydialog%3afiltergrid_removeddata=%5b%5dquerydialog%3a_postback=querydialog%3auserfilterpanel=%2fcp%2fbc%2fdailyloanbillcommquery.xhtmljavax.faces.viewstate={vs2},
        last);

通过我的观察,发现有两种情况下的post请求会被loadrunner录制为web_custom_request,

1.        上文提到的批量提交多条同属性名称的数据的请求
2.        header属性x-requested-by值为xmlhttprequest的post请求

这两种实现请求的方法还有一个需要注意的地方就是web_custom_request中body中的属性值如果包含一些特殊字符,必须通过url编码,否则web服务器会返回500错误,一个典型的例子是如果body中包含viewstate,viewstate中常常有=之类的特殊字符,此时必须通过url编码,loadruner中提供了一个这样的编码转换函数

       web_convert_param(vs1prime;, sourceencoding=html,  targetencoding=url, last);

除loadrunner外,你可以在fiddler中按ctrl+e来转换

loadrunner中web_custom_request 和 web_submit_data的差别

原文地址:http://www.cnblogs.com/qmfsun/p/4481444.html

软件教程库 原文地址:https://www.itjcku.com/9999/1091588.html

阅读全部内容


Tags:以及差别

返回首页



推荐内容

Android简单的TXT文件存储

文件写入 //文件写入的位置为./data/data/包名/files/文件名 public void file ...

whyIneedaflowlearnnote.

1.其实学网站学安卓也写了txt的学习笔记。然后扔着,(没有时间线和互动性),然后就没有然后了。 2.知识体系,一个月后 ...

WinfromPanelScrollEnd的实现

场景:在一个panel里面有非常多的自定义绘制的控件,在拖拉滚动条的时候,控件的画面上有残影 不知道大家遇到过这种情况没 ...

LinkedList和ArrayList的区别/何时使用LinkedList和ArrayList

看过葛一鸣写的《java程序性能优化:让你的java程序更快、更稳定》,里面介绍的是查询:3种遍历中除了for(int ...

windows脚本调用批处理

set ws=wscript.createobject(wscript.shell)ws.run batchfn.bat ...

WPF:依赖属性的数据绑定

one of the strengths of wpf is its data binding capabilities ...

hamlscss转换编写htmlcss的前期工作

http://www.w3cplus.com/sassguide/install.html 先下载ruby $ gem ...

解析this.initialize.apply(this,arguments)

摘自:http://www.cnblogs.com/uedt/archive/2010/06/24/1764561.ht ...

FU-A分包方式,以及从RTP包里面得到H.264数据和AAC数据的方法

fu-a分包方式,以及从rtp包里面得到h.264数据和aac数据的方法 rfc3984是h.264的baseline码 ...

java面试题之ssh

1、写出你熟悉的开源框架以及各自的作用(项目中为什么使用ssh) 答:框架:hibernate,spring,strut ...

JDBC连接数据库的过程

以连接mysql为例: (1)加载mysql数据库连接的驱动程序。到mysql官网下载该驱动程序jar包,然后把包复制到 ...

ORACLEno1存储过程插入更新表数据

create or replace procedure sp_cust_main_data_yx(instrdate i ...

win使用telnet到ubuntu下vim显示中文为乱码的解决方法~

1.几个路径: ubuntu: /etc/default/locale 相当于 centos:/etc/sysconfi ...

mediawiki的安装与配置

apache的配置: 1. 开启php module 查看mods-enabled/php5.load 是否存在,不存在 ...

C#随机数

c#中有个random类可以非常方便的产生一个随机数,但是在使用中你会发现这个类并不是特别好用,偶尔会一直提供同一 ...

shell-入门

dos2unix start.sh 在windows系统下编写的shell脚本 在liunx下进行一次转译,否则会爆出 ...

团队开发——软件需求分析报告(HelloWorld团队)

一.项目名称超级迷宫二.设计背景随着生活节奏加快,游戏更新速度的加快,游戏大同小异缺少新颖度,同时为了满足多游戏的结合, ...

MSSQl事务的使用

注册了博客这么久没还好好写过文章呢?昨天看了我同学的博客,写的很好,每次用到以前的知识我就会去看看她写的博客,现在 ...

NSDictionary转化为NSData

之前自己写了nsdictionary转化为nsdata的一种方法如下 nsmutabledata *data = ...

nginx关键字

反向代理: proxy_pass: 负载均衡: upstream 负载均衡,有四种方式:     a/ 轮询 ...

Java设计模式之简单工厂模式

设计模式之简单工厂举例: l简单工厂模式概述 又叫静态工厂方法模式,它定义一个具体的工厂类负责创建一些类的实例 l优点 ...

解题报告之POJ3686TheWindy's

解题报告 之 poj3686 the windy‘s description the windy‘s i ...

【ThinkingInJava】18、关于java中的闭包与回调

/** * 书本:《thinking in java》 * 功能:关于java中的闭包与回调,这里回调区别于c++,c+ ...

TreasureHunting (hdu3468二分匹配+bfs最短路径)

treasure hunting time limit: 4000/2000 ms (java/others)mem ...

【ThinkingInJava】19、控制框架的实现

/** * 书本:《thinking in java》 * 功能:控制框架的实现 * 文件:event.java * 时 ...

【ThinkingInJava】20、控制框架的使用(初始化系统使用)

/** * 书本:《thinking in java》 * 功能:控制框架的实现,1、控制框架的完整实现是由单个的类创建 ...

最小汉密尔顿回路问题状态压缩dp

给定n个顶点做成的图,要求从顶点0出发经过所有点一次然后回到0点的一条权#20540;之和最小的一条路的权#20540; ...

POJ1966.CableTVNetwork——无向图的点连通度

http://poj.org/problemid=1966 题目描述: 有线电视网络中,中继器的连接是双向的。如果网 ...

Oracle备忘录1

数据库管理员:安装升级oracle数据库建库,表空间,表,视图,索引。。。制定并实施备份和修复计划数据库权限管理,调优, ...

FileStream文件流

使用文件流拷贝一个较大的多媒体文件: public static void copyfile(string soucr ...


本网站部分内容来自互联网,版权归原作者所有,文章内容仅代表原作者个人观点。如有侵权请联系我们删除 电子邮件 itjcku@foxmail.com