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

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

一. 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](https://img-blog.csdnimg.cn/img_convert/745f6312207a03867b2a487596b4d1b2.png)
![img](https://img-blog.csdnimg.cn/img_convert/15f7ad43a8a6fafe133e22326dfa9535.png)

**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化的资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618631832)**

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

*

**[需要这份系统化的资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618631832)**

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

  • 23
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值