爱问知识人 爱问教育 医院库

软件测试工具QTP处理验证码的方法是什么?

首页

软件测试工具QTP处理验证码的方法是什么?

软件测试工具QTP处理验证码的方法是什么?

提交回答

全部答案

    2017-07-29 12:40:52
  •   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表中所存储的验证码进行对比,如果一致则接受用户登录请求。
      

    刘***

    2017-07-29 12:40:52

类似问题

换一换

相关推荐

正在加载...
最新问答 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):