您的位置首页百科知识

QTP脚本下标越界的解决办法(图文详解)

QTP脚本下标越界的解决办法(图文详解)

的有关信息介绍如下:

QTP脚本下标越界的解决办法(图文详解)

软件测试人员在脚本回放过程中可能会遇到界面弹出一个错误提示框提示“下标越界”通常刚接触QTP学习的朋友都会不清楚所以然,为什么会出现下标越界?检查多久也没有发现哪里有下标越界了,为什么会提示下标越界?本次小编将为大家进行详细的讲解,并且亲自制造一个下标越界,这样读者就能够清楚的了解到什么是下标越界?发生下标越界后应如何进行考虑?以及下标越界的解决办法。让读者的脚本运行起来更加畅通无阻,轻轻松松的完成QTP自动化的操作,减少因为错误排查花费的时间,提高工作上的效率。

VBS(VBScript)作为一种脚本语音,很多时候大家将VBS看作是VB语言的一个简化版,它们之间存在着继承的关系,在这里小编为什么要提到VB语言呢?因为小编即将会用VB语言里面的东西来阐述下标越界。

我们通常所遇到的下标越界发生在数组的使用中,所谓下标对应的还有上标,读者可以把上标与下标之间看作是一个范围,而发生下标越界,就是操作者引用了不存在的数组元素,超出的数组元素的范围,从而引发下标越界。

下面我为大家写一个简单的脚本例子,来重现下标越界。

例子:

Dim array_test '定义一个数组

array_test=array("张三","李四","王二") ’为数组赋值

msgbox array_test(3) ’打印出数组第3个元素

读者从步骤3的例子中有没有发现什么问题?小编第一步就是定义了一个数组名字叫array_test,第二步为这个数组赋值3个数组元素,第三步打印出第3个数组元素。但是脚本运行却发生错误,提示"下标越界"如下图:

数组明明定义了3个数组元素,为什么将第三个元素打印出来会提示错误呢?接着读者就跟随小编的脚步进行排查一下吧。

array_test=array("张三","李四","王二")

排查方法:

Dim array_test

array_test=array("张三","李四","王二")

For i=1 to 3 '循环打印出数组中的元素

print array_test(i)&i

Next

******************************************

打印出的结果:

李四1

王二2

解说:

大家从打印出的结果可以看出循环打印的第一个数组元素是“李四”,但是从数组定义中“李四”应该是第二个元素,说到这里读者可能就会明白脚本在读取数组时是从数组0开始读取,所以在循环1到3时就只打印了数组第2个和第3个元素。

修改办法:

将上面给出的例子中的打印msgbox array_test(3)改为msgbox array_test(2)即可以解决下标越界的问题。

Dim array_test '定义一个数组

array_test=array("张三","李四","王二") ’为数组赋值

msgbox array_test(2) ’打印出数组第3个元素

循环是由0开始

打印数组元素的位置应减1