06 - Python3.x + Selenium3.x WEB自动化讲堂
2022-05-26 13:09:21 2 举报
AI智能生成
登录查看完整内容
为你推荐
查看更多
Web端自动化测试脑图及案例资源,主要包括自动化测试理论指导,基于 Python 3.x + Selenium 3.x 技术栈,以案例驱动方式为核心驱动
作者其他创作
大纲/内容
自动化测试理论化指导
能够理论结合工具开展自动化测试
教学目标
案例驱动
举一反三
问题自由探讨解决
课程方法
认识自动化测试
应用场景及局限性
自动化简述
项目简介
测试用例
市面常见自动化测试工具
开源翘楚 Selenium 家族史
搭建 Python 3.x + Selenium 3.x 测试环境
技术选型
超链接
一本手册闯江湖
任务:百度一下,你就知道任务描述:1. Selenium的测试环境准备2. 新建测试脚本文件“baidu_auto_search.py”,用于存放本案例脚本3. 编写脚本,实现根据关键字自动进行百度搜索操作4. 退出浏览器,结束本次测试
学以致用
理论指导
登录场景脚本编写
浏览器的常用操作
Web页面元素的定位操作
Web页面元素的基本操作
WebDriver API 初探
线性版自动化测试脚本
线性脚本函数化重构
复用登录脚本
登录用例的编写(正反各一例)
模块版自动化测试脚本
任务:登录增强版任务描述:针对被测程序的登录模块,应用决策表法编写至少8条用例,并将其脚本化。项目平台:http://iwebsns.bljt.top/
案例驱动(上)
POM简介
页面层(Page Layer):将被测程序的页面作为单独的类保存,每个类将具有声明为变量的WebElements和作为方法执行的动作。
测试层(Test Layer):将保存被测程序及其验证部分的测试用例。
可以使用 2个模块/包 来构造设计模式
为被测程序的每个页面创建一个类
在每个类中,将所有Web元素声明为变量
为在Web元素上执行的操作创建方法
页面层(Page Layer)
初始化浏览器驱动实例并打开被测程序
为每个网页创建PageLayer类的实例对象,并将驱动实例作为参数传递
使用创建的对象,调用PageLayer类(针对每个网页)中的方法以执行操作/验证
重复步骤3,直到执行了所有操作,然后关闭驱动实例
测试层(Test Layer)
实现指导
更易维护, 任何用户界面更改都将反映该类中使用的任何位置
健壮并使代码可读(方法具有更真实的名称)
提高代码的可重用性(对象存储库独立于测试用例)
代码优化,使代码变得更少
优点
Page Object Model
测试用例(TestCase)
测试脚手架(TestFixure)
测试套件(TestSuite)
测试扫描器(TestLoader)
测试运行器(TextTestRunner)
unittest 框架
单元测试框架集成
_outcome.errors
截图时机
browser.get_screenshot_as_base64()
browser.get_screenshot_as_file()
selenium内置截图
pillow
python第三方截图
常用截图方法
截图管理
logging
标准库
loguru
第三方库
日志管理
HTMLTestRunnerCN
BeautifulReport
测试报告
yagmail
邮件发送
POM增强
任务:登录&注册POM任务描述:针对被测程序的登录和注册场景,应用POM设计模式编写自动化测试脚本,实现测试报告的生成及邮件发送。项目平台:http://iwebsns.pansaifei.com/
案例驱动(下)
browser.maximize_window()
最大化
browser.minimize_window()
最小化
前进
后退
标题
地址
定位
cookies
selenium.webdriver.remote.webdriver
浏览器操作
id
name
class_name
tag_name
link_text
partial_link_text
css_selector
xpath
find_element_by_xxx(\"xxx\")
ID
NAME
CLASS_NAME
TAG_NAME
LINK_TEXT
PARTIAL_LINK_TEXT
CSS_SELECTOR
XPATH
单元素定位
find_elements_by_xxx(\"xxx\")
多元素定位
元素定位
输入
点击
文本内容
元素状态
子元素定位
selenium.webdriver.remote.webelement
元素操作
呆板等待点
time.sleep
隐式等待点,全局等待点
browser.implicitly_wait(seconds)
显式等待点,特有情况
selenium.webdriver.support.wait
元素等待
browser.switch_to.frame()
browser.switch_to.parent_frame()
browser.switch_to.default_content()
框架层切换
selenium.webdriver.support.select
下拉列表
悬停
拖拽
右击
双击
单击
键盘
selenium.webdriver.common.action_chains
模拟键鼠操作
selenium.webdriver.common.keys
键盘按键
browser.current_window_handle
browser.window_handles
browser.switch_to.window(window)
多窗口切换
browser.switch_to.alert
accept()
dismiss()
send_keys()
text
selenium.webdriver.common.alert
警告框处理
页面截图
关闭验证码
绕过验证码
pytesseract 模块
机器学习之验证码识别
识别验证码
验证码处理
send_keys
普通上传
autoIT
pywin32 模块
SendKeys 模块
插件上传
browser.download.dir
browser.download.folderList
browser.download.manager.showWhenStarting
browser.helperApps.neverAsk.saveToDisk
Firefox 文件下载(FirefoxProfile)
download.default_directory
profile.default_content_settings.popups
Chrome 文件下载(ChromeOptions)
下载
文件上传、下载
selenium.common.exceptions
异常处理
调用 JavaScript 代码
WebDriver API 再详解
Chrome ---> 谷歌商店 ---> 搜索
Firefox ---> 附加组件 --> 扩展 ---> 搜索
浏览器扩展安装
录制及使用
导出脚本
Selenium IDE
在多种浏览器,多种版本的浏览器,不同操作系统里的浏览器里执行你的测试
缩短完成测试的时间
应用场景
官方配置
确认 visgrid 与 selenium 版本匹配
visgrid 的浏览器驱动与本机浏览器版本要对应
java -jar visgrid-1.25.jar
启动 visgird
配置 hub 和 node
visgrid
第三方集成
环境配置
执行过程
Selenium Grid
Jenkins 环境准备
创建新任务
配置任务
构建任务
Selenium 自动化配置
Jenkins 配置
乘 Jenkins 全自动化
扩展技能
POM 设计模式
WebDriver API 使用
任务:大展身手任务描述:针对被测项目注册模块、登录(登录、注销)模块、日志模块(创建、编辑、删除、查看日志)编写自动化测试脚本,实现测试报告的生成及邮件发送。项目平台:http://iwebsns.pansaifei.com/
综合案例
配套章节源代码
selenium documentation
《Selenium官方文档》
《Selenium3自动化测试实战――基于Python语言》
推荐书籍
初级篇
Python3.x + Selenium3.xWEB自动化讲堂
0 条评论
回复 删除
下一页