软件测试工具LR自动关联解说
关联的原理。当客户端给服务器发送请求后,服务器会给客户端返回一些数据。而这些数据中的某个部分,在你下面的脚本中会用到.这是你需要把这个数据保存起来备用。举一个很简单的例子,就可以说明这种情况。比如说你给服务器提交了一笔定单数据,服务器接受到后,会自动生成一个定单号。而你下面的脚本中,需要按定单号进行查询。这时你就需要用到关联了。
使用关联的步骤:
1、添加web_reg_save_param函数,特别需要注意的是,这个函数一定要写返回数据页面的前面。 假设 web_submit_form("createTradeBySeller.htm",
"Snapshot=t6.inf",
ITEMDATA,
"Name=_fmt.c._0.g", "Value=商品名称", ENDITEM,
"Name=_fmt.c._0.go", "Value=0.01", ENDITEM,
"Name=_fmt.c._0.goo", "Value=1", ENDITEM,
"Name=_fmt.c._0.ga", "Value=商品购买", ENDITEM,
"Name=_fmt.c._0.d", "Value=商品展示网址", ENDITEM,
"Name=_fmt.c._0.good", "Value=商品说明", ENDITEM,
"Name=_fmt.c._0.w", "Value=S", ENDITEM,
"Name=_fmt.c._0.tr", "Value=", ENDITEM,
"Name=_fmt.c._0.t", "Value=1", ENDITEM,
LAST);
这个页面提交后,会生成定单号,那么web_reg_save_param(参数名,
"LB=,
"RB=,
LAST);一定要放到这个命令的前面。
2、在需要使用的地方加{参数名} 就可以引用你保存的数据了。
我觉得LR自动关联也可以这样尝试一下
内容:
1.关联的介绍
2.关联的目的
3.一般的关联步骤
4.设置实例网站
5.进行自动关联
6.常见的需要关联的情景
关联的介绍
关联是LR经常会用到的操作。
LR录制的脚本只是忠实的记录了所有从客户端发送到服务器的数据,并在脚本回放的时候按照录制时的顺序将录
制下来的数据重新发送出去。
但是,实际上许多的系统都是采用SessionID或SeqID等方法来标识不同的任务和数据包,应用在每次运行时发
送的数据并不完全相同。
所以,为了让脚本能够支持测试的需求,就必然要运用某种机制来对脚本录制的数据进行处理。
总之一句话:通过关联可以在测试中保持动态值。
关联的目的
简化或优化代码
例如,如果一次执行一系列的相关查询,你的代码可能会变得很长,为了减少代码的大小,可以嵌套查
询,但这样会失去准确性,而且代码会变得复杂和难以理解。通过关联语句,不需要嵌套就可以连接查
询。
用于动态数据
许多应用程序和网站按照当前日期和时间标识会话。如果尝试重播脚本,该操作将会失效,因为当前的
时间和录制时间不同。通过关联数据可以保存动态数据,并且在整个方案运行过程中使用这些数据。
容纳唯一数据记录
某些应用程序(如数据库)要求使用唯一的值,录制期间唯一的值在回放的过程中将不在唯一,例如,
你录制了打开一个新的银行账户的过程,每个账户都分配了用户未知的唯一编号,录制期间,此账号将
插入具有唯一关键字约束的表中,如果尝试按所录制的那样运行脚本,该操作将尝试用录制的编号而不
是新的唯一编号创建账户,结果将产生错误,因为该账户已经存在。如果在运行脚本时发生了错误,请
在错误的部分检查脚本。大部分情况下,通过关联查询功能可以解决该问题,关联查询将一个语句的结
果用作另一个语句的输入
一般的关联步骤
从服务器返回的数据中选择需要进行关联的数据
将该数据存入脚本的一个参数中
将脚本中需要用到该数据的地方用参数来替换
Tip:对于WEB来说,一般会用一个hidden的field存放
设置实例网站
为了让示例网站在每次登陆时创建不同的ID,我们需要设置一下
在网站的首页中进行设置,选中“Set LOGIN form's action tag to an error page”
进行自动关联
Tools -> Rcording Options
设置完成后录制登陆--退出过程
利用LR自带的自动关联进行关联
常见的需要关联的情景
登陆操作
先查后修改,先查后删除
并发控制:防止两个用户同时进行修改或删除一条记录