软件测试工具QTP处理验证码的方法是什么?
软件测试工具QTP处理验证码的方法是什么?
QTP在测试WEB 站点应用程序时,通常会碰到验证码的问题(尤其是论坛类的站点),对于这类问题,通常的做法是利用OCR(Optical Character Recognization,光学字符识别)技术,通过识别图片中的文字来获取验证码,但是这种方法可靠性不高,受到验证码图片混淆程度的影响。
另外一种做法是在开发阶段由程序员屏蔽验证码功能,或者提供所谓的“万能验证码”。 本文介绍在测试Discuz !NT 2。5论坛系统时的关于验证码获取和设置的一种解决办法。通过分析Discuz的源代码,发现验证码保存在数据库的dnt_online表中: /// /// 检查在线用户验证码是否有效 /// /// 在组用户ID /// 验证码 /// 在组用户ID public bool CheckUserVerifyCode(int olid, string verifycode, string newverifycode) { DbParameter[] parms = { DbHelper。
MakeInParam("@olid", (DbType)SqlDbType。Int, 4, olid), DbHelper。MakeInParam("@verifycode", (DbType)SqlDbType。VarChar, 10, verifycode) }; DataTable dt = DbHelper。
ExecuteDataset(CommandType。Text, string。Format("SELECT TOP 1 [olid] FROM [{0}online] WHERE [olid]=@olid and [verifycode]=@verifycode", BaseConfigs。
GetTablePrefix), parms)。Tables[0]; parms[1]。Value = newverifycode; DbHelper。ExecuteNonQuery(CommandType。Text, string。Format("UPDATE [{0}online] SET [verifycode]=@verifycode WHERE [olid]=@olid", BaseConfigs。
GetTablePrefix), parms); return dt。Rows。Count > 0; } dnt_online表中的最后一个字段verifycode存储的就是验证码。验证码是在用户登录论坛后随机产生并存入表中的,在管理员选择“系统设置”功能进入“管理员控制台”模块之前需要输入验证码,输入的验证码与dnt_online表中所存储的验证码进行对比,如果一致则接受用户登录请求。
答:常用的测试工具有: 性能测试:Rational系列(除了Rational Rose,那是做UML建模的) 单元测试:CUnit(C/C++/C#)、JUnit(...详情>>
答:网页缓存 过段时间就会变成E的图标了详情>>