在LoadRunner的脚本优化时,有时发送给服务器的请求参数化时,服务器返回的内容也会和参数化的内容相对应,例如发送的请求带有查询key=123,则服务器也会返回含有123相关的内容。这时我们在使用检查点检查服务器参数化返回的数据正确性时,通常也会用到和服务器同样的参数。
这样在每次迭代过程中,每次都会取不同的值,完成检查过程。
但是如果基于实际场景设计的脚本是:在一个迭代周期内,此action需要循环多次,于是引入了block块。将此action加入到一个block块中,设置循环次数为2。再次运行一下,得到这样的结果:
可以发现:在每个ITerations时,参数化的值都会更新,但是在单个ITerations的多次block循环时,每次取得的参数化的值是一样的,问题来了:如果让每次block块的循环也取得不一样的值呢?
查了下资料,发现通过参数化的设置可以做到。
打开参数化设置框
其中 Update value 提供了三个可选择方式:
Each ITeration:每次迭代更新参数值。
Each occurrence:每次出现此参数时,更新此参数值。
Once:只取一次,一直这样用下去。
看到这里后,果断使用 Each occurrence 方式,坐等运行大吉啦~
红红的提示告诉我,脚本没有跑过,仔细看了下,发现了问题原因:
由于参数化的策略是每次出现都会重新取值,这样在 find 函数和真正调用的函数中,都会调用不同的值,于是就会出现检查的值和实际运行的值总是取的不同的情况。
那这种情况应该怎么破呢?
又要用参数化,但检查的函数和运行的函数要用同一参数,但是不能用同一参数配置。可以用以下方法解决:
对检查函数重新定义一个参数化变量“check”,在其参数配置中如下设置:
选择需要运行的参数化数据表
Select next row 策略使用“Same line as NewParam”
重新运行了一下,发现还是会报错:
分析了下,由于 check 是 same line wITh “NewParam”,而 NewParam 是后运行的,这样就会导致了 check 总是会慢半拍。于是将这两个变量对调了一下:check 变量使用参数化并 Update value=Each occurrence,NewParam 变量 same line wITh “check”,重新运行了下,发现没有错误了。
最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:【保100%免费】
软件测试面试小程序
被百万人刷爆的软件测试题库!!!谁用谁知道!!!全网最全面试刷题小程序,手机就可以刷题,地铁上公交上,卷起来!
涵盖以下这些面试题板块:
1、软件测试基础理论 ,2、web,app,接口功能测试 ,3、网络 ,4、数据库 ,5、linux
6、web,app,接口自动化 ,7、性能测试 ,8、编程基础,9、hr面试题 ,10、开放性测试题,11、安全测试,12、计算机基础
文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片领取。