您的位置:首页精文荟萃操作系统 → 如何用QTP检查页面中的基本异常

如何用QTP检查页面中的基本异常

时间:2010/1/20 10:12:00来源:本站整理作者:我要评论(0)

页面异常输入测试是系统测试的一个重要方面,但是因为比较繁杂,人工测试时往往难以完全覆盖,此时采用自动化测试,就有相当的优势了。

  其中就包括很多异常输入测试点:

  名称不能包含特殊字符,固定的电话格式,固定的手机格式,银行账号(必须全为数字),付费号码长度限制,手机号码格式、长度限制,Email格式限制等

  其实异常策略是有通用性的,现总结如下:

  1.exp@@SpecialChar(e_chr) 包含特殊字符,e_chr为指定的特殊字符

  2.exp@@StringLenMax(e_len) 字符串超过最大长度,e_len为最大长度值

  3.exp@@StringLenMin(e_len) 字符串不足最小长度,e_len为最小长度值

  4.exp@@String 字符串包含数字(要求全字符)

  5.exp@@Num 字符串包含字符(要求全数字)

  6.exp@@NumMax(e_max) 输入超过指定最大值,e_max,最大值

  6.exp@@NumMin(e_min) 输入不足指定最大值,e_mmin,最小值

  7.exp@@NumLenMax(e_len) 数值长度超限,e_len,长度最大值

  8.exp@@NumLenMin(e_len) 数值长度不足,e_len,长度最小值

  9.exp@@StringPre(e_pre) 字符串不为指定前缀,e_pre,前缀值

  10.exp@@NumPre(e_pre) 数值不使用指定前缀,e_pre,前缀值

  11.exp@@Email 数值不为标准Email格式

  12.exp@@Need 必输入项,提供空字符串

  具体实现上,在准备数据文件时,提供两种数据:

  1. 每个字段的默认输入值,即正确值。也是自动化程序执行时默认输入的数据。

  2. 异常值,针对每个字段,提供该字段可能需要的异常策略,对所有异常进行遍历。

  第一行为默认值,第二行为字段对应的异常策略。分三个函数来处理:

  1. 执行函数

  Public Sub excep_OpUser()

  routingname = "企业用户输入-异常测试"

  ' 载入数据表数据的第2行

  GE_SetCurRow OppDataFile,"企业用户",2

  Dim objStr,oScript,i

  set objStr = CreateObject("Scripting.Dictionary")

  set oScript = CreateObject("Scripting.Dictionary")

  ‘ 根据数据表字段设置每个字段的QTP执行语句

  for i = 1 to DataTable.GetSheet("UserData").GetParameterCount

  if DataTable.GetSheet("UserData").GetParameter(i)="企业名称" Then _

  objStr.add DataTable.value(i,"UserData"),".WebEdit("opername").set "

  ...

  Next

  ‘ 调用异常数据生成函数,返回值保存在dictionary对象oScript中

  Gen_excepData(objStr,oScript)

  ‘ 依次对含异常策略的字段进行异常测试

  For i = 0 to oScript.Count-1

  Call OpUserSet(1,oScript(i))

  Next

  set objStr = Nothing

  set oScript = Nothing

  End Sub

  2. 异常数据生成函数

  Public Function Gen_excepData(byval dObj,byRef oScript)

  ‘ 异常值,正确值,异常类型,异常参数

  Dim errorValue,CorrectValue,expType,expPara

  Dim objName,scriptstr

  Dim i,j,expItem

  expItem = 0 ‘ 记录异常数

  Randomize

  for i = 1 to DataTable.GetSheet("UserData").GetParameterCount

  ‘ 第一行数据为默认正确数值

  CorrectValue = DataTable.GetSheet("UserData").GetParameter(i).ValueByRow(1)

  datatable.SetCurrentRow 2

  if Instr(Datatable.value(i,"UserData"),"exp@@")>0 Then

  objName = dObj.Item(Datatable.value(i,"UserData"))

  ‘ 同一字段多种异常策略的处理

  arr1 = split (Datatable.value(i,"UserData"),"|",-1,1)

  For j = 0 to Ubound(arr1)

  ‘ 获取异常类型和异常参数

  If RegExpTest("exp@@.{1,}\(.{1,}\)",arr1(j)) Then

  exptype = Mid(arr1(j),6,InStr(arr1(j),"(")-6)

  expPara = Mid(arr1(j),InStr(arr1(j),"(")+1,InStr(arr1(j),")")-InStr(arr1(j),"(")-1)

  Else

  expType = replace(arr1(j),"exp@@","")

  End If

  ‘ 不同策略对应的数据生成

  select Case expType

  Case "SpecialChar"

  errorValue = Replace(CorrectValue,Right(CorrectValue,1),"%")

  scriptstr = objName + chr (34) + errorValue + chr(34)

  expItem = expItem + 1

  oScript.add "excepData" & expItem,scriptstr

  errorValue = Replace(CorrectValue,Right(CorrectValue,1),"'")

  scriptstr = objName + chr (34) + errorValue + chr(34)

  expItem = expItem + 1

  oScript.add "excepData" & expItem,scriptstr

  errorValue = Replace(CorrectValue,Right(CorrectValue,1),"/")

  scriptstr = objName + chr (34) + errorValue + chr(34)

  expItem = expItem + 1

  oScript.add "excepData" & expItem,scriptstr

  errorValue = Replace(CorrectValue,Right(CorrectValue,1),":")

  scriptstr = objName + chr (34) + errorValue + chr(34)

  expItem = expItem + 1

  oScript.add "excepData" & expItem,scriptstr

  errorValue = Replace(CorrectValue,Right(CorrectValue,1),"*")

  scriptstr = objName + chr (34) + errorValue + chr(34)

  expItem = expItem + 1

  oScript.add "excepData" & expItem,scriptstr

  errorValue = Replace(CorrectValue,Right(CorrectValue,1),"&")

  scriptstr = objName + chr (34) + errorValue + chr(34)

  expItem = expItem + 1

  oScript.add "excepData" & expItem,scriptstr

  errorValue = Replace(CorrectValue,Right(CorrectValue,1),"?")

  scriptstr = objName + chr (34) + errorValue + chr(34)

  expItem = expItem + 1

  oScript.add "excepData" & expItem,scriptstr

  errorValue = Replace(CorrectValue,Right(CorrectValue,1),"""")

  scriptstr = objName + chr (34) + errorValue + chr(34)

  expItem = expItem + 1

  oScript.add "excepData" & expItem,scriptstr

  errorValue = Replace(CorrectValue,Right(CorrectValue,1),"<")

  scriptstr = objName + chr (34) + errorValue + chr(34)

  expItem = expItem + 1

  oScript.add "excepData" & expItem,scriptstr

  errorValue = Replace(CorrectValue,Right(CorrectValue,1),">")

  scriptstr = objName + chr (34) + errorValue + chr(34)

  expItem = expItem + 1

  oScript.add "excepData" & expItem,scriptstr

  errorValue = Replace(CorrectValue,Right(CorrectValue,1),"|")

  scriptstr = objName + chr (34) + errorValue + chr(34)

  expItem = expItem + 1

  oScript.add "excepData" & expItem,scriptstr

  errorValue = Replace(CorrectValue,Right(CorrectValue,1),"(")

  scriptstr = objName + chr (34) + errorValue + chr(34)

  expItem = expItem + 1

  oScript.add "excepData" & expItem,scriptstr

  errorValue = Replace(CorrectValue,Right(CorrectValue,1),")")

  scriptstr = objName + chr (34) + errorValue + chr(34)

  expItem = expItem + 1

  oScript.add "excepData" & expItem,scriptstr

  Case "StringLenMax"

  errorValue = CorrectValue

  Dim n

  For n = 1 to expPara+1-Len(CorrectValue)

  errorValue = errorValue & chr(Int(26 * Rnd + 97))

  Next

  scriptstr = objName & chr(34) & errorValue & chr(34)

  expItem = expItem + 1

  oScript.add "excepData" & expItem,scriptstr

  Case "StringLenMin"

  errorValue = Left(CorrectValue,expPara-1)

  scriptstr = objName & chr(34) & errorValue & chr(34)

  expItem = expItem + 1

  oScript.add "excepData" & expItem,scriptstr

  Case "String"

  errorValue = ""

  Dim n

  For n = 1 to Len(CorrectValue)

  errorValue = errorValue & chr(Int(10 * Rnd + 48))

  Next

  scriptstr = objName & chr(34) & errorValue & chr(34)

  expItem = expItem + 1

  oScript.add "excepData" & expItem,scriptstr

  Case "Num"

  errorValue = Left(CorrectValue,Len(CorrectValue)-1) & chr(Int(26 * Rnd + 97))

  scriptstr = objName & chr(34) & errorValue & chr(34)

  expItem = expItem + 1

  oScript.add "excepData" & expItem,scriptstr

  Case "NumMax"

  errorValue = expPara + 1

  scriptstr = objName & chr(34) & errorValue & chr(34)

  expItem = expItem + 1

  oScript.add "excepData" & expItem,scriptstr

  Case "NumMin"

  errorValue = expPara - 1

  scriptstr = objName & chr(34) & errorValue & chr(34)

  expItem = expItem + 1

  oScript.add "excepData" & expItem,scriptstr

  Case "NumLenMax"

  errorValue = CorrectValue

  Dim n

  For n = 1 to expPara+1-Len(CorrectValue)

  errorValue = errorValue & chr(Int(10 * Rnd + 48))

  Next

  scriptstr = objName & chr(34) & errorValue & chr(34)

  expItem = expItem + 1

  oScript.add "excepData" & expItem,scriptstr

  Case "NumLenMin"

  errorValue = Left(CorrectValue,expPara-1)

  scriptstr = objName & chr(34) & errorValue & chr(34)

  expItem = expItem + 1

  oScript.add "excepData" & expItem,scriptstr

  Case "StringPre"

  Dim n,tmpStr

  tmpStr = ""

  For n = 1 to Len(expPara)

  tmpStr = tmpStr & chr(Int(26 * Rnd + 97))

  Next

  errorValue = Replace(CorrectValue,expPara,tmpStr)

  scriptstr = objName & chr(34) & errorValue & chr(34)

  expItem = expItem + 1

  oScript.add "excepData" & expItem,scriptstr

  Case "NumPre"

  Dim n,tmpStr

  tmpStr = ""

  For n = 1 to Len(expPara)

  tmpStr = tmpStr & chr(Int(10 * Rnd + 48))

  Next

  errorValue = Replace(CorrectValue,expPara,tmpStr)

  scriptstr = objName & chr(34) & errorValue & chr(34)

  expItem = expItem + 1

  oScript.add "excepData" & expItem,scriptstr

  Case "Email"

  errorValue = Replace(CorrectValue,"@",chr(Int(26 * Rnd + 97)))

  errorValue = Replace(errorValue,".",chr(Int(26 * Rnd + 97)))

  scriptstr = objName & chr(34) & errorValue & chr(34)

  expItem = expItem + 1

  oScript.add "excepData" & expItem,scriptstr

  Case "Need"

  errorValue = ""

  scriptstr = objName & chr(34) & errorValue & chr(34)

  expItem = expItem + 1

  oScript.add "excepData" & expItem,scriptstr

  End Select

  Next

  End If

  Next

  End Function

  3. 页面输入函数

  即相应的QTP录制执行脚本,输入默认正确数值后,将相应字段修改为异常数值后提交,再判断是否出现相应的异常提示。

  (函数省略)

  通过以上方法,可以完整覆盖页面输入的异常判断,减轻人工测试覆盖不足的问题。

 

相关视频

    没有数据

相关阅读 LOL云顶之弈各英雄如何搭配装备 云顶之弈全英雄装备搭配推荐瘟疫传说无罪配置要求如何 瘟疫传说无罪配置要求推荐进击的巨人2最终之战配置要求如何 进击的巨人2最终之战配置推荐如龙极2配置要求如何 如龙极2配置要求推荐三位一体4配置要求如何 三位一体4配置要求推荐共享体重秤如何实现为个人号加粉如何利用共享体重秤进行公众号推广dnfSPTP改版内容介绍2019 dnfSPTP技能改版详情

文章评论
发表评论

热门文章 没有查询到任何记录。

最新文章 Windows7怎么升级Wind安卓7.0系统怎么样好不 安卓7.0有哪些新功能 安卓7.0系统详细图文体Fuchsia是什么意思 Fuchsia系统怎么样u深度一键还原精灵电脑重装系统使用教程u深度一键ghost使用教程

人气排行 win7没声音怎么办?_win无7声音解决办法苹果笔记本装Win7教程 苹果笔记本怎么装Win电脑32位和64位怎么看 怎么看电脑支持64位安卓7.0系统怎么样好不好用 Android7.0综合checking file system on是什么意思 怎么解component 'MSINET.OCX'错误是什么意思?怎Windows系统运行库集合下载 - VC运行库,.NE虚拟机VMware Workstation配置方法图解