- 相关推荐
如何进行测试方案设计
容量测试是用来研究程序已经加载非常大量的数据后,处理很少量或很大量数据任务时的运行情况。下面请看小编带来的如何进行测试方案设计!
如何进行测试方案设计
一、方法简介
1. 定义
容量测试是用来研究程序已经加载非常大量的数据后,处理很少量或很大量数据任务时的运行情况。这一测试主要关注一次处理合理需求的大量数据时功能的运行情况。
2. 设计方法
系统中有许多功能都需要进行容量测试,比如:在局容量中进行了限定的指标都需要进行容量测试,另外系统经常扩容或者改版,每次扩容和改版都需要进行相应的容量测试。容量测试是用来测试系统已经加载了大量数据的情况下,系统各个功能的运行情况。容量测试有两个关键点:(1)如何加载大容量的数据;(2)加载数据后,需要进行哪些测试。以下用一个配置表的容量测试进行说明。
二、加载大容量数据的方法
添加数据一般需要开发测试脚本,根据数据呈现出的不同规律性,脚本的开发方式也有所差异,下面介绍使用WinRunner开发容量测试脚本的三种方式:
1. 开发结构化脚本进行容量测试
结构化脚本类似于结构化程序设计,利用脚本中的指令控制脚本的执行。这些指令一般是选择结构或者迭代结构。选择控制结构使脚本具有判断功能,最普通的形式是if语句。迭代控制结构可以根据需要重复一条或者几条语句,直到满足重复的次数为止。我们正是利用了WinRunner脚本的能够循环添加数据的功能达到容量测试的目的。结构化脚本适用于所添加的数据具有某种规律性,把数据的这种规律性以脚本的形式设计出来就可以完成数据的添加。
脚本设计步骤如下:
(1)寻找添加数据的规律,容量测试的数据在添加的时候一般都具有规律性,有的以某个关键字递增,有的以某个指标递增,首先把这种规律总结出来;
(2)将数据增加的规律以脚本的形式录制下来;
(3)添加迭代结构和选择控制结构,一般以循环结构满足数据重复添加的需要;
(4)调试并运行脚本,添加数据;
下面以添加No.7路由为例进行说明。
(1)寻找规律。局容量中设定了No.7路由的最大值为255,通过试验,我们发现No.7路由数据以路由号为关键字递增,每次添加路由数据成功后,添加的路由号都被删除,新添加时只需记录先前的位置即可。
(2)录制单次执行的脚本。如下所示:
# Add signaling route
win_mouse_click ("Add signaling route", 165, 46);
win_type ("Add signaling route","Route");
win_mouse_click ("Add signaling route", 193, 154);
(3)添加迭代语句。局容量中No.7路由的最大值为255,我们要将步骤(2)中录制的语句循环执行255次就可以添加255条数据,为此需要在(2)中的脚本上加入控制结构,如下:
For(i=0;i<255;i++)
{
# Add signaling route
win_mouse_click ("Add signaling route", 165, 46);
win_type ("Add signaling route","Route");
win_mouse_click ("Add signaling route", 193, 154);
}
(4)循环执行,添加数据。
2. 数据驱动的容量测试
如果添加的数据没有规律,那么就需要使用数据驱动脚本。数据驱动是指通过读取本地Excel表的方式进行测试。当执行数据驱动脚本时,WinRunner会读取数据表中的每一笔数据,并放入被参数化的地方,然后执行一次,直到把所有的数据都添加完为止。
脚本的设计步骤如下:
(1)将需要添加的数据放入一个Excel表中,表的第一行表示这组数据的名称。表中的数据可以是杂乱无章、毫无规律的数据,WinRunner将读取该表的数据添加到被测系统中;
(2)录制一个添加数据的普通脚本,我们将在这个脚本的基础上构建数据驱动测试;
(3)加上开启及关闭数据表的指令;
(4)加上循环语句,完成读取数据表的每一笔数据的功能;
(5)将脚本中录制的固定值参数化为数据表的字段值;
(6)调试并执行脚本,添加数据;
下面以号码分析为例进行说明。
(1)建立Excel数据表。将需要进行号码分析的数据添加到该表中,注意第一行表示数据的名称,不是真正的`数据。
(2)录制普通脚本。录制号码分析的普通脚本,其中133851就是添加的号码,后面我们将对这个号码参数化,使其能够读取Eecel数据表中的数据。
# Add the Analysed Digit Type5 [Local Network] Entry5
win_mouse_click ("Add the Analysed Digit Type5 [Local Network] Entry5", 174, 25);
win_type ("Add the Analysed Digit Type5 [Local Network] Entry5","133851");
(3)添加开启和关闭数据表的指令,数据表只有在打开的条件下才能够读取数据。
table = "D: tableconfig_table.xls"; 表的路径
rc = ddt_open(table, DDT_MODE_READ);
if (rc!= E_OK && rc != E_FILE_OPEN)
pause("Cannot open table.");
# Add the Analysed Digit Type5 [Local Network] Entry5
win_mouse_click ("Add the Analysed Digit Type5 [Local Network] Entry5", 174, 25);
win_type ("Add the Analysed Digit Type5 [Local Network] Entry5","133851");
ddt_close(table);
注:该步骤也可以使用WinRunner 自带的数据驱动向导进行添加。
(4)添加循环语句。通过循环语句逐句读取数据表中的数据,完成数据的自动添加。
table = "D: tableconfig_table.xls";
rc = ddt_open(table, DDT_MODE_READ);
if (rc!= E_OK && rc != E_FILE_OPEN)
pause("Cannot open table.");
ddt_get_row_count(table,table_RowCount);
for(table_Row = 1; table_Row <= table_RowCount; table_Row ++)
{
ddt_set_row(table,table_Row);
# Add the Analysed Digit Type5 [Local Network] Entry5
win_mouse_click ("Add the Analysed Digit Type5 [Local Network] Entry5", 174, 25);
win_type ("Add the Analysed Digit Type5 [Local Network] Entry5","133851");
}
ddt_close(table);
(5)参数化。将固定值133851替换为表的Digit参数,这样每一次循环就可以读取数据表的一个值,而不是原先的固定值了。
table = "D: tableconfig_table.xls";
rc = ddt_open(table, DDT_MODE_READ);
if (rc!= E_OK && rc != E_FILE_OPEN)
pause("Cannot open table.");
ddt_get_row_count(table,table_RowCount);
for(table_Row = 1; table_Row <= table_RowCount; table_Row ++)
{
ddt_set_row(table,table_Row);
# Add the Analysed Digit Type5 [Local Network] Entry5
win_mouse_click ("Add the Analysed Digit Type5 [Local Network] Entry5", 174, 25);
win_type ("Add the Analysed Digit Type5 [Local Network] Entry5", ddt_val(table,"Digit"));
}
ddt_close(table);
(6)调试并执行步骤5中的脚本,即可完成数据的自动添加。
3. 结构化脚本和数据驱动相结合
如果添加的数据跟测试环境(如局向号、版本号等)有很大的关系,但是测试环境一旦确定下来,其数据又有很大的规律性,在这种情况下添加数据就需要将上述的两种方法结合起来开发脚本。使用数据驱动应对测试环境的变化,使用结构化脚本应对测试数据的变化,具体的使用方法2.1和2.2中已经说明,在此不再赘述。
三、 加载数据后的测试项
容量测试需要测试的内容:一是大容量的数据是否可以加载成功;二是加载大容量数据后系统是否可以正常运行。第二点需要根据系统的特点不断的进行整理总结,如下是一个配置表加满后的测试设计项目:
1. 能够添加最大的容量数据,在达到最大容量时功能能够正常运行;
2. 达到最大容量后,该功能的显示、修改和删除正常;
3. 超出容量最大值时会有限制,且提示已经达到了最大容量;
4. 能够进行备份、恢复和数据同步,同步后系统能够稳定的工作;查看前台表,数据跟后台一致,尤其是最后的几条记录;
5. 关联功能的测试,添加大容量的数据后,与该功能关联的功能能够正常使用;
6. 进行主备倒换和重启,单板能够启动并运行正常;
7. 日志管理中没有异常的日志信息;
8. 告警管理中,如果有相关的告警其告警信息正确;
9. 加满数据后不影响后台的使用,后台的CPU和内存冲高后可以恢复;
10. 前台的CPU和内存冲高后可以恢复;
11. 达到最大容量后,删除部分排序在前的数据,再次增加:
(1)配置数据达到最大容量;
(2)删除部分中间的数据或者排序在前面的数据;
(3)再次增加数据,测试是否能够增加成功。
四、总结
容量测试不仅仅是添加数据就可以了,要进行全面、深入的容量测试,必须在加载数据的基础上从多个不同的角度测试系统。本文给出了加载数据的方法和加载数据后的测试样例,实际应用中需要根据不同系统的特点进行不同的设计。