计算器功能测试.docx
《计算器功能测试.docx》由会员分享,可在线阅读,更多相关《计算器功能测试.docx(20页珍藏版)》请在冰豆网上搜索。
计算器功能测试
实验三计算器功能测试
预习报告
(一)实验目的
1.理解并掌握WinRunner的测试流程;
2.掌握掌握数据驱动测试脚本编写方法;
(二)实验内容
1.识别windows计算器GUI对象;
2.编写数据驱动测试脚本,分别测试windows计算器的加、减、乘、除运算。
(三)实验要求
1.分别为windows计算器的加、减、乘、除运算设计测试用例,填写用例设计表;
2.编写数据驱动测试脚本,使用Debug模式对脚本除错;
实验报告
(一)实验步骤
一.加法
代码:
GUI_load("D:
\\ProgramFiles\\MercuryInteractive1\\WinRunner\\dat\\calc.gui");
set_window("‹¡{—Vh");
table="‹¡{—Vh.xls";
rc=ddt_open(table,DDT_MODE_READ);
if(rc!
=E_OK&&rc!
=E_FILE_OPEN)
{
pause("Cannotopentable.");
}
ddt_get_row_count(table,table_RowCount);
for(table_Row=1;table_Row<=table_RowCount;table_Row++)
{
ddt_set_row(table,table_Row);
button_press("C");
additive1=ddt_val(table,"additive1");
additive2=ddt_val(table,"additive2");
add1=length(additive1);
while(add1>0)
if(substr(additive1,add1,1)=="")
add1--;
elsebreak;
i=1;
while(iif(substr(additive1,i,1)=="")
i++;
elsebreak;
additive11=substr(additive1,i,add1);
for(i=1;i<=length(additive11);i++)
button_press(substr(additive11,i,1));
button_press("+");
if(additive2=="")
{additive2=additive11;}
else
{
add2=length(additive2);
while(add2>0)
if(substr(additive2,add2,1)=="")
add2--;
elsebreak;
i=1;
while(iif(substr(additive2,i,1)=="")
i++;
elsebreak;
additive22=substr(additive2,i,add2);
for(i=1;i<=length(additive22);i++)
button_press(substr(additive22,i,1));
}
button_press("=");
edit_get_text("Edit",result);
len=length(result);
while(len>0)
if(substr(result,len,1)==""||substr(result,len,1)==".")
len--;
elsebreak;
i=1;
while(iif(substr(result,i,1)=="")
i++;
elsebreak;
result=substr(result,i,len);
if(int(additive1+additive2)==int(result))
tl_step("testcase"&table_Row,0,additive1&"+"&additive2&"="&(additive1+additive2)&"isequalwithresult"&result&",correct.");
else
tl_step("testcase"&table_Row,1,additive1&"+"&additive2&"="&(additive1+additive2)&"isnotequalwithresult"&result&",incorrect.");
}
ddt_close(table);
结果:
二.减法
代码:
GUI_load("D:
\\ProgramFiles\\MercuryInteractive1\\WinRunner\\dat\\calc.gui");
set_window("‹¡{—Vh");
table="QÏ.xls";
rc=ddt_open(table,DDT_MODE_READ);
if(rc!
=E_OK&&rc!
=E_FILE_OPEN)
pause("Cannotopentable.");
ddt_get_row_count(table,table_RowCount);
for(table_Row=1;table_Row<=table_RowCount;table_Row++)
{
ddt_set_row(table,table_Row);
button_press("C");
additive1=ddt_val(table,"additive1");
additive2=ddt_val(table,"additive2");
add1=length(additive1);
while(add1>0)
if(substr(additive1,add1,1)=="")
add1--;
elsebreak;
i=1;
while(iif(substr(additive1,i,1)=="")
i++;
elsebreak;
additive11=substr(additive1,i,add1);
if(substr(additive11,1,1)=="-")
{
for(i=2;i<=length(additive11);i++)
button_press(substr(additive11,i,1));
button_press("+/-");
}
else
for(i=1;i<=length(additive11);i++)
button_press(substr(additive11,i,1));
button_press("-");
if(additive2=="")
{additive2=additive11;}
add2=length(additive2);
while(add2>0)
if(substr(additive2,add2,1)=="")
add2--;
elsebreak;
i=1;
while(iif(substr(additive2,i,1)=="")
i++;
elsebreak;
additive22=substr(additive2,i,add2);
if(substr(additive22,1,1)=="-")
{
for(i=2;i<=length(additive22);i++)
button_press(substr(additive22,i,1));
button_press("+/-");
}
else
for(i=1;i<=length(additive22);i++)
button_press(substr(additive22,i,1));
button_press("=");
edit_get_text("Edit",result);
len=length(result);
while(len>0)
if(substr(result,len,1)==""||substr(result,len,1)==".")
len--;
elsebreak;
i=1;
while(iif(substr(result,i,1)=="")
i++;
elsebreak;
result=substr(result,i,len);
add=additive1-additive2;
len=length(add);
while(len>0)
if(substr(add,len,1)==""||substr(add,len,1)==".")
len--;
elsebreak;
i=1;
while(iif(substr(add,i,1)=="")
i++;
elsebreak;
add=substr(add,i,len);
if(add==result)
tl_step("testcase"&table_Row,0,additive1&"-"&additive2&"="&(additive1-additive2)&"isequalwithresult"&result&",correct.");
else
tl_step("testcase"&table_Row,1,additive1&"-"&additive2&"="&(additive1-additive2)&"isnotequalwithresult"&result&",incorrect.");
}
ddt_close(table);
结果:
三.乘法
代码:
GUI_load("D:
\\ProgramFiles\\Mercury\\Interactive1\\WinRunner\\dat\\calc.gui");
set_window("计算器");
table="date7.xls";
rc=ddt_open(table,DDT_MODE_READ);
if(rc!
=E_OK&&rc!
=E_FILE_OPEN)
pause("Cannotopentable.");
ddt_get_row_count(table,table_RowCount);
for(table_Row=1;table_Row<=table_RowCount;table_Row++)
{
ddt_set_row(table,table_Row);
ddt_set_row(table,table_Row);
button_press("C");
additive1=ddt_val(table,"additive1");
additive2=ddt_val(table,"additive2");
additi1=length(additive1);
while(additi1>0)
if(substr(additive1,additi1,1)=="")
additi1--;
elsebreak;
i=1;
while(iif(substr(additive1,i,1)=="")
i++;
elsebreak;
t_additive1=substr(additive1,i,additi1);
if(substr(t_additive1,1,1)=="-")
{
for(i=2;i<=length(t_additive1);i++)
button_press(substr(t_additive1,i,1));
button_press("+/-");
}
else
for(i=1;i<=length(t_additive1);i++)
button_press(substr(t_additive1,i,1));
button_press("*");
if(additive2=="")
{additive2=t_additive1;}
additi2=length(additive2);
while(additi2>0)
if(substr(additive2,additi2,1)=="")
additi2--;
elsebreak;
i=1;
while(iif(substr(additive2,i,1)=="")
i++;
elsebreak;
t_additive2=substr(additive2,i,additi2);
if(substr(t_additive2,1,1)=="-")
{
for(i=2;i<=length(t_additive2);i++)
button_press(substr(t_additive2,i,1));
button_press("+/-");
}
else
for(i=1;i<=length(t_additive2);i++)
button_press(substr(t_additive2,i,1));
button_press("=");
edit_get_text("Edit",result);
len=length(result);
while(len>0)
if(substr(result,len,1)==""||substr(result,len,1)==".")
len--;
elsebreak;
i=1;
while(iif(substr(result,i,1)=="")
i++;
elsebreak;
result=substr(result,i,len);
add=additive1*additive2;
len=length(add);
while(len>0)
if(substr(add,len,1)==""||substr(add,len,1)==".")
len--;
elsebreak;
i=1;
while(iif(substr(add,i,1)=="")
i++;
elsebreak;
add=substr(add,i,len);
if(add==result)
tl_step("testcase"&table_Row,0,additive1&"*"&additive2&"="&(additive1*additive2)&"isequalwithresult"&result&",correct.");
else
tl_step("testcase"&table_Row,1,additive1&"*"&additive2&"="&(additive1*additive2)&"isnotequalwithresult"&result&",incorrect.");
}
ddt_close(table);
结果:
四.除法
代码:
GUI_load("C:
\\ProgramFiles\\MercuryInteractive\\WinRunner\\dat\\calc.gui");
set_window("计算器");
table="default.xls";
rc=ddt_open(table,DDT_MODE_READ);
if(rc!
=E_OK&&rc!
=E_FILE_OPEN)
pause("Cannotopentable.");
ddt_get_row_count(table,table_RowCount);
for(table_Row=1;table_Row<=table_RowCount;table_Row++)
{
ddt_set_row(table,table_Row);
button_press("C");
additive1=ddt_val(table,"additive1");
additive2=ddt_val(table,"additive2");
if(length(additive1)==0)
additive1=0;
else
len1=length(additive1);
while(len1>0)
if(substr(additive1,len1,1)=="")
len1--;
else
break;
j=1;
while(jif(substr(additive1,j,1)=="")
j++;
else
break;
additive3=substr(additive1,j,len1);
additive1=substr(additive1,j,len1);
#if(length(additive2)==0)
#additive2=additive3;
#else
len2=length(additive2);
while(len2>0)
if(substr(additive2,len2,1)=="")
len2--;
else
break;
i=1;
while(iif(substr(additive2,i,1)=="")
i++;
else
break;
additive2=substr(additive2,i,len2);
additive4=substr(additive2,i,len2);
if(length(additive2)==0)
{
additive2=additive3;
additive4=additive3;
}
for(j=1;j<=length(additive1);j++)
button_press(substr(additive1,j,1));
button_press("/");
if(substr(additive2,1,1)=="-")
{
additive2=substr(additive2,2,len2);
for(i=1;i<=length(additive2);i++)
button_press(substr(additive2,i,1));
button_press("+/-");
}
else
for(i=1;i<=length(additive2);i++)
button_press(substr(additive2,i,1));
button_press("=");
edit_get_text("Edit",result);
len=length(result);
while(len>0)
if(substr(result,len,1)==""||substr(result,len,1)==".")
len--;
else
break;
i=1;
while(iif(substr(result,i,1)=="")
i++;
else
break;
result=substr(result,i,len);
if(additive4==0)
tl_step("testcase"&table_Row,0,"theresultiseror输入错误correct");
else
{
if((additive3/additive4)==result)
tl_step("testcase"&table_Row,0,"theresultis"&(additive3/additive4)&"and"&(result)&",correct");
else
tl_step("testcase"&table_Row,1,"theresultis"&(additive3/additive4)&"and"&(result)&",incorrect");
}
}
ddt_close(table);
结果:
(二)实验体会
通过此实验让我们理解并掌握WinRunner的测试流程;掌握掌握数据驱动测试脚本编写方法;我们更加认识windows计算器GUI对象;深入了解测试用例的划分,分别为windows计算器的加、减、乘、除运算设计测试用例。
编写测试脚本,使用Debug模式对脚本除错;