Web自动化框架中验证码识别处理全攻略,让测试更得心应手!

2023-12-19

前言:

随着Web应用程序的不断发展,自动化测试已成为项目开发中必不可少的一环。然而,验证码的出现却经常会使自动化测试变得更具挑战性。为了解决这个问题,我们需要一种方法来自动识别和处理验证码,从而提高自动化测试的效率和准确性。本文将介绍如何封装一个Web自动化框架,并集成验证码识别处理功能。

一. Web自动化测试框架搭建

1. 选择一个自动化测试工具

有许多的自动化测试工具可以选择,比如Selenium、Appium等等。我们选择Selenium作为我们的自动化测试工具,因为Selenium拥有强大的浏览器支持和Active Element Detection等很多好用的功能。

2. 安装环境

- Python3.x:Selenium是Python编写的,在使用之前需要安装Python3.x。

- Selenium:在Python环境下使用Selenium需要安装Selenium包。可以使用pip命令进行安装。

pip install selenium

3. 初始化一个Selenium驱动

在安装完成Selenium模块之后,就可以拿到一个WebDriver的对象了。我们使用WebDriver连接到一个浏览器实例,并加载我们要测试的网页。

from selenium import webdriver

driver = webdriver.Chrome()
driver.get('http://tempuri.org')

这时,我们可以看到Chrome浏览器自动打开并打开了“http://tempuri.org”这个网站。

二. 添加自动化测试用例

1. 编写测试脚本

编写一个简单的Selenium测试脚本,用以添加一个新用户并且验证用户能否成功登录:

def test_add_user():

# 查找用户登录界面的"用户名"和"密码"输入框
username_input = driver.find_element_by_name('username')
password_input = driver.find_element_by_name('password')

# 输入用户名和密码
username_input.send_keys('username')
password_input.send_keys('password')

# 记录当前 URL
login_url = driver.current_url

# 点击登录按钮
driver.find_element_by_id('submit').click()

# 获取当前 URL
current_url = driver.current_url

# 验证登录成功与否
assert current_url != login_url

通过Selenium提供的find_element_by_*系列的方法,我们可以定位页面中的元素并进行操作。

2. 运行测试脚本

添加完测试脚本后,只需要运行测试脚本即可开展自动化测试。

test_add_user()
现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:691998057【暗号:csdn999】

三. 验证码识别与处理

验证码一般用于防止机器恶意攻击,而这在自动化测试中是个大问题。通过一些常见的验证码形式和对应的处理方式,我们可以提高自动化测试的识别率和效率。

1. 验证码种类

目前常见的验证码种类有图形验证码、中文验证码、计算验证码、滑动验证码等种类,不过最常见的是图形验证码。

2. 验证码处理方式

我们可以使用PIL库对识别到的验证码进行预处理,从而提高识别率。对于某些情况下无法识别的验证码,则通常需要手动打码了。以下是图形验证码预处理的基本步骤:

- 转灰度:将彩色的验证码转成单一的灰度。

- 二值化:通过Sobel算法,对灰度图像进行边缘检测,并进行二值化。

- 降噪:去除二值化后图像中噪声点等干扰信息。

- 切割:将验证码进行切割成单个字符,然后对单个字符进行识别。

下面我们来看一个实现了验证码识别处理的自动化测试脚本。假设我们要测试的网站包含了一个图形验证码,我们可以先对验证码进行预处理,然后再输入验证码。

import requests
from PIL import Image
import pytesseract

def get_verify_code_img(url):
"""
获取验证码图片
"""
response = requests.get(url=url)
img = Image.open(BytesIO(response.content))
return img

def preprocessing_verify_code(img):
"""
预处理验证码图片
"""
# 转换成灰度图
img = img.convert('L')
# 二值化
threshold = 160
img = img.point(lambda x: 255 if x > threshold else 0)
# 去除噪声
img = img.filter(ImageFilter.MedianFilter(size=3))
return img

def recognize_verify_code(img):
"""
识别验证码
"""
text = pytesseract.image_to_string(img, lang='eng')
return text

def test_with_verify_code():
# 验证码图片URL
img_url = 'http://captcha.com/verify_code'
# 获取验证码图片
img = get_verify_code_img(img_url)
# 预处理验证码图片
img = preprocessing_verify_code(img)
# 识别验证码
verify_code = recognize_verify_code(img)
# 输入验证码并登录
driver.find_element_by_id('verify_code_input').send_keys(verify_code)
driver.find_element_by_id('submit').click()

