软件测试工具中QTP处理验证码的一种方法_第1页
软件测试工具中QTP处理验证码的一种方法_第2页
软件测试工具中QTP处理验证码的一种方法_第3页
软件测试工具中QTP处理验证码的一种方法_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第第页软件测试工具中QTP处理验证码的一种方法软件测试工具中QTP处理验证码的一种方法

发表于:2023-05-04来源::点击数:标签:工具软件测试qtpQTP验证

软件测试工具中QTP处理验证码的一种方法QTP在测试WEB站点应用程序时,通常会碰到验证码的问题(尤其是论坛类的站点),对于这类问题,通常的做法是利用OCR(OpticalCharacterRecognization,光学字符识别)技术,通过识别图片中的文字来获取验证码,但

软件测试工具中QTP处理验证码的一种方法

QTP在测试WEB站点应用程序时,通常会碰到验证码的问题(尤其是论坛类的站点),对于这类问题,通常的做法是利用OCR(OpticalCharacterRecognization,光学字符识别)技术,通过识别图片中的文字来获取验证码,但是这种方法可靠性不高,受到验证码图片混淆程度的影响。另外一种做法是在开发阶段由程序员屏蔽验证码功能,或者提供所谓的“万能验证码”。

本文介绍在测试Discuz!NT2.5论坛系统时的关于验证码获取和设置的一种解决办法。通过分析Discuz的源代码,发现验证码保存在数据库的dnt_online表中:

///summary

///检查在线用户验证码是否有效

////summary

///paramname="olid"在组用户ID/param

///paramname="verifycode"验证码/param

///returns在组用户ID/returns

publicboolCheckUserVerifyCode(intolid,stringverifycode,stringnewverifycode)

{

DbParameter[]parms={

DbHelper.MakeInParam("@olid",(DbType)SqlDbType.Int,4,olid),

DbHelper.MakeInParam("@verifycode",(DbType)SqlDbType.VarChar,10,verifycode)

};

DataTabledt=DbHelper.ExecuteDataset(CommandType.Text,string.Format("SELECTTOP1[olid]FROM[{0}online]WHERE[olid]=@olidand[verifycode]=@verifycode",BaseConfigs.GetTablePrefix),parms).Tables[0];

parms[1].Value=newverifycode;

DbHelper.ExecuteNonQuery(CommandType.Text,string.Format("UPDATE[{0}online]SET[verifycode]=@verifycodeWHERE[olid]=@olid",BaseConfigs.GetTablePrefix),parms);

returndt.Rows.Count0;

}

dnt_online表中的最后一个字段verifycode存储的就是验证码。验证码是在用户登录论坛后随机产生并存入表中的,在管理员选择“系统设置”功能进入“管理员控制台”模块之前需要输入验证码,输入的验证码与dnt_online表中所存储的验证码进行对比,如果一致则接受用户登录请求。

因此可以在在QTP脚本中编写数据库查询语句,在登录管理员控制台之前从数据库dnt_online表获取到管理员的验证码,具体的QTP脚本如下所示:

'登录论坛

Browser("Discuz!NTASP.net|论坛-").Page("Discuz!NTASP.net|论坛-").WebEdit("username").Click

Browser("Discuz!NTASP.net|论坛-").Page("Discuz!NTASP.net|论坛-").WebEdit("username").Set"admin"

Browser("Discuz!NTASP.net|论坛-").Page("Discuz!NTASP.net|论坛-").WebEdit("password").Set"123456"

Browser("Discuz!NTASP.net|论坛-").Page("Discuz!NTASP.net|论坛-").WebButton("登录").Click

'从数据库读取到验证码

verifycode=GetVerifyCode("admin")

'登录管理员控制台

Browser("Discuz!NTASP.net|论坛-").Page("Discuz!NTASP.net|论坛-").Link("系统设置").Click

Browser("管理员控制台登录").Page("管理员控制台登录").WebEdit("PassWord").Set"123456"

Browser("管理员控制台登录").Page("管理员控制台登录").WebEdit("vcode").Setverifycode'设置验证码

Browser("管理员控制台登录").Page("管理员控制台登录").WebButton("WebButton").Click

'退出

Browser("管理员控制台登录").Page("系统设置-PoweredbyDiscuz!NT").Frame("mainFrame").Link("退出").Click

FunctionGetVerifyCode(username)

DimConn'数据库连接对象

DimRst'数据记录集对象

Dimstr_Link_DBSource'数据库连接串

DimSqlStr'SQL查询语句

str_Link_DBSource="Provider=SQLOLEDB.1;Password=sa;PersistSecurityInfo=True;UserID=sa;InitialCatalog=dnt25;DataSource=CHENNENGJI"

SqlStr="selectverifycodefromdnt_onlinewhereusername='"username"'"

SetConn=CreateObject("ADODB.Connection")

Conn.Openstr_Link_DBSource

SetRst=CreateObject("ADODB.Recordset")

Rst.OpenSqlStr

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论