zoukankan      html  css  js  c++  java
  • 自动化测试中如何解决图片验证码问题

    一. 使用场景说明

    在接口自动化测试中,一般各业务接口会对登录接口有所依赖,而登录接口中会存在有要求输入图片验证码的问题,最终导致接口自动化测试难以顺利展开。

    二. 图片验证码分析

    1. 本文中遇到的验证码特点为:字符有扭曲,字符彼此拥挤在一起,字符中存有遮挡线

    2. OCR图像识别可以识别出一些比较规范的字体,不适用于本场景。

    3. 如果想成功识别出本文中遇到的验证码,有如下几种方案:

    方案1:使用TensorFlow,通过模型训练,搭建一套符合自身业务特点的验证码识别系统

    方案2:使用开放的AI模型训练平台,如百度的EasyDL, 有一定的免费使用次数

    方案3:使用收费的图像识别接口,如图鉴平台,大概价格是1块钱可识别500次验证码

    三. 设计方案说明

                               

    1. 用mitmproxy工具来监控UI端操作(mitmproxy服务会以子线程方式启动),它主要包含有两个操作: 1)下载验证码图片;2)获取认证信息。

    2. 通过1-2-3步骤,在UI端模拟用户登录操作。由于图片识别接口有一定的失败率,所以登录失败后,会进行登录重试

    3. 登录成功后,抓包线程会成功抓取到认证信息,并将其放入队列中。主线程从队列中取出认证信息,并保存至config.ini中。

    4. 业务API会优先从config.ini中读取认证信息,如果config.ini中的认证信息失效了,则通过步骤8来刷新认证信息,并自动重新执行业务API

    5. 本方案中涉及到的两处重试场景(已用下划线标出), 均使用tenacity库完成的。

  • 相关阅读:
    智能资产构建去中心化的资产管理系统
    以太坊—开放的智能合约完整解决方案
    去中心化的域名系统Namecoin
    bootstrap-内联文本元素-小号文本
    MySQL重新初始化安装数据库
    MySQL重新初始化安装数据库
    MySQL重新初始化安装数据库
    MySQL重新初始化安装数据库
    PHP模拟登录并获取数据
    PHP模拟登录并获取数据
  • 原文地址:https://www.cnblogs.com/reconova-56/p/13977342.html
Copyright © 2011-2022 走看看