LoadRunner的脚本优化时,如何使用参数化?

上一篇 / 下一篇  2022-12-19 17:15:34 / 个人分类:自动化测试

LoadRunner的脚本优化时,有时发送给服务器的请求参数化时,服务器返回的内容也会和参数化的内容相对应,例如发送的请求带有查询key=123,则服务器也会返回含有123相关的内容。这时我们在使用检查点检查服务器参数化返回的数据正确性时,通常也会用到和服务器同样的参数。进入》软件测试社群学习交流   加我VX:atstudy-js 回复“测试”,进入 自动化测试学习交流群~~

这样在每次迭代过程中,每次都会取不同的值,完成检查过程。

但是如果基于实际场景设计的脚本是:在一个迭代周期内,此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”,重新运行了下,发现没有错误了。

编辑 

添加微信:atstudy-js  或者扫描下方二维码,备注“博客”邀请你进入Python自动化测试学习交流群~


TAG:

 

评分:0

我来说两句

Open Toolbar