loadrunner关联——对服务器返回的数据选择性提交
在跟进项目的过程中,才体会到自己之前闷头看书再写小小的测试程序验证的学习方式很没有效率,知道动态关联,却也只是会参数化式的动态关联,这种关联是我们预先知道要提交的数据而进行的关联;更高一级的可能就是使用loadrunner自带的自动关联,对jsessionid和DSId进行关联,除此之外一无所知。
在项目中碰到的情况是:对输入框A进行参数化,假定当前参数数据为a1,参数化之后点击“查询”按钮,Server 返回a1的数据,选中a1进行提交。在这个过程中,根据参数不同Server返回的数据不同,且每次返回的数据项很多,提交过程中又需要这些数据,这个时候就需要考虑将Server返回的动态数据原封不动的添加到“提交”请求中去。
说明:系统协议:flex+http;
【第一次尝试】:给“查询”操作插入事务,这样就可以清楚的知道哪个请求是“查询”操作(PS:比较小白的方式);确定好查询操作的flex_amf_call请求后,使用Tree视图——打开HTTP View中的Response Body——右边选择“XML-Tree Editor”,结合查询结果页面的展示数据和提交操作提交的数据(提交前插入事务就可以知道是哪一个请求),在XML-Tree Editor中查找对应的字段,并使用web_reg_save_param_xpath()函数将字段提取保存;这种方法相当于在盲人摸象,因为要尽可能完整的查找到需要提交的数据。
//以获取“id”为例 !!!注:该方法放在请求之前
web_reg_save_param_xpath(
"ParamName=id",
"QueryString=/AMFPacket[1]/Messages[1]/Message[1]/AMF3[1]/object-externalizable-custom[1]/flex.messaging.messages.AcknowledgeMessageExt[1]/flex.messaging.io.amf.ASObject[1]/map[1]/flex.messaging.io.ArrayCollection[1]/object-array[1]/flex.messaging.io.amf.ASObject[1]/map[1]/double[1]/text()",
SEARCH_FILTERS,
"Scope=Body",
"IgnoreRedirections=Yes",
LAST);
flex_amf_call();
QueryString的值比较重要,但是当前系统Server返回的数据,对于非关键字段,有的有值有的为空,导致map后面的string[i]中i数值不准确;
【第二次尝试】:在QueryString中不再使绝对路径,但依旧需要对提交字段尽可能多的提取。
flex_amf_call(
.......
"ResponseParameter=response", //******************** 1:添加参数获取服务器返回值
......
);
lr_xml_get_values("XML={response}",
"Query=//string[contains(text(),'id')]/following::double", // 2:获取字段对应的值,并保存在name为id的变量中
"ValueParam=id",
LAST);
【第三次尝试】:同样是使用lr_xml_get_values,但是对整段数据提取,之后在submit.c中找到对应的flex_amf_call函数,再确定数据位置,直接塞进去就可以了O(∩_∩)O~~
flex_amf_call(
.......
"ResponseParameter=response", //******************** 1:添加参数获取服务器返回值
......
);
lr_xml_extract("XML={response}",
"XMLFragmentParam=Result",
"Query=/AMFPacket[1]/Messages[1]/Message[1]/AMF3[1]/object-externalizable-custom[1]/flex.messaging.messages.AcknowledgeMessageExt[1]/flex.messaging.io.amf.ASObject[1]/map[1]/flex.messaging.io.ArrayCollection[1]/object-array[1]/flex.messaging.io.amf.ASObject[1]", //2:获取整个对象
LAST );
之后在提交的flex_amf_call中对应位置使用“ {Result} ” 覆盖原数据即可 //3:覆盖原数据
loadrunner关联——对服务器返回的数据选择性提交的更多相关文章
- json 解析double类型多出几位小数,利用NSDecimalNumber修复 , 服务器返回的数据,用数据类型接收(int,NSNumber)?
后台返回float类型数据8.2,实际用AFN的json解析后得到8.1999999999,该怎么处理呢? 开发中处理处理价格金额问题, 后台经常返回float.double类型, 打印或转成NSS ...
- 【04】AJAX接收服务器返回的数据
AJAX接收服务器返回的数据 readyState 和 status 属性 readyState 属性保存有 XMLHttpRequest 对象的交互状态,从 0 到 4 变化: 0 :未初始化(还没 ...
- 服务器返回的数据将Unicode码转成汉字
当我们请求接口的时候,服务器会返回一些数据,当我们打印的时候就会发现,打印出来的是unicode码,不是汉字. 这时候需要我们自己手动处理一下,让打印的时候输出汉字的格式. 方法如下: 新增一个分类, ...
- js如何发送wss协议的请求,以及接受服务器返回的数据
今天遇到问题,以往都是请求http协议的url,现在请求变成了wss的,用以前那种ajax的方式不可以发送和接受.然后查阅相关资料解决了这个问题,在这记录一下解决办法,使用的是websocket. & ...
- datatables 服务器返回数据后的处理-表格数据属性的操作方法(ajax.dataSrc)
http://dt.thxopen.com/reference/option/ajax.dataSrc.html http://datatables.net/reference/option/ajax ...
- Postman----模拟服务器返回数据
使用场景:在某些情况下,比如A接口还没开发好,我们需要测试B接口,刚好B接口的请求数据中需要包含A接口返回的数据,这时我们就可以模拟A接口服务器返回的数据来测试B接口 解决办法: 举例:模拟此 htt ...
- LoadRunner关联之学习笔记
去银行办业务,进银行的门,大堂经理给你一张业务号,拿着这张业务号,去柜台办理业务.--录制下来 第二天又去银行,还是拿着这张业务号,去柜台办理业务,柜员就不理你了,因为这张业务号是昨天的.--回放过程 ...
- 深入了解Struts2返回JSON数据的原理
首先来看一下JSON官方对于"JSON"的解释: JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析 ...
- (转)Struts2返回JSON数据的具体应用范例
转载自 yshjava的个人博客主页 <Struts2返回JSON数据的具体应用范例> 早在我刚学Struts2之初的时候,就想写一篇文章来阐述Struts2如何返回JSON数据的原理和具 ...
随机推荐
- request_irq() | 注册中断服务函数【转】
本文转载自:http://blog.csdn.net/wealoong/article/details/7566546#t0 参考 : ARM Linux 中断机制分析.pdf linux-2.6. ...
- HTTP/TCP
转:http://blog.csdn.net/sundacheng1989/article/details/28239711 http://blog.csdn.net/sundacheng1989/a ...
- JAVA join()方法
转自:http://www.open-open.com/lib/view/open1371741636171.html 一.为什么要用join()方法 在很多情况下,主线程生成并起动了子线程,如果子线 ...
- [已解决] protobuf Missing input file
如果proto描述文件在当前目录,要以"./"开始 如: protoc ./test.proto --java_out=./ 文章来源:http://www.cnblogs.com ...
- JS 获取url参数
<html> <body> 浏览器中输入 http://localhost/test/js_url.php?a1=aaa&a2=bbb&a3=ccc 会依次弹出 ...
- Windows平台Tomcat服务搭建
1. 下载 JDK下载 下载地址 Tomcat下载 下载地址 2. 安装配置 JDK安装配置 安装过程不再赘述. 配置: 环境变量: JAVA_HOME,变量值为:C:\JDK(具体请根据JDK ...
- laravel框架总结(九) -- 软删除
当模型被软删除时,它们并不会真的从数据库中被移除.而是会在模型上设置一个 deleted_at 属性并将其添加到数据库.如果对应模型被软删除,则deleted_at字段的值为删除时间,否则该值为空. ...
- 根据osdid 查询磁盘是ssd盘还是sas盘
前置条件: 1.安装LSI的Megacli软件包 Megacli64 2.安装scsi设备的查询工具lsscsi apt-get install lsscsi 步骤: 1.根据osdid 查找 盘 ...
- DbnBase64加密处理
package com.dbn.utils; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; impo ...
- 3.mvc core 文件目录详细的解释
wwwroot 放js css image的文件夹,静态文件. favicon.ico 网站图标.上传文件的话最好在里面新建一个Upload的文件夹进行管理 Controllers 控制器, View ...