test_with_verify_code()

在这个例子中,我们使用了requests库获取验证码图片,使用PIL库对验证码图片进行预处理,然后使用pytesseract库进行识别。最后,我们将识别出的验证码输入到网页中,完成自动化测试。

四. 结语

本文介绍了如何封装一个Web自动化框架,并集成了验证码识别处理功能。需要注意的是,对于不同的验证码类型,预处理和识别的方法可能会有所不同,需要根据实际情况进行调整和优化。通过这种方式,我们可以提高自动化测试的效率和准确性,实现更高质量的测试。

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走!

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Web自动化框架中验证码识别处理全攻略,让测试更得心应手! 的相关文章

  • HTML概述、基本语法(表格整理、标签、基本结构)

    一 HTML概述 HTML指的是超文本标记语言 超文本 是指页面内可以包含图片 链接 声音 视频等内容 标记 标签 通过标记符号来告诉浏览器页面该如何显示 我们可以打开浏览器 右击页面 点击 查看网页源代码 来方便了解HTML标签通过浏览器
  • 点击存储到固定时间清除存储

    这段代码 无意间想到的 随便写了下来 运行 根据点击之后传递一个参数 将他存入本地存储 方便测试为10秒 10秒后触发下一个事件 清除本地存储 结束
  • 【gee】下载modis土地利用类型

    var china ee FeatureCollection projects assets china boundary var lc dataset ee ImageCollection MODIS 061 MCD12Q1 filter
  • Python自动化测试 | 如何使用Robot Framework进行自动化测试?

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 测开和测试平台是否有存在的必要?

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 一篇文章带你了解Python常用自动化测试框架——Pytest

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 低代码-添加按钮组件设计

    效果图 可拆分为以下细节 按钮列表 删除 两个操作需同步删除 点击外侧删除 点击复选框删除 添加 点击复选框添加 示例代码 技术栈 vue3 arco design ts less tailwindcss
  • 低代码配置-属性配置面板设计

    模块设计 tab项切换 组件基础属性 组件数据属性 组件事件属性 表单属性 模块输出函数设计 tab切换函数 列表表单属性 数据来源 调用接口时一次赋予 无需使用selectItem 如需使用 归入基础属性 列表标题 是否展示筛选区域
  • 甜蜜而简洁 —— 深入了解Pytest插件pytest-sugar

    在日常的软件开发中 测试是确保代码质量的关键步骤之一 然而 对于测试报告的生成和测试结果的可读性 一直以来都是开发者关注的焦点 Pytest插件 pytest sugar 以其清晰而美观的输出 为我们提供了一种愉悦的测试体验 本文将深入介绍
  • Python常用的自动化小脚本!

    一 list转json string转json 可以使用Python内置的 json 模块将列表 List 和字符串 String 转换成JSON格式 List转JSON假设我们有一个列表 List my list apple banana
  • 30天精通Nodejs--第十九天:express-文件上传下载

    目录 前言 环境准备与依赖安装 文件上传功能实现 引入并配置express fileupload中间件 注意事项 文件下载功能实现 结语 前言 文件的上传和下载是许多应用程序必备的功能 Node js的Express框架同样可以通过集
  • chrome浏览器无法在地址栏输入内容搜索问题解决--图文

    关于日常遇到的小问题解决记录一下 1 导航栏录入信息后跳转错误 2 解决办法 默认百度搜索引擎地址错误 百度正确的搜索格式是 http www baidu com s wd s chrome浏览器中百度的搜索格式是 http www bai
  • 软件测试/测试开发/全日制/测试管理丨Android WebView 技术原理

    Android WebView是一个内置的组件 允许在Android应用中嵌套显示Web内容 Android WebView的技术原理涉及到使用WebKit引擎来渲染Web内容 并提供一系列API和回调函数 使得开发人员可以控制和定制Web
  • 一文让你了解UI自动化测试

    测试都起什么作用 是项目的保险 但不是项目的救命草 测试无实际产出 但作用远大于实际产出 测试是从项目维度保证质量 而不是测试阶段 UI自动化 下面简称自动化 基于UI进行自动功能测试 以Web端作为例子 一般的UI功能自动化都是基于HTM
  • Web自动化测试 —— cookie复用

    一 cookie简介 cookie是一些数据 存储于用户电脑的文本文件中 当web服务器想浏览器发送web页面时 在链接关闭后 服务端不会记录用户信息 二 为什么要使用Cookie自动化登录 复用浏览器仍然在每次用例开始都需要人为介入 若用
  • Web自动化测试 —— capability参数配置

    一 capability概述 capability是webdriver支持的标准命令之外的扩展命令 配置信息 配置web驱动属性 如浏览器名称 浏览器平台 结合selenium gird完成分布式 兼容性测试 官网地址 https www
  • 外包干了3个月,技术退步明显。。。。。

    先说一下自己的情况 本科生 20年通过校招进入广州某软件公司 干了接近3年的 功能测试 今年年初 感觉自己不能够在这样下去了 长时间呆在一个舒适的环境会让一个人堕落 而我已经在一个企业干了3年的功能测试 已经让我变得不思进取 谈了2年的女朋
  • 一文从0到1手把手教学UI自动化测试之数据驱动!

    在UI的自动化测试中 我们需要把测试使用到的数据分离到文件中 如果单纯的写在我们的测试模块里面 不是一个好的设计 所以不管是什么类型的自动化测试 都是需要把数据分离出来的 当然分离到具体的文件里面 文件的形式其实有很多的 这里主要说明JSO
  • 每天10个前端小知识 <Day 14>

    前端面试基础知识题 1 CSSOM树和DOM树是同时解析的吗 浏览器会下载HTML解析页面生成DOM树 遇到CSS标签就开始解析CSS 这个过程不会阻塞 但是如果遇到了JS脚本 此时假如CSSOM还没有构建完 需要等待CSSOM构建完 再去
  • 【前端】canvas图片加文字

    注释标记了操作步骤 import React Component createRef from react class CertifyImgRender extends Component bgRef createRef

