
selenium3 + python3之web自动化测试
文章平均质量分 76
此专栏将持续更新基于selenium3 + python3的web自动化测试技术,分享学习过程中的一些感悟!若有心跟随文章学完本专栏,即可自己搭建一套Web自动化框架,文章中如有不对的地方还请在评论区提出,虚心接受指教!
Keyboard_123
如影随风,专注测试技术研究
展开
-
补充:如何提高selenium的运行速度?
已经通读该专栏文章的同学,或许对UI自动化测试有了一定的掌握,细心的同学肯定会发现一个问题,当用例量达到一定程度时,对于整体用例的执行速度肯定不会很满意。如何操作,本文将只做selenium驱动已打开浏览器的方法讲解(以Edge浏览器为例),如何将此方法融合到自动化测试框架中,请各位自己研究,研究出来可以分享在评论区。右键浏览器快捷图表,打开“属性”窗口,在目标栏中直接添加上述两个参数,,若访问请求成功,会返回一些浏览器信息,即参数设置成功。执行命令后,会打开浏览器,在浏览器访问。体验下飞速的感觉吧!原创 2023-11-23 10:39:36 · 11832 阅读 · 0 评论 -
补充:自动化测试高级应用之python多线程的使用-新方法
本文新的方法,对原有的run_allcase.py进行了改写,分为test_runner.py 和run_allcase.py两个文件。前段时间在网上学习多线程跑用例的时,发现一种更简洁,优雅的使用多线程的方法,在此分享给大家。原创 2023-11-23 10:00:43 · 10931 阅读 · 0 评论 -
第八章 第四节 Selenium Grid分布式执行测试用例之Selenium Grid 应用
Selenium Grid分布式执行测试用例之Selenium Grid 应用原创 2022-01-10 01:32:22 · 10392 阅读 · 0 评论 -
第八章 第三节 Selenium Grid分布式执行测试用例之Selenium Gird 工作原理
Selenium Grid 是用于设计帮助我们进行分布式测试的工具,其整个结构是由一个中心节点(hub)和若干个代理节点(node)组成。hub 用来管理各个代理节点的注册和状态信息,并且接受远程客户端代码的请求调用,然后把请求的命令再转发给代理节点来执行。原创 2022-01-10 01:27:34 · 10487 阅读 · 0 评论 -
第八章 第二节 Selenium Grid分布式执行测试用例之selenium server 环境配置
要想在 webdriver 中运行远程环境就必须要安装 selenium server,要想运行 selenium server (前面有介绍过selenium server是一个jar包)需要安装 java 环境,下面跟笔者一起配置 selenium server 环境。原创 2022-01-10 01:21:07 · 10704 阅读 · 0 评论 -
第八章 第一节 Selenium Grid分布式执行测试用例之selenium各版本工作原理
Selenium Grid 允许用户将测试案例分布在几台机器上并行执行。用户可以在一个集中控制点控制不同的环境。在不同的浏览器或不同的操作系统上面更为容易的运行测试案例。允许用户更多的利用虚拟资源减少了维护测试环境的成本。原创 2022-01-10 01:15:50 · 10588 阅读 · 0 评论 -
第七章 第五节 自动化测试高级应用之定时任务功能
三种方法实现定时启动运行我们的自动化测试脚本功能。原创 2022-01-10 01:08:27 · 10875 阅读 · 0 评论 -
第七章 第四节 自动化测试高级应用之python多线程的使用
本节就将具体介绍一下,多线程在我们自动化测试中的使用。1、多线程在浏览器兼容性测试中的应用;2、多线程在批量执行用例中的应用原创 2022-01-06 22:06:07 · 11955 阅读 · 0 评论 -
第七章 第三节 自动化测试高级应用之logging日志模块的引入
本节我们就将介绍如何在我们的自动化测试框架中引入日志模块的使用。原创 2022-01-06 21:03:34 · 10396 阅读 · 0 评论 -
第七章 第二节 自动化测试高级应用之配置文件使用
在Python 的标准库中有一个 configparser 模块,其提供一套 API 来读取和操作配置文件(因为是标准库中的模块,所以无需下载安装)。我们接下来会详细介绍一下configparser 模块的使用。原创 2022-01-06 20:25:52 · 10459 阅读 · 0 评论 -
第七章 第一节 自动化测试高级应用之自动邮件发送测试报告
python 的 smtplib 模块提供了一种很方便的途径发送电子邮件。它对 SMTP 协议进行了简单的封装。本节我们将通过具体的实例介绍常用的三种发邮件方式:发送纯文本邮件;发送HTML邮件;发送带附件的邮件。原创 2022-01-06 20:10:50 · 10486 阅读 · 0 评论 -
第六章 第四节 selenium+unittest测试框架之用例读取
本节我们来解决批量测试文件添加到TestSuit(测试套件)的问题,也可以说是用例读取的问题,这里介绍两种方法来解决。1、通过循环语句读取用例;2、通过discover方法读取用例原创 2021-12-17 00:33:16 · 19216 阅读 · 0 评论 -
第六章 第三节 selenium+unittest测试框架之重复代码封装
在我们的测试用例中重复最多的代码或许就是账号的登录和退出了,当然根据自身负责的实际项目特点,编写的用例中还会有许多其他的重复的操作,对于这些重复的操作,我们都可以把这部分代码封装成一个方法,在需要用到的地方直接调用就好了。原创 2021-12-17 00:24:53 · 18053 阅读 · 0 评论 -
第六章 第二节 selenium+unittest测试框架之批量执行测试用例
selenium+unittest测试框架之批量执行测试用例原创 2021-12-17 00:19:29 · 19177 阅读 · 0 评论 -
第六章 第一节 selenium+unittest测试框架之HTMLTestRunner测试报告生成
适合unittest框架用的第三方自动化测试报告库HTMLTestRunner,已进行优化美化~原创 2021-12-17 00:05:54 · 10826 阅读 · 0 评论 -
第五章 第三节 unittest单元测试框架解析
使用unittest前需要了解该框架的五个概念:test fixture、test case、test suite、test runner、test loader原创 2021-12-16 22:54:34 · 10337 阅读 · 0 评论 -
第五章 第二节 引入unittest单元测试框架
在seleinium IDE 2.0版本中脚本录制完成之后,可以将其导出为加 python unittest 单元测试框架的相应脚本,如下脚本baidu.py,可惜当前3.0版本还不支持,我们依然以百度搜索“selenium教程”为实例介绍引入unittest框架的脚本。原创 2021-12-08 00:23:49 · 10287 阅读 · 0 评论 -
第五章 第一节 selenium IDE使用介绍
selenium IDE 是 selenium 家族的中的一员,它是嵌入到 firefox 浏览器的一个插件,这里之所以要介绍 selenium IDE 是因为我们可以将 selenium IDE 录制的脚本转换成不同语言脚本,有助于帮助我们尽快熟悉脚本语言以及测试框架。原创 2021-12-08 00:20:36 · 10672 阅读 · 0 评论 -
第四章第二节 自动化用例设计
本章将简单探讨自动化测试用例的设计,笔者认为不管是手工测试,自动化测试,还是性能测试都是以测试用例为前提的。因为测试用例是测试人员综合自己经验从需求中挖掘和提炼而来的,所以不管什么类型的测试工作,我们都不能盲目开展。任何测试工作都应该以需求为基础,以测试用例为导向进行实施。原创 2021-12-07 23:49:34 · 10584 阅读 · 0 评论 -
第四章第一节 自动化测试模型介绍
自动化测试框架就是一个集成体系,在这一体系中包含了测试功能的函数库、测试数据源、测试对象识别标准,以及各种可重用的模块。自动化测试框架在发展的过程中经历了几个阶段,模块驱动测试、数据驱动测试、对象驱动测试。本章就带领读者了解这几种测试模型。原创 2021-12-07 23:35:44 · 10408 阅读 · 0 评论 -
第三章 第十六节 基于Python3的Webdriver API——Cookie处理和图形验证码问题解决
selenium处理Cookie获取问题和图形验证码问题原创 2021-11-24 23:52:26 · 10237 阅读 · 0 评论 -
第三章 第十五节 基于Python3的Webdriver API——控制浏览器滚动条
selenium控制浏览器滚动条原创 2021-11-24 23:45:28 · 10243 阅读 · 0 评论 -
第三章 第十四节 基于Python3的Webdriver API——调用JavaScript
selenium执行 js 一般有两种场景:一种是在页面上直接执行 JS;另一种是在某个已经定位的元素上执行 JS。原创 2021-11-24 23:42:58 · 10616 阅读 · 0 评论 -
第三章 第十三节 基于Python3的Webdriver API——上传下载文件
selenium上传和下载文件的方法原创 2021-11-24 23:27:18 · 10758 阅读 · 0 评论 -
第三章 第十二节 基于Python3的Webdriver API——分页处理
selenium处理web 页面上的分页功能:获取总页数,翻页操作(上一页,下一页),输入具体页数进行跳转原创 2021-11-24 23:21:30 · 10922 阅读 · 0 评论 -
第三章 第十一节 基于Python3的Webdriver API——alert/confirm/prompt警示弹窗的处理
webdriver 中处理 JavaScript 所生成的 alert、confirm 以及 prompt 是很简单的。具体思路是使用switch_to.alert方法定位到 alert/confirm/prompt警示弹窗(前面实例中已有涉及到此方法的使用)。然后使用text、accept()、dismiss()和send_keys(keysToSend) 按需进行操做。原创 2021-11-24 23:16:13 · 10679 阅读 · 0 评论 -
第三章 第十节 基于Python3的Webdriver API——浏览器多窗口处理
selenium处理切换浏览器多窗口原创 2021-11-24 23:10:40 · 10423 阅读 · 0 评论 -
第三章 第八节 基于Python3的Webdriver API——层级定位
selenium层级定位,先定位父元素,然后再通过父元素定位子孙元素。原创 2021-11-22 22:28:59 · 10976 阅读 · 0 评论 -
第三章 第九节 基于Python3的Webdriver API——定位一组对象
WebElement 接口同样提供了定位一组元素的方法 find_elements。定位一组对象一般用于以下场景:1、批量操作对象,比如将页面上所有的 checkbox 都勾上2、先获取一组对象,再在这组对象中过滤出需要具体定位的一些对象。比如定位出页面上所有的checkbox,然后选择最后一个。原创 2021-11-22 22:29:37 · 10422 阅读 · 0 评论 -
第三章 第七节 基于Python3的Webdriver API——定位frame/iframe中的元素
selenium基于python有如下三种方法对frame元素标签进行操作。driver.switch_to.frame(frame_reference)driver.switch_to.default_context()driver.switch_to.parent_context()原创 2021-11-22 22:08:41 · 10816 阅读 · 0 评论 -
第三章 第六节 基于Python3的Webdriver API——设置等待时间之显式等待WebDriverWait
显式等待WebDriverWait()同样也是 webdirver 提供的方法。配合该类的until()和until_not()方法,能够根据判断条件而进行灵活地等待。它主要的意思就是:在设置时间内,程序每隔一段时间(默认是0.5秒)检测一次,如果条件成立了,则执行下一步,否则继续等待,直到超过设置的最长时间,然后抛出TimeoutException。一、WebDriverWait()的语法配合until()方法使用:WebDriverWait(self, driver, timeout, p原创 2020-12-10 00:19:23 · 10669 阅读 · 0 评论 -
第三章 第五节 基于Python3的Webdriver API——设置等待时间之隐式等待implicitly_wait
现在越来越多的 web 应用使用 Ajax 技术。当一个页面加载到浏览器后,这个页面的很多元素加载的时间可能不一致,这就使得元素定位比较尴尬了。如果某个要定位的元素还没有加载出来,在定位的时候,就会抛出异常: NoSuchElementException,前面慕课网登录的实例就有这问题。这个时候,合理使用 wait ,我们就能很好的缓解这个尴尬。一种我们可以使用Python time模块自带的sleep()方法进行强制等待。此外,Selenium Webdriver 提供了两种类型的等待方法:隐式等待imp原创 2020-12-09 23:36:27 · 10526 阅读 · 3 评论 -
第三章 第四节 基于Python3的Webdriver API——实现鼠标和键盘事件
一、鼠标事件前面例子中我们已经学习到可以用 click() 来模拟鼠标的单击操作,而我们在实际的 web 项目测试中发现,有关鼠标的操作,不单单只有单击,有时候还会用到右击、双击、拖动等操作,这些操作包含在ActionChains 类中。ActionChains 类鼠标操作的常用方法:context_click() 右击 double_click() 双击 drag_and_drop() 拖动 move_to_element() 鼠标悬停在一个元素上 click...原创 2020-07-18 02:45:27 · 10345 阅读 · 0 评论 -
第三章 第三节 基于Python3的Webdriver API——操作测试元素
上一节讲到了不少知识都是定位元素,定位只是第一步,定位之后需要对这个元素进行操作。鼠标点击呢?还是键盘输入?这要取决于我们定位的元素所支持的操作。一般来说,所有有趣的操作与页面交互都将通过 WebElement 接口,包括上一节中介绍的对象定位,以及本节中需要介绍的常用对象操作。一、Webdriver中常用操作元素的方法clear() 清除元素的内容,如果可以的话 send_keys() 模拟按键输入 click() 单击...原创 2020-07-18 02:20:31 · 10263 阅读 · 0 评论 -
第三章 第二节 基于Python3的Webdriver API——Web页面元素定位
这一节的重要性,上一节最后已经提到,对象(元素)的定位和操作是自动化测试的核心部分,其中操作又是建立在定位的基础上的,因此元素定位就显得非常重要。(本专栏中用到的对象与元素同为一个事物)一个对象就像是一个人,他会有各种各样的特征(属性),比如我们可以通过一个人的身份证号、姓名或者他的住址找到这个人。那么一个元素也有类似的属性,我们可以通过这种属性特征区别于其它元素的属性来定位这个元素。当然,除了要操作元素时需要定位元素外,有时候我们只是为了获得元素的属性(class 属性,name 属性)、text 或原创 2020-07-18 01:50:50 · 10323 阅读 · 0 评论 -
第三章 第一节 基于Python3的Webdriver API——浏览器的操作
第三章将详细的讲解基于 Python3 的 Webdriver API,笔者更愿意读者自已去查询 Webdriver API 中各种操作方法的使用,为了保持本文由浅入深的完整性,本章将用相当篇幅介绍基于 Python3 语言的Webdriver 对各种操作的使用。通过本章的学习,我们掌握 Web 页面上各种元素、弹窗的定位与操作,以及浏览器 cookie 的操作,JavaScript 的调用等问题。这一节我们先来具体学习一下通过webdriver实现对浏览器进行一些常见的操作。一、浏览器窗口最大化原创 2020-07-17 23:38:01 · 10351 阅读 · 0 评论 -
第二章 第二节 使用Python IDLE编写你的第一个UI自动化测试程序
相信上一节的环境搭建过程已经让不少新手感到非常繁琐,万事开头难,我们有必要花一点时间在环境的搭建配置上,因为环境的搭建是后面实施自动化测试的前提。环境搭建好了,下面准备开始我们的第一个基于Python的自动化测试脚本,是不是有点小期待呢?不过为了更好的通过 IDLE 帮助我们编写 Python+Webdriver 脚本,我们需要先了解一下 IDLE。IDLE 提供了一个功能完备的代码编辑器,允许你在这个编辑器中编写代码,另外还有一个 Python Shell(Python 的交互模式),可以在其中试原创 2020-07-17 23:25:08 · 10719 阅读 · 0 评论 -
第二章 第一节 Python3 + selenium + Webdriver测试开发环境搭建
有了上一节的基础后,下面我们就开始动手搭建自己的自动化测试环境,这也是我们实施自动化测试的准备工作。本书只介绍在Windows 10系统下搭建Python3和Webdriver测试开发环境,如果读者选用其他操作系统或其它编程语言,请参考其它资料进行环境的搭建。一、安装Python3我们先到官网下载当前最新版本Python3.7.1,然后进行安装,下载地址:https://www.python.org/getit/安装过程中要注意勾选将安装路径加到系统路径,即系统环境变量。同时此安装过程是自带原创 2020-07-17 23:09:13 · 10570 阅读 · 3 评论 -
第一章 第三节 Web自动化测试相关前端技术简介
由于 selenium 基于 web 的自动化测试技术,我们的要操作的对象是页面,所以有必要对前端的技术和工具做一个简单的介绍。1、HTML 简介HTML(Hyper Text Markup Language)中文为超文本标记语言,HTML 是网页的基础,它并不是一种编程语言,而是一种标记语言,但我们可以在 HTML 标签中嵌入各种前端脚本语言,如VBScript、JavaScript 等。下面是一个简单的 HTML 页面:<html> <head>原创 2020-07-05 11:55:01 · 10283 阅读 · 0 评论 -
第一章 第二节 Selenium3.0工具介绍
一、什么是 Selenium?Selenium是使用最广泛的开源Web UI(用户界面)自动化测试套件之一。它最初由Jason Huggins于2004年开发,作为Thought Works的内部工具。 Selenium支持跨不同浏览器,平台和编程语言的自动化测试,它主要是用于 Web 应用程序的自动化测试,同时支持所有基于 web 的管理任务自动化。另外,Selenium可以和Maven,Jenkins和Docker等自动化测试工具集成,以实现持续测试。 它还可以与TestNG和JUnit等工具集原创 2020-07-02 21:30:07 · 10540 阅读 · 0 评论