前言:
本专栏是以Selenium 4.0 +Python 3为基础的UI自动化测试,小编结合自己多年的工作实践经验将工作过程中对Selenium的思考、实践倾囊相授:主要包括Selenium基础用法、高级用法、测试环境切换、图表自动化、PO模式(页面对象)、关键字模式、持续集成、测试报告生成、疑难杂症等,通过对本专栏的学习读者能从0到1极大的提升自己的Web UI自动化测试技术。
ps:在学习本专栏前,读者需要一定的Python编程基础才能够更快的进行学习,本专栏不会对Python编程语言进行任何讲解只涉及对Selenium Python库的使用,请知悉~
Selenium基础篇:
主要介绍Selenium的基本操作,包括:
编写第一个自动化测试脚本
你将学会从selenium库的安装到第一个selenium测试脚本的编写。
驱动管理
使用webdrivermanage对驱动程序进行管理,不需要去手动下载驱动程序。
Selenium的元素定位策略
详细介绍selenium的七大定位大法:class name、css selector、id、name、link text、partial link、text、tag、name、xpath进行定位。
理解Selenium常见的异常
理解常见的异常对解决问题会有很大的帮助。
Selenium Web元素交互
包括元素的点击、发送文本、清除文本、单选、复选等操作。
Selenium 网络元素的信息
如元素是否显示、获取文本、获取元素属性等。
Selenium 页面加载策略
详细介绍selenium三种页面加载策略。
Selenium 执行速度慢原因总结
为什么自动化测试脚本执行慢,本文将逐一分析。
Selenium 元素不能定位总结
根据小编实际工作经验,对Selenium元素不能定位进行总结。
Selenium高级篇:
主要包括Selenium的高级操作内容:包括ActionChains、ActionBuilder、ExceptedConditon、事件监控等,让您在处理疑难杂症时更游刃有余。
Selenium ActionChains
当传统的Selenium API不起作用时不妨试试Selenium ActionChains提供的接口,它几乎支持所有Selenium提供的传统API操作,如:click()、clear() 、move_to()等。
Selenium 相对定位
在某些情况下,如果页面复用的前端组件较多的时候,可能一个定位方法会定位到N个一样的元素,使用相对定位可以精准定位到目标元素,即A相对于B的位置(上下左右)。
Selenium中常用的JS操作
很多情况下Selenium 常规的API没法完成所有的交互操作,这时候我们就需要借助Web的瑞士军刀JavaScript来进行web交互了,通过selenium执行js代码完成selenium不能完成的操作。
Selenium 浏览器坐标转桌面坐标
在某些特殊情况下需要借助坐标点击来实现元素交互,小编提供一种解决思路。
Selenium 获取接口响应数据
在进行UI交互的时候想获取接口响应数据,没问题!这是可以的,本篇文章提供一种解决思路。
Selenium 显示等待、隐式等待及流畅等待
帮助读者理解不同等待机制的区别,以合理的利用好等待相关的API,让测试事半功倍。
Selenium同窗口和标签一起工作
WebDriver 没有区分窗口和标签页。如果你的站点打开了一个新标签页或窗口,Selenium 将允许您使用窗口句柄来处理它。 每个窗口都有一个唯一的标识符,该标识符在单个会话中保持持久性。因此如何在正确的时机切换窗口就尤为重要了。
Selenium 捕获 console logs (Java)
有时候在进行自动化测试的时候控制台输出会帮忙定位问题,所以捕获控制台输出就显得很重要了~
使用Selenium与Chrome DevTools交互(Java)
开发人员工具是调试和分析网页的强大工具,许多现代浏览器都为其提供内置支持。它允许开发人员检查元素、调试JavaScript和分析网络活动。这篇文章将讨论Selenium如何与Chrome DevTools一起用于自动化任务和测试网页。
Selenium查找svg元素
svg是一种非标准的HTML元素,那么我们该如何对它进行定位呢,本篇为了解开谜题。
Selenium图表自动化篇
越来越多的系统集成了报表,如何对报表进行UI自动化呢?小编撰写了4篇分别介绍图表自动化的思想,以及三种图表自动化的实操。
Selenium图表自动化开篇
介绍了目前市场上主流的图表库及其所涉及的技术及对其的探索。
Selenium折线图自动化测试
以echarts图表库为例,讲解了如何对折线图进行交互。
Selenium 柱状图自动化测试
以echarts图表库为例,讲解了如何对柱状图图进行交互。
Selenium 饼图自动化测试
以echarts图表库为例,讲解了如何对饼图图进行交互。
Selenium框架篇
主要介绍了2个主流的Selenium框架包括PO模式(Page Obeject)和关键字驱动,这是目前很多自动化平台都会用到的测试框架,小编将详细介绍这2个框架的核心实现包括如何去实现。
Python Selenium 关键字驱动
这个思想其实是基于Selenium IDE录制思想来的,将某些操作封装成一个 关键字,然后通过来识别关键字达到自动化的目的。
Selenium登录关键字封装
详细介绍了以登陆为例如何封装一个业务流程作为关键字。
关键字驱动测试报告集成到Allure Report
默认情况下Allure是不支持关键字的报告的,如何破解呢?本文将详细介绍。
Pytest测试框架篇
好马配好鞍,当测试用例够多时纯使用Selenium进行测试用例管理就会很混乱了,就需要测试框架来组织测试用例了,Pytest是一个很好的Python 测试框架,其丰富的插件系统、上下文管理、钩子函数的高可玩性让在测试管理上游刃有余。
此部分主要会介绍:
如何使用Pytest对测试用例进行测试前环境的准备,以及测试后环境的清理?
即传统单元测试的setup\teardown操作。
如何对测试用例进行分组?
实际项目中会存在不同的测试环境,例如:开发环境(dev)、测试环境(sit)、验收环境(uat)、生产环境(prd)因此对测试用例进行分组很有必要。
如何设置测试用例的顺序?
在测试过程中会存在一个场景依赖另一个场景的情形,例如购物操作,需要先执行登陆操作后才能进行购买。
如何设置失败重试?
有些测试用例由于某些因素可能会出现失败,增加重试会加强测试用例的健壮性
如何使用软断言保证测试不会因为某个验证点失败而中途中断?
常规的断言操作在没有异常情况下都会测试通过,但是如果多个断言情况下,一个前置断言失败后,后面的断言就执行不到就会导致测试失败,本专栏中会告诉读者如何设置软断言保证测试的健壮性。
如何设置测试过程日志?
日志对问题排查或者测试记录主要重要意义,一个成熟的框架日志系统这块必不可少。
如何对测试环境进行切换?
一套测试代码如何无缝切换测试环境呢?这个也是Pytest擅长的。
如何集成测试到Allure测试报告?
还在用HtmlReport生成测试报告?不妨试试Allure测试报告框架吧,多维度的展示界面,丰富的报告接口,还不满足?当然你也可以自己二次开发。
Jenkins持续集成篇
UI自动化要持续的运行才能体现其价值,本篇讲述如何将项目集成到Jenkins进行持续运行并推送测试报告
Jenkins 有头模式运行selenium
有些情况下需要使用Jenkins在有头模式下运行测试,这样可以进行视频录制啥的,本篇讲述如何让Jenkins有头模式运行自动化测试。
Jenkins邮件推送配置
如何让项目组其他成员也能查看到测试报告呢,快来使用Jenkins推送报告吧。
完结篇
其他同事要加入自动化测试项目协同开发,如何生成项目接口测试文档?如何将项目封装成类库给其他成员引用?别急,本篇将讲述如何生成自动化项目的接口测试文档助你一臂之力。
使用sphinx生成API文档
本文详细介绍如何使用sphinx来生成漂亮的接口测试文档,包括如何写注释等。
打包Python项目
想将自己封装的库给其他项目引用?来打包吧,本教程将指导您如何打包一个简单的Python项目。它将 向您展示如何添加必要的文件和结构来创建包,如何 构建包,以及如何将其上传到Python包索引(PyPI)。
版权归原作者 知识的宝藏 所有, 如有侵权,请联系我们删除。