随机推荐

  • Selenium+Jave—Window文件窗口+比对文件

    新生一学期敲70万行代码 华为上海青浦 途虎一面凉经 途虎养车前端一面面经 途虎一面凉经 前端 途虎养车二面 途虎校招前端一面面经 中石油昆仑数智产品经理岗 中石油昆仑数智 数据分析工程师 华为上海青浦 上海银行背调 回暖分析 战绩结算 o
  • serwvdrv.dll文件丢失导致程序无法运行问题

    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题 如果是新手第一时间会认为是软件或游戏出错了 其实并不是这样 其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库 这时你可以下载这个serwvdr
  • shsvcs.dll文件丢失导致程序无法运行问题

    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题 如果是新手第一时间会认为是软件或游戏出错了 其实并不是这样 其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库 这时你可以下载这个shsvcs
  • win11泰坦陨落2缺少msvcr120.dll怎么办,分享4个可靠的方法

    在现代的电脑游戏中 我们经常会遇到各种各样的问题 其中 最常见的一种就是游戏无法正常运行 提示缺少某个dll文件 最近 我在使用Windows 11操作系统玩泰坦陨落2时 就遇到了这样的问题 游戏运行时 提示我缺少msvcr120 dll文
  • 外包干了2个月,技术退步明显.......

    先说一下自己的情况 大专生 18年通过校招进入武汉某软件公司 干了接近4年的功能测试 今年年初 感觉自己不能够在这样下去了 长时间呆在一个舒适的环境会让一个人堕落 而我已经在一个企业干了四年的功能测试 已经让我变得不思进取 谈了2年的女朋友
  • 软件测试/测试开发/人工智能丨使用 GraphWalker 实现自动化测试用例生成

    GraphWalker是一个用于模型驱动测试 Model Based Testing 的工具 它通过有向图 图模型 来描述系统的行为 然后生成测试用例以覆盖不同的路径 以下是使用GraphWalker实现自动化测试用例生成的基本步骤 步骤
  • uniapp自定义tabBar

    uniapp自定义tabBar uniapp自定义底部tabbar CSDN博客
  • 服务器过载有哪些情况

    服务器过载有哪些情况 关于Web负载 除了对Web负载的特征进行分析以便在评测时更好地再现真实负载之外 还要考虑Web服务器所在的网络环境下负载的情况 人们不仅要求服务器满足正常的工作负载要求 而且在高峰时期依然要保持较高的吞吐量 但是 服
  • Python数据分析:从入门到进阶,一篇文章带你飞!

    随着大数据时代的来临 数据分析已经成为了各行各业不可或缺的一环 而Python作为数据分析的利器 更是备受推崇 今天 我将为大家带来一篇关于Python数据分析的介绍 让我们一起走进数据的世界 探索Python的魅力 一 Python数据分
  • Pipeline 助您轻松驾驭海量数据!

    前言 数据治理在当今信息时代变得至关重要 随着数据量的不断增长和多样化 组织需要有效地管理和利用这些数据 以支持业务决策和创新发展 不论是做数据分析还是数据解析 利用 Pipeline 可以帮助组织实现数据治理的自动化和规范化 为组织提供更
  • Python数据分析原来这么简单!5分钟上手,让你成为数据分析达人!

    前言 数据分析是如今信息时代的核心技能之一 通过对大量数据的收集 整理 处理和分析 数据分析师可以从中提取出有价值的信息 为企业决策提供支持和指导 而Python作为一种简单 易学且功能强大的编程语言 成为了数据分析的热门工具之一 本文将为
  • JAVA 版多商家入驻 直播带货 商城系统 B2B2C 之 鸿鹄云商B2B2C产品概述

    一 产品简介 我们的JAVA版多商家入驻直播带货商城系统是一款全 面的电子商务平台 它允许商家和消费者在一个集成的环境中进行互动 系统采用先进的JAVA语言开发 提供多商家入驻 直播带货 B2B2C等多种功能 帮助用户实现线上线下的无缝对接
  • 四大校招是否可以有内推?机会大吗?

    四大也是有内推的 机会大小还是看你的实力了 需要自己评估 内推机会可以从这些渠道找一下 具体根据自己的情况来 熟人内推 能找到熟人内推是最好的 但是也很考验人脉 付费内推 有些职业培训机构会做付费内推 价格不菲 不太建议 社交媒体 比如 小
  • setbcdlocale.dll文件丢失导致程序无法运行问题

    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题 如果是新手第一时间会认为是软件或游戏出错了 其实并不是这样 其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库 这时你可以下载这个setbcdl
  • 免费图片文字识别软件好用吗?分享这3个图文转换利器给你

    有什么软件可以自动识别图片文字吗 当然有了 随着科技的不断发展 越来越多的软件和应用涌现出来 帮助我们更轻松地识别图片中的文字 这些软件不仅可以帮助我们快速准确地获取图片中的信息 还为我们提供了更多的便利和效率 无论是学习 工作还是生活中
  • k8s集群内部署nexus

    一 前言 在k8s集群中部署nexus服务需要使用到pv pvc服务来存储nexus的数据 需要使用service服务来提供对外访问nexus服务的端口 需要使用deployment服务来管理nexus服务 接下来就是用这些服务来在k8s集
  • Python数据分析学习路线详细版总结

    数据分析人人都有必要掌握一点 哪怕只是思维也行 下面探讨Python数据分析需要学习的知识范畴 结合自己的经历和理解 总结的 学习大纲 有些章节带有解释 有些没有 当然 关于学习范畴 可能每个人的理解都不太一样 以下仅供参考 1 数据分析思
  • 干货 | Sqlmap常用手册(收藏)

    sqlmap常用手册 目录 sqlmap常用手册 一 sqlmap介绍 二 常用命令 二 进阶命令 technique BEUST prefix与 suffix level 三 注入https网站
  • 《OCAD光学系统自动设计程序》好书分享

    OCAD是一款具有鲜明工程化特色的中国光学自动设计软件 程序重点在于可以首先进行复杂光学系统的初始布局 进行设计前期的总体方案设计 可以对各类典型光学系统自动进行初始结构设计 作为一款光学系统辅助设计软件 SEEOD以光的直线传播 数学几何
  • Web自动化框架中验证码识别处理全攻略,让测试更得心应手!

    前言 随着Web应用程序的不断发展 自动化测试已成为项目开发中必不可少的一环 然而 验证码的出现却经常会使自动化测试变得更具挑战性 为了解决这个问题 我们需要一种方法来自动识别和处理验证码 从而提高自动化测试的效率和准确性 本文将介绍如何封