首页 > 其他分享 >自动化测试验证码问题

自动化测试验证码问题

时间:2023-01-16 17:26:19浏览次数:45  
标签:登录 driver 验证码 number cookie 测试 自动化 sleep

1. 验证码作用

不少网站在用户登录、用户提交信息等登录和输入的页面上使用了验证码技术。验证码技术可以有效防止恶意用户对网站的滥用,使得网站可以有效避免用户信息失窃、保证网站稳定安全性。
但是验证码给自动化测试带来一些不便,使脚本无法正常运行覆盖功能模块。

2. 如何解决

  • 1.去掉验证码
    这是最简单的方法,对于开发人员来说,只是把验证码的相关代码注释掉即可,如果是在测试环境,这样做可省去了测试人员不少麻烦,如果自动化脚本是要在正式环境跑,这样就给系统带来了一定的风险。

  • 2.设置万能码
    去掉验证码的主要是安全问题,为了应对在线系统的安全性威胁,可以在修改程序时不取消验证码,而是程序中留一个“后门”---设置一个“万能验证码”,只要用户输入这个“万能验证码”,程序就认为验证通过,否则按照原先的验证方式进行验证。

  • 3.验证码识别技术(OCR)
    例如可以通过Python-tesseract 来识别图片验证码,Python-tesseract是光学字符识别Tesseract OCR引擎的Python封装类。能够读取任何常规的图片文件(JPG, GIF ,PNG , TIFF等)。不过,目前市面上的验证码形式繁多,目前任何一种验证码识别技术,识别率都不是100% 。

  • 4.记录cookie
    通过向浏览器中添加cookie 可以绕过登录的验证码。
    基于Cookie绕过验证码自动登录

案例一:使用Cookie绕过百度验证码自动登录账户。

from selenium import webdriver
from time import sleep

driver=webdriver.Firefox()
driver.get("http://www.baidu.com/")

#手动添加cookie
driver.add_cookie({'name':'BAIDUID','value':'9E4BF1D44014…(根据实际获取值填写)'})
driver.add_cookie({'name':'BDUSS','value':'根据实际抓包获取值填写'})

sleep(2)
driver.refresh()
sleep(3)
driver.quit()

案例二:设置万能验证码

from selenium import webdriver
from time import sleep
#万能验证码
#方式一:通过向浏览器中添加cookie 绕过验证码自动登录
driver=webdriver.Firefox()
#访问XX网站
driver.get("http://www.51XXX.net/")
#手动添加验证码
driver.add_cookie({"name":"test","value":"87y7394"})#根据实际获取的值填写
driver.add_cookie({"name":"test","value":"87y7394"})#根据实际抓包获取的值填写
#再次访问XX网站会自动登录
driver.get("http://www.51XXX.net/")

sleep(2)
driver.refresh()
sleep(2)
driver.quit()

#方式二:设置万能验证码
#randint()用于生成随机数,设置随机数的范围是1000-9999之间,运行程序分别输入正确的验证码,万能验证码,错误的验证码
from random import randint
verify=randint(1000,9999)#生成一个1000到9999之间的随机数
print(u"生成的随机:%d" %verify)
number=input("请输入随机数")
print(number)
number=int(number)
if number ==verify:
     print("登录成功")
 elif number == 132722:
     print("登录成功")
 else:
     print("验证码输入错误")

标签:登录,driver,验证码,number,cookie,测试,自动化,sleep
From: https://www.cnblogs.com/hahaniuer/p/17055690.html

相关文章

  • spring boot 图文验证码(Kaptcha)使用
    如何使用可以直接去官网http://code.google.com/p/kaptcha/下载jar,或者在pom.xml中导入` <groupId>com.baomidou</groupId> <artifactId>kaptcha-spring-boot-sta......
  • MeterSphere 接口测试环境/环境组+动态数据源使用
    MeterSphere接口测试支持环境配置,灵活配置运行环境,好多小伙伴在使用过程中,对http配置的搭配以及环境组的使用场景是有疑惑的,下面为大家介绍一下1.环境配置1.1通用配置......
  • 亚马逊手电筒和头灯UL1576测试报告详情
    亚马逊会不定期进行AI抽查,一旦被亚马逊抽查到,亚马逊要求在规定的时间内提交以下信息:公司名称卖家/供应商编号电子邮件地址电话号码您申请销售电热毯的ASIN列表商品图片和手......
  • Windows 资产测试可连接性
    概述本文主要介绍如Windows资产,测试资产连接性的方法。(推送系统用户、批量改密的前置条件)实现方案Windows资产默认不支持测试资产连接性、推送系统用户、批量改密。要想......
  • Mac源码启动MeterSphere服务,并进行性能测试
    1环境准备1、首选要参考一下官方的开发文档 ​​https://metersphere.io/docs/dev_manual/​​2、Java环境,1.20以上版本需要jdk11,​3、maven环境4、vue环境,需要的看这里的......
  • jmeter 使用AES-GCM 模式 加解密 性能测试及 加解密过程 笔记
    加解密过程 步骤1:明文参数(parm1)----key1明文密钥加密(明文密钥),加密后生成密文(parm2)步骤2:-aeskey(对明文密钥key1加密,因为考虑到安全因素防止暴力破解,对明文密钥进行加......
  • 论模糊测试
    最近重新在看一个很老的技术,模糊测试fuzz一、基本背景在探讨fuzz前,我们来回顾下软件测试的定义,软件测试的经典定义是:在规定的条件下对思进行操作,以发现程序错误,衡量软件......
  • Appium+Python UI自动化框架
    importdatetimefromappium.webdriver.common.touch_actionimportTouchActionfromappiumimportwebdriverfromselenium.webdriver.common.byimportByfromtimeimp......
  • 几个《软件方法》测试链接,欢迎有空自测,争取做到全对
    几个《软件方法》测试链接,欢迎有空自测,争取做到全对!《软件方法》第1章测试1​​http://www.umlchina.com/book/quiz1_1.htm​​​《软件方法》第1章测试2​​http://www.uml......
  • MeterSphere 性能测试配置和参数说明
    1. 什么是性能测试性能测试即通过工具来模拟用户请求,达到查看服务性能是否能满足实际生产需求的目标。系统性能好坏是一个相对概念,核心思想是能满足生产需求,因此进行性能测......