下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第第页软件测试工具中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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 办公屏保2025定制合同协议
- 办公家具采购合同协议2025
- 城市居住环境改善
- 冲锋枪音效课件
- 潍坊三模生物试卷及答案
- 单招足球文化试卷及答案
- 江苏单招线上题库及答案
- 工地安全月考试题及答案
- 2025年新乡学院概论试题及答案
- 2025年中考昆明历史试卷及答案
- 煤矿采掘技术
- 游艇俱乐部圈层策划方案
- 煤矿用履带式液压钻机ZDY2300LX说明书-图文
- 2023年南通启东市邮政局招考笔试参考题库(共500题)答案详解版
- 多媒体系统维保服务投标方案
- JCT890-2017 蒸压加气混凝土墙体专用砂浆
- 深圳亚马逊超级大卖副总制定的亚马逊运营SOP计划表
- 海洋与海洋测绘课件
- 康复治疗学Bobath技术
- 上海市九年义务教育阶段写字等级考试(一级)硬笔方格收写纸
- 南部三期污水处理厂扩建工程项目环评报告
评论
0/150
提交评论