51Testing软件测试论坛

标题: LR 关于 “关联函数” 的一个经验分享! [打印本页]

作者: maqi5630    时间: 2015-12-10 18:01
标题: LR 关于 “关联函数” 的一个经验分享!
本帖最后由 maqi5630 于 2015-12-11 11:53 编辑
首先说明本人小菜鸟一个,刚学习LR,遇到了一个关于关联函数的问题,折磨我两天,最终,终于解决了,在此分享自己的一个小小的经验,不足之处大神勿喷!首先感谢本站的@远方的小企鹅对我的帮助!
1、问题概要:
公司让我做一个pos系统的性能测试!就是一个美容商家用的客户管理系统!B/S架构![attach]98745[/attach]就是这么一个系统!按照公司要求的场景流程,我进行了脚本录制!登录系统--开单(选择客户-选择产品-支付方式-提交订单-完成订单)--注销系统!录制都没有问题!然后对录制的脚本进行回放,回放后问题出现了,在录制的过程我订单明明是已经付款的订单,但是回放后查看系统生成的订单却是未付款的!所以肯定是不符合场景需求的!于是转换录制过程中的开单流程,但是试来试去还是不行!


2、问题解析:
于是上网查阅了相关资料,原因是因为录制脚本中的某个参数在回放的时候与服务器返回的参数不一样了,所以不管怎么样录制都不会生成付款订单,设计的到参数就需要对脚本进行参数化设置,这里就要用关联函数(我这里主要使用的手动关联)了,关联函数的作用就是用来将脚本中固话的参数值用函数代替,这样当服务器返回某个值得时候就可以自动获取自动替换了,用了网上的各种办法和在本站发帖终于知道了原来是脚本中的订单id(oid后同) 服务器每次返回的oid值都不一样,所以我在录制好了的脚本中手动的将出现oid值的地方进行了替换(因为知道oid是以每次1递增的所以可知道下一个oid是多少),替换完后对脚本回放,果然不出所料回放后系统生成了已付款的订单了,所以可以锁定oid需要关联!



3、问题解决:
既然知道了oid的问题,就需要对oid进行关联了,因为本人菜鸟,所以我主观的认为,脚本中第一次出现oid信息的地方应该就是 服务器返回的oid值,于是用CTRL + F[attach]98746[/attach] 在脚本中查找,找到脚本中第一个出现oid的地方也就是如图所示[attach]98747[/attach]的地方添加了关联函数,添加完成后,进行回放,结果可想而知,失败,日志中还出现了报错(我也看不懂是什么原因。。。哈哈。。。),然后又进行了各种搜索,群里提问,有的人说要在TREE视图下查找,
[attach]98748[/attach]
于是打开tree视图,看到一片茫然,哈哈,经过小企鹅的帮助(感谢小企鹅呀,哈哈哈),说是在http view 视图 的 response 中查找,
[attach]98749[/attach]这里才是服务返回给你的值,然后经过各种摸索终于找到了 在如图所示
[attach]98751[/attach]的地方找到了oid值,我一看这个值这么标准 有  name=oid  和 value=203540,又是在response 中找到的,顿时大喜,没错肯定是这个值了 于是如图所示,[attach]98742[/attach]用这种办法创建了关联,这里其实有点半自动创建关联的感觉,网上说这是LR11 有的一种创建办法,创建好了之后,回放脚本,结果: **又失败了,又来询问群里人,说是设置左边界值不够长,和下面的 cid 重复了 要加长左边界值,于是将前面的 name=“oid”  字串加进去了,回放,失败!这时候小企鹅又出现了,和他讨论他认为 这个值可能不是服务器返回的oid值,于是乎又是一通翻来覆去的寻找,终于找到了如图所示:[attach]98743[/attach]的oid值,这里虽然没有什么 name=oid   value=。。。,没有之前的找的oid值看上去那么标准,不过这才是真正的服务器返回的oid值,于是乎按照之前的办法选中该值,右击关联,[attach]98744[/attach],好了之后回放,奇迹出现了:回放成功,打开后台查看订单,生成了付款订单,哈哈哈哈(让我吃口屎,冷静冷静。。)








tip:
1,查找服务器返回值应该在TREE视图下,(有的人是在“生成日志“下查找的)查找该值,有没有大神能够指明下,有什么办法能够快速准确的查找到 服务器的真正的返回值?用LR自带的对比工具吗?不过我用那个也是一头雾水好多地方都不同!
2,创建关联函数的时候左右边界值要定义好,所谓的左右边界值,就是  服务器返回值 左边 和  右边 的字符串,注意 ”  >  之类的特殊字符,需要用转义字符 \
3,查看脚本,确认脚本中所有涉及到了服务器返回值的地方,都用关联函数名替换了!

再次申明:本人菜鸟,第一次分享小小经验,不足之处,大神勿喷,望楼下大神指正补充!







作者: 远方的小企鹅    时间: 2015-12-11 13:19
tree和生成日志下我都 会去找
作者: pipilingke    时间: 2015-12-11 15:53
试试,
作者: wangyinhang    时间: 2015-12-14 11:34
顶一个!!!谢谢楼主分享,专研精神值得我们学习
作者: fhhh_eyou    时间: 2015-12-14 11:38
多多去http://bbs.51testing.com/search. ... s&kw=LoadRunner
看一下相关学习资料,谢谢!
作者: fhhh_eyou    时间: 2015-12-14 11:38
多多去http://bbs.51testing.com/search. ... s&kw=LoadRunner
看一下相关学习资料,谢谢!
作者: sss556    时间: 2015-12-22 18:08
楼主 ,看了下两个位置 ,数值 都是203540 。。我感觉只要左右边界设置对了。两个地方取值回放应该都正常。
作者: maqi5630    时间: 2015-12-23 09:40
sss556 发表于 2015-12-22 18:08
楼主 ,看了下两个位置 ,数值 都是203540 。。我感觉只要左右边界设置对了。两个地方取值回放应该都正常。

应该是不行的,一定要取服务器返回给你的那个值,不然的话你取下面那个值实际上已经是在服务器返回给你之后的值了。
作者: hy_安静    时间: 2016-6-14 17:00
请问要如何快速确定服务器返回值,好多地方都有,挨个试了取到值都是null
作者: hy_安静    时间: 2016-6-14 17:01
maqi5630 发表于 2015-12-23 09:40
应该是不行的,一定要取服务器返回给你的那个值,不然的话你取下面那个值实际上已经是在服务器返回给你之 ...

怎么快速确定服务器返回值,挨个查找尝试都失败
作者: hy_安静    时间: 2016-6-14 17:02
maqi5630 发表于 2015-12-23 09:40
应该是不行的,一定要取服务器返回给你的那个值,不然的话你取下面那个值实际上已经是在服务器返回给你之 ...

怎么快速确定服务器返回值,挨个查找尝试都失败




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2