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数据的原理和具 ...
随机推荐
- Redmine开发帮助
这里先零星记录二次开发用得上的知识点: 1.windows下开发环境,参考此文.最好使用rubyinstaller安装,注意选择版本.或者直接安装railsinstaller. 2.获取自定义内容,参 ...
- 利用python检测色情图片简易实例
import sys import os import _io from collections import namedtuple from PIL import Image class Nude( ...
- Dynamics AX 2012 R2 AIF 内部异常
今天,Reinhard发现某个入站端口,突然一直报错: The server was unable to process the request due to an internal erro ...
- iOS · UILabel加删除线
创建自定义子类DeleteLineLabel,继承自UILabel,然后在自定义子类DeleteLineLabel中 方法一(上下文): - (void)drawRect:(CGRect)rect { ...
- easyui DataGrid 工具类之 WorkbookUtil class
/** * @Title: WorkbookUtil.java * @Description: excel工具类 * @date 2014年5月29日 上午10:36:42 * @version V1 ...
- mac攻略(七) -- 环境变量PATH分析
一.首先需要了解 1>mac 一般使用bash作为默认shell 2>Mac系统的环境变量,加载顺序为: 1.系统级别的 /etc/profile /etc/bashrc /etc/p ...
- Intellij IDEA 配置最简单的maven-struts2环境的web项目
在idea里搭建maven项目 看着网上大神发的各种博客,然后自己搭建出来一个最简单的maven-strtus2项目,供初学者学习 新建project
- web api authentication
最近在学习web api authentication,以Jwt为例, 可以这样理解,token是身份证,用户名和密码是户口本, 身份证是有有效期的(jwt 有过期时间),且携带方便(自己带有所有信息 ...
- Android first--SharedPreferences
public class MainActivity extends Activity { private EditText et_name; private EditText et_pass; ...
- GUI 下
11.6 Swing组件 JButton JLabel JTextField JTextArea JTable JTree publicclass JTableDemo extends JFrame ...