本节大纲
- 需求分析、项目流程演练
- 自动化用例设计
- 编写自动化脚本
- 验证码处理
01.需求分析
需求分析
熟悉系统业务流程 手工执行业务流程02.自动化用例设计
设计用例
编写自动化测试用例 1. 从功能用例中筛选 2. 新编写测试用例 • 设计用例的方法与黑盒测试用例方法一致,都可以用到等价类、边界值、因果图、 判定表等方法。03.编写自动化脚本
编写代码
将业务流程用脚本代码的形式来实现,并对代码进行调试04.验证码处理
验证码处理
问题:登录或注册时有验证码怎么处理? 1. 跟开发沟通,让开发屏蔽验证码,对于验证码进行手工测试 2. 跟开发沟通,让开发设置万能验证码,便于自动化测试 3. 用自动化脚本实现验证码识别 • cookie • 图像识别验证码处理-cookie
什么是cookie
当你浏览某网站时,由 Web 服务器置于你硬盘上的一个非常小的文本文件,它可以记录你的用户 ID 、 密码、浏览过的网页、停留的时间等信息。当你再次来到该网站时,网站通过读取Cookie ,得知你 的相关信息,就可以做出相应的动作,如在页面显示欢迎你的标语,或者让你不用输入ID 、密码就 直接登录等等。如果你清理了Cookie ,那么你曾登录过的网站就没有你的修改过的相关信息。 如果没有 Cookie 的存在,网络对于我们来说不会如此便捷。它存储着你的网站登录信息,如果没有 他们,你将不能够登陆网站。网站通过 Cookie 信息来记忆以及辨认你的帐号,它可以记忆你的偏好 设置。它还可以使网站提供个性化的内容,举个例子,如果你在淘宝上购物,淘宝可以记忆你所查 看过的产品并据此来向你来推荐商品,即便你没有登陆个人帐号。验证码处理-cookie
自动化获取 cookie 实现免登陆,跳过验证码验证操作 1. 获取cookie--driver.get_cookies() 2. 写入cookie--driver.add_cookie(cookie_dict) 局限性 1. 大型网站验证机制比较特殊,这种情况可能无法实现登录的操作 2. 如果登录的用户数据不同,实现不方便cookie免登陆案例
打开百度网盘 https://pan.baidu.com/ ,用 cookie 实现网盘免登陆操作
验证码处理-图像识别
验证码识别操作:第一步:截图验证码区域;第二步,识别截图中的内容 1. 先进行截图 • 整个页面截图 -save_screenshot('xx.png') 或者 get_screenshot_as_file('xx1.png') • 对元素截图 --pip install pillow验证码处理-图像识别
验证码识别操作:第一步:截图验证码区域;第二步,识别截图中的内容 1. 对元素截图 • 解决思路:先对整个界面截图,再从截图中截取需要的图片范围 • 第一步:截取整个界面 • 第二步:导包:from PIL import Image • 第三步:定位到截图的元素,找到截图的范围,上、下、左、右 • 第四步:打开界面截图,im=Image.open('reg.png') ;截取图偏范围, im=im.crop([left,top,right,bottom]) • 第四步:保存截图,im.save('code.png')
截图验证码-code
问题: 截图位置出现偏移怎么办? 将电脑显示页面改成较小100% (win8 及 win8 以上的系统适用)
验证码处理-图像识别一
2. 在对截图进行识别: 方式一: pytesseract+tesseract-ocr 方式二:调用第三方接口来识别验证码处理-图像识别一
方式一:pytesseract+tesseract-ocr; 需要的第三方库: pytesseract 、 tesseract-ocr ,在使用 pytesseract 之前,必须安装 tesseract-ocr ,因为 pytesserat 依赖于 tesseract-ocr ,否则无法使用 pytesseract 安装: pip install pytesseract验证码处理-图像识别一
tesseract-ocr 下载安装与配置,具体查看 Tesseract-OCR 下载安装与配置 .docx 文档(微信公众号:程序员阿沐)
验证码处理-图像识别二
方式二:调用第三方接口来识别 百度 API 接口识别验证码步骤: 1. 文字识别:https://ai.baidu.com/tech/ocr/general 2. 注册:点击控制台,注册登录 3. 获取AK 和 SK : • 登录后,点击产品服务,搜索文字识别 • 创建应用,填写信息:1:- 应用名称自定义, 2- 接口选择,默认,文字是被包名 - 不需要,应用描述 - 自定义; • 点击立即创建; • 再点击查看应用详情:API Key- 就是 client_id 的值, Secret Key- 就是 client_secret 的值 4. 调用接口:通用文字识别(标准版)接口文档;https://ai.baidu.com/ai-doc/OCR/zk3h7xz52验证码处理-图像识别二
微信搜一搜【程序员阿沐】关注这个文绉绉的程序员,这样的干货内容还有近百篇。关注后主页点击【领取资料】有我准备的一线大厂面试资料和简历模板,希望大家都能找到心仪的工作,学习是一条时而郁郁寡欢,时而开怀大笑的路,加油。如果你通过努力成功进入到了心仪的公司,一定不要懈怠放松,职场成长和新技术学习一样,不进则退。如果有幸我们江湖再见!