测试Tony 2022-07-17 16:04 采纳率: 76.9%
浏览 244
已结题

接口自动化测试登录接口,怎么解决验证码的问题呢?

接口自动化测试中,对登录功能进行验证
比如参数传入
(正确用户名,正确密码,正确验证码—返回预期结果:操作成功)
(错误用户名,正确密码,正确验证码—返回预期结果:操作失败)
那登录功能中有短信或者图片验证码,怎么解决验证码传参的问题呢?
当下主流的解决办法是什么呢?解决验证码传参的问题

在生产环境中,已经上线的,不能取消验证码情况下

  • 写回答

1条回答 默认 最新

  • 一个处女座的测试 测试领域优质创作者 2022-07-17 19:32
    关注

    1.去掉验证码
    这是最简单的方法,对于开发人员来说,只是把验证码的相关代码注释掉即可,如果是在测试环境,这样做可省去了测试人员不少麻烦,如果自动化脚本是要在正式环境跑,这样就给系统带来了一定的风险。
    2.设置万能码
    去掉验证码的主要是安全问题,为了应对在线系统的安全性威胁,可以在修改程序时不取消验证码,而是程序中留一个“后门”---设置一个“万能验证码”,只要用户输入这个“万能验证码”,程序就认为验证通过,否则按照原先的验证方式进行验证。
    3.验证码识别技术(OCR)
    例如可以通过Python-tesseract 来识别图片验证码,Python-tesseract是光学字符识别Tesseract OCR引擎的Python封装类。能够读取任何常规的图片文件(JPG, GIF ,PNG , TIFF等)。不过,目前市面上的验证码形式繁多,目前任何一种验证码识别技术,识别率都不是100% 。
    4.记录cookie
    (适用于UI自动化测试,且目前在大部应用的用户名密码不记录在cookie 或 进行加密处理。)
    通过向浏览器中添加cookie 可以绕过登录的验证码。
    如:

    
    ```python
    from selenium import webdriver
    from time import sleep
    
    driver=webdriver.Chrome()
    #访问XXX网站
    driver.get("XXX")
    
    #手动添加cookie;将用户名密码写入浏览器cookie
    driver.add_cookie({'name':'Login_username','value':'username(根据实际获取值填写)'})
    driver.add_cookie({'name':'Login_password','value':'password'})
    
    sleep(2)
    #刷新再次访问XXX网站将会自动登录
    driver.refresh()
    sleep(3)
    driver.quit()
    
    

    ```
    望采纳

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 7月30日
  • 已采纳回答 7月22日
  • 修改了问题 7月17日
  • 创建了问题 7月17日

悬赏问题

  • ¥60 pb数据库修改或者求完整pb库存系统,需为pb自带数据库
  • ¥15 spss统计中二分类变量和有序变量的相关性分析可以用kendall相关分析吗?
  • ¥15 拟通过pc下指令到安卓系统,如果追求响应速度,尽可能无延迟,是不是用安卓模拟器会优于实体的安卓手机?如果是,可以快多少毫秒?
  • ¥20 神经网络Sequential name=sequential, built=False
  • ¥16 Qphython 用xlrd读取excel报错
  • ¥15 单片机学习顺序问题!!
  • ¥15 ikuai客户端多拨vpn,重启总是有个别重拨不上
  • ¥20 关于#anlogic#sdram#的问题,如何解决?(关键词-performance)
  • ¥15 相敏解调 matlab
  • ¥15 求lingo代码和思路