测试 在 WEB 测试中有验证码怎么测试?

simlegate · 2013年08月01日 · 最后由 zj0713001 回复于 2013年08月04日 · 3912 次阅读

目的:想要去网站中抓取数据,但是需要登陆,在登陆的表单中需要填写验证码。 问题:怎样获取验证码的值,实现自动填写验证码

先看验证码组件本身有没有提供测试配置,没有的话在测试环境中覆盖验证码检测的校验方法,把验证码设为固定值或者总是返回 true。

#1 楼 @Rei 如果我要发一个 POST 请求,模拟登陆功能,但是表单里面有验证码,这个登陆功能应该怎样模拟才能成功? 其实我就像在网上去抓取点东西,但是需要登陆。

#2 楼 @simlegate 这是自己程序的功能测试还是做爬虫?如果是自己的程序发代码看一看,不然我举不了例子。做爬虫是另一个学问了,我不懂。

#3 楼 @Rei 应该是爬虫,不是程序的功能测试。

#4 楼 @simlegate 看你更新的主题后,我想到一个方法,手工登陆网站,然后用调试工具把 cookie 复制出来,写到脚本里。

#5 楼 @Rei 这个办法可行,但是感觉不那么智能。

#6 楼 @simlegate 如果可行的话,几分钟解决了,图像识别可不是那么好搞的。

#7 楼 @Rei 我先试试你的方法,在去看看网上有没有什么好的办法。

我用的 gem 'rtesseract' 需要先安装 tesseract 基础库 这个库识别京东价格那样的图片无压力 不太复杂的验证码(混淆比较少的)也不在话下 示例:

Timeout::timeout(30) do
  t = RTesseract.new
  t.from_blob @agent.get(url: @url).body
  @captcha = t.to_s_without_spaces
end

#9 楼 @zj0713001 好哇!先谢谢你。

@hooopo 还是贡献者。

#9 楼 @zj0713001 谢谢,收藏先

#13 楼 @hooopo 如果很复杂的话,估计没很苦难的去识别了

#13 楼 @hooopo 辨识程度是世界排名第一,二是哪两个啊?

#9 楼 @zj0713001 又遇到一个问题:没有办法解析动态验证码啊?不是一个图片啊。

17 楼 已删除
18 楼 已删除
19 楼 已删除

#16 楼 @simlegate 不是图片是什么呢 能不能发个原始页面的链接 look look?

需要 登录 后方可回复, 如果你还没有账号请 注册新账号