#大牛测试,专注测试技术
#qq:2574674466
#简简单单自动化测试
在网站中加入验证码的目的是加强用户安全性和提高反爬虫机制,在登录网站时,经常遇到各种各样验证码如:
1) 英文与数字结合
2) 汉字
3) 图形,如12306登录
等等,因验证码的存在,对自动化测试工具造成极大困扰
有困难,但还是要解决的........
以下列出一些处理策略
1)调用OCR识别:
优势:开源
劣势:识别率低
步骤、tesseract 安装
#
#pip install pytesseract
如:识别以下数字
#大牛测试,专注测试技术
#qq:2574674466
#简简单单自动化测试
from PIL import Image
from pytesseract import pytesseract
#使用PIL打开图片
im = Image.open("t.PNG")
code = pytesseract.image_to_string(im)
print(code)
识别英文字母与数字
经测试以上验证码,失败:
综以上可见:准确率不是太高
2)调用API使用第三方平台识别验证码
本篇以斐斐打码平台作一介绍
① 登录“斐斐”官网 注册
http://www.fateadm.com/
②打开用户中心 进行充值,充值后会获得相应积分,每次失败会扣除积分
充值中心,学习用,仅需充值1分钱便好。
③ 记住PD账号与PD秘钥
④计费标准模组,根据要识别的内容选择类型
如 4为英数混合 选择 30400
⑤http://docs.fateadm.com/web/#/1?page_id=17 下载python api
⑥找到TestFunc()方法,作以下修改
#大牛测试,专注测试技术
#qq:2574674466
#简简单单自动化测试
def TestFunc():
pd_id = "" #用户中心页可以查询到pd信息
pd_key = ""
app_id = "100001" #开发者分成用的账号,在开发者中心可以查询到
app_key = "123456"
#识别类型,
#具体类型可以查看官方网站的价格页选择具体的类型,不清楚类型的,可以咨询客服
pred_type = "30400"
api = FateadmApi(app_id, app_key, pd_id, pd_key)
# 查询余额
#balance = api.QueryBalcExtend() # 直接返余额
#api.PredictExtend()
# api.QueryBalc()
# 通过文件形式识别:
file_name = “t.png"
result = api.PredictFromFileExtend(pred_type,file_name) # 直接返回识别结果
#print(result)
return result
如识别如下验证码:
运行结果为: