计算器实例
qtp:
1、实现随机个位数相加
2、实现随机得到的多位数相加
3、实现四则运算的随机选择
4、数据长度 1~6 位(整数,小数(多种情况))
5、实现小数
6、实现正负数
7、实现结果精度校验(校验到 4 位)
8、实现 10 次循环
9、特殊情况处理(除数为 0)
方法一:
p = randomnumber(1,6)
For i=0 to p-1
'第一个数
控制在一个六位数字中
'产生一个随机的 p-1 位数字
window("计算器").WinButton("num").Click
'随机的添加小数点
Next
For i=0 to randomnumber(0,1)
window("计算器").WinButton(".").Click
Next
For i=0 to randomnumber(0,4 - p )
window("计算器").WinButton("num").Click
next
For i=0 to randomnumber(0,1)
window("计算器").WinButton("+/-").Click
Next
'随机添加正负数
num1=window("计算器").WinEdit("Edit").GetROProperty("text")
'记录第一个数字
str2 = randomnumber(1,4)
select
Case
str2
'str 为计算第 1 次运算 双目运算
case "1" window("计算器").WinButton("+").Click
case "2" window("计算器").WinButton("-").Click
case "3" window("计算器").WinButton("*").Click
Case "4" window("计算器").WinButton("/").Click
End Select
p2 = randomnumber(1,5)
For i=0 to p2-1
'随机产生的第二个数
window("计算器").WinButton("num").Click
next
For i=0 to randomnumber(0,1)
window("计算器").WinButton(".").Click
Next
For i=0 to randomnumber(0,4 -p2)
window("计算器").WinButton("num").Click
Next
For i=0 to randomnumber(0,5) step 1
window("计算器").WinButton("+/-").Click
Next
num2=window("计算器").WinEdit("Edit").GetROProperty("text")
'记录第二个数
'确定除数的是否为零
If
str2 =4 and num2=0 Then
msgbox "除数不能为零!!"
End If
window("计算器").WinButton("=").Click
num3=window("计算器").WinEdit("Edit").GetROProperty("text")
num3 =cdbl(num3)
'记录计算结果
'检验计算是否正确
num1=cdbl(num1)
num2=cdbl(num2)
If
str2=1 and (num1+num2-num3)>0.001 Then
else
If
str2= 2 and ((num1- num2 )-num3)>0.001 Then
msgbox
"减法运算出错"
Reporter.ReportEvent micFail, "计算出错", ""
else
If
str3 = 3 and( (num1* num2) -num3)>0.001 Then
msgbox "乘法运算出"
else
If
str2=4 and( (num1/num2) -num3) >0.001 Then
msgbox "除法运算出错"
end if
end if
end if
End If
'记录第二次运算的结果
Select Case str2
Case "1" print num1 &"+"& num2&"=" &num3
Case "2"print num1 &"-"& num2 &"=" &num3
Case "3" print num1 &"*"& num2 &"=" &num3
Case "4"print num1 &"/"& num2 &"=" &num3
End Select
wait(2)
window("计算器").WinButton("C").Click
window("计算器").Close
方法二:
action=1
While
action < 10
If Window("计算器").Exist Then
else
SystemUtil.Run "C:\WINDOWS\system32\calc.exe"
End If
B1=randomnumber(1,6)
P1=randomnumber(1,B1+1)'小说点位置(从左至右)
If P1=1 Then
B1=B1-1
End If
For i=1 to B1
If
i=P1 Then
Window("计算器").WinButton(".").Click
End If
Window("计算器").WinButton("rand_num1").Click
next
'随机正负
ZF1=randomnumber(0,1)
If
Window("计算器").WinButton("+/-").Click
End If
ZF1 =1 Then
num1=Window("计算器").WinEdit("Edit").GetROProperty("text")
print "num1="&num1
'随机运算符
oper=randomnumber(0,3)
Select Case oper
Case 0 Window("计算器").WinButton("+").Click
Case 1 Window("计算器").WinButton("-").Click
Case 2 Window("计算器").WinButton("*").Click
Case 3 Window("计算器").WinButton("/").Click
End Select
If oper=0 Then
print "oper:+"
elseif oper=1 then
print "oper:-"
elseif oper=2 then
print "oper:*"
elseif oper=3 then
print "oper:/"
End If
B2=randomnumber(1,6)
P2=randomnumber(1,B2+1)
If P2=1 Then
B2=B2-1
End If
For
i=1 to B2 step 1
If
Then
Window("计算器").WinButton(".").Click
i=P2
End If
Window("计算器").WinButton("rand_num2").Click
Next
'随机正负
ZF2=randomnumber(0,1)
If
ZF2=1 Then
Window("计算器").WinButton("+/-").Click
End If
num2=Window("计算器").WinEdit("Edit").GetROProperty("text")
print
'Reporter.ReportEvent micPass, "第二个随机产生的值", num2
"num2=" &num2
O=(num2=0 and oper=3)
(O=true) Then
If
print "除数不能为 0"
end if
if(O=false) then
Window("计算器").WinButton("=").Click
result=Window("计算器").WinEdit("Edit").GetROProperty("text")
print
"result=" &result
num1=CDbl(num1)
num2=CDbl(num2)
result=CDbl (result)
If oper =0 Then
x=num1+num2
abs(result-x) >0.0001 Then
If
print "加法错误!"
else print "加法正确!"
End If
End If
If oper =1 Then
x=num1-num2
If
abs(result-x) >0.0001 Then
print "减法法错误!"
else print "减法正确!"
End If
End If
If oper =2 Then
x=num1*num2
If
abs(result-x) >0.0001 Then
print "乘法错误!"
else print "乘法正确!"
End If
End If
If oper =3 Then
x=num1/num2
If
abs(result-x) >0.0001 Then
print "除法错误!"
else print "除法正确!"
End If
End If
End If
Window("计算器").WinButton("C").Click
action=action+1
Wend
print "一共进行:"&action&"次测试"
方法三:
For j = 1 to 10
If window("计算器").Exist(2)Then
else SystemUtil.Run "E:\Tool of Testing\QTP10.0\calc.exe"
End If
'随机选择 1 到 4 当中任意一个数
rand_num_lenth1 = RandomNumber(1, 6)'随机选择第一个数的位数,不大于 6 位
print "rand_num_lenth1="&rand_num_lenth1'以文本形式显示出来
rand_num_lenth2 = RandomNumber(1, 6)'随机选择第二个数的位数,不大于 6 位
print "rand_num_lenth2="&rand_num_lenth2
rand_num = RandomNumber(1,4)
print "rand_num="&rand_num
rand_num_point1 = RandomNumber(0,rand_num_lenth1+1)'小数点所在的数值位,0 代表没有
小数点
print "rand_num_point1="&rand_num_point1
rand_num_point2 = RandomNumber(0,rand_num_lenth2+1)'小数点所在的数值位,0 代表没有
小数点
print "rand_num_point2="&rand_num_point2
rand_num1 = RandomNumber(0,1)'0 表示不点击正负号,数值位正数,1 表示点击正负号,数
值位负数
print "rand_num1="&rand_num1
rand_num2 = RandomNumber(0,1)'0 表示不点击正负号,数值位正数,1 表示点击正负号,数
值位负数
print "rand_num2="&rand_num2
if rand_num_lenth1=1 then
rand_num_lenth1= rand_num_lenth1-1
end if
For i = 1 to rand_num_lenth1
If rand_num_point1 = i Then
window("计算器").WinButton(".").Click
End If
window("计算器").WinButton("rand_num_action").Click'获得第一个随机数
Next
If rand_num_point1= i+1 Then
window("计算器").WinButton(".").Click
End If
If rand_num1 = 1 Then
window("计算器").WinButton("+/-").Click
End If
rand_num_get1 = window("计算器").WinEdit("Edit")GetROProperty("text")'获取输入的第一个
数
randomnumber1 = Cdbl (rand_num_get1)
print "randomnumber1="&randomnumber1
'将获取的字符串强制转换为双精度字符
' rand_num = 4
选择除法运算法则
If rand_num = 1 Then
window("计算器").WinButton("+").Click'四则运算加法
End If
If rand_num = 2 Then
window("计算器").WinButton("-").Click'四则运算减法
End If
If rand_num = 3 Then
window("计算器").WinButton("*").Click'四则运算乘法
End If
If rand_num = 4 Then
window("计算器").WinButton("/").Click'四则运算除法
End If
'*********************************************
调试被除数为 0
' window("计算器").WinButton("0").Click
'*********************************************
For i = 1 to rand_num_lenth2
If rand_num_point2 = i Then
window("计算器").WinButton(".").Click
End If
window("计算器").WinButton("rand_num_action").Click'获得第二个随机数
Next
If rand_num_point2= i+1 Then
window("计算器").WinButton(".").Click
End If
If rand_num2 = 1 Then
window("计算器").WinButton("+/-").Click
End If
rand_num_get2 = window("计算器").WinEdit("Edit").GetROProperty("text")'获取输入的第二个
数
randomnumber2 = Cdbl (rand_num_get2) '将获取的字符串强制转换为双精度字符
print "randomnumber2="&randomnumber2
window("计算器").WinButton("=").Click'数据验证
If rand_num = 4 and rand_num_get2 = 0 Then '如果被除数是 0,这提示被除数不能为 0
print "被除数不能为 0 "
window("计算器").Close
else
rand_num_get3 = window("计算器").WinEdit("Edit").GetROProperty("text")'获取输入的第三个
数
randomnumber3 = Cdbl (rand_num_get3) '将获取的字符串强制转换为双精度字符
print "randomnumber3="&randomnumber3
If rand_num = 1 and (randomnumber1+randomnumber2)-randomnumber3 > 0.0001Then
print "加法出错"
End If
If rand_num = 2 and (randomnumber1-randomnumber2)-randomnumber3 > 0.0001Then
print "减法出错"
End If
If rand_num = 3 and (randomnumber1*randomnumber2)-randomnumber3 > 0.0001Then
print "乘法出错"
End If
If rand_num = 4 and (randomnumber1/randomnumber2)-randomnumber3 > 0.0001Then
print "除法出错"
End If
window("计算器").WinButton("C").Click
window("计算器").Close
End If
Next
登录:用户名进行参数化;test01,小于三位的用户名;test02;添加场景恢复机制
飞机处添加位图检查点
时间不变;选择出发地之前 flight 不可用,选择目的地后 flight 才可用
出发地,目的地,航班进行随机选择
用户名要和登录名一致
随机 1-10 张票
票价和总价进行校验(总价=单价*票数)文本检查点
仓位校验(商务=经济*2,头等=经济*3)
insert 的同步点(while 语句)
update
判断票号是否是数字
查票:清空,输入票号(刚刚订的票)
计算每个 action 的运行时间