![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
GUI自动化测试
文章平均质量分 92
基于selenium2
qtracer
有种全能的职业,叫测试。
展开
-
python+selenium自动化测试-1概述
用selenium自动化测试差不多两年了,有很多心得体会。在回归测试方面,selenium有很大的优势,一定程度上代替了手工测试,让我有更多时间关注项目业务和其他测试技术。学自动化技术至少要掌握以下几个步骤:获取元素,操作元素,设计脚本业务逻辑,获取返回结果,断言(返回结果与期望结果是否一致),最后自动出测试报告。值得一提的是,无论是web自动化还是APP自动化,获取元素都是最...原创 2019-09-09 14:23:27 · 6068 阅读 · 0 评论 -
python+selenium自动化测试-29关于自动化执行效率和稳定性的思考
原则:稳定优先级高于运行速度原创 2020-01-14 09:42:26 · 3038 阅读 · 1 评论 -
python+selenium自动化测试-4元素定位
说到元素定位,不得不说一下Firefox的两个插件firepath和firebug。firepath主要是弥补selenium IDE有时候录制一些网页元素无法定位到的缺陷,帮助查找元素。firebug主要用于网页的元素定位,是强大的元素定位工具。不过,火狐在更新到57版本之后,对这些使用旧技术实现的插件都不再支持了,但也可以通过在浏览器查看元素。浏览器更新换代较快,大部分的网站采用较新的技术架构...原创 2019-10-16 16:26:11 · 986 阅读 · 0 评论 -
python+selenium自动化测试-2环境搭建
目前selenium版本已经升级到3.0了,目前selenium3坑比较多,暂时没精力去研究,本系列依然以selenium2为基础。上个篇章说到,selenium2,其整合了selenium1和webdriver。webdriver曾经是selenium1的竞争对手,因为两者的互补性优势而合并。WebDriver 是基于面向对象的 API,它更多的是从用户角度出发。而 Selenium 提供的...原创 2019-10-15 09:42:28 · 569 阅读 · 0 评论 -
python+selenium自动化测试-5selenium常用API
driver=webdriver.Firefox()1、窗口最大化driver.maximize_window()2、设置窗口大小driver.set_window_size(1000,800)3、刷新driver.refresh()4、后退driver.back()5、前进driver.forward()6、关闭窗口driver.close()#...原创 2019-10-17 11:01:20 · 641 阅读 · 0 评论 -
python+selenium自动化测试-10进程与线程
进程,是计算机中程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。线程是程序执行流的最小单位,是进程的一个实体,是被系统独立调度和分派的基本单位。一个进程可以包含多个线程,进程和线程是一对多的关系。线程自己不拥有系统资源,在单个程序中同时运行多个线程完成不同的工作,称为多线程。线程和进程的区别在于,子进程和父进程有不同的代码和数据空间,而多个线程则共享数...原创 2019-10-20 09:53:40 · 848 阅读 · 0 评论 -
python+selenium自动化测试-17解决.click()无法点击的问题(多情况分析)
在测试过程中,有时候发现使用.click()无法展开二级菜单,遇到这个问题的时候,不妨可以试试模拟键盘的操作,用.send_keys(Keys.ENTER)便可以解决这个问题。from selenium.webdriver.common.keys import Keys...原创 2019-10-28 09:00:35 · 3926 阅读 · 0 评论 -
python+selenium自动化测试-18Firefox下载自动保存文件及浏览器弹窗处理
不能像chrome一样点击导出文件便能自动下载,是Firefox的一个巨大的坑。虽然最新版本的Firefox修复长期以后不可选“以后自动采用相同的动作处理此类文件”的Bug,在当次浏览器启用可以自动下载此类文件,但在Firefox下一次启动后,[选项-应用程序]中并不能找到‘xls文件’这种内容类型,也找不到相应的配置文件(如mimeTypes.rdf),意味着不能自动下载指定类型的文件。图01...原创 2019-10-29 11:36:35 · 2068 阅读 · 0 评论 -
python+selenium自动化测试-14文件上传和网页截图
1、文件上传一般的web端操作中,常见的上传文件类型有图片和excel等。文件上传一般都会用到标签,通过name或者id定位到input标签,用send_keys(“文件路径+文件名”)将文件选中到上传区域。find_element(By.ID,“pack”).send_keys(“文件路径+文件名”)2、网页截图测试过程中,会常常用到网页截图,方便排查测试用例执行情况。相关api在《p...原创 2019-10-23 11:06:26 · 478 阅读 · 0 评论 -
python+selenium自动化测试-8警告弹窗处理
弹窗主要有三种,alert、confirm和prompt。虽然弹窗不同,不过都是使用switch_to.alert方法对弹窗进行处理,现在看看这三种弹窗的不同。1、javaScript的alert窗口描述:只有一个确定按钮。这种一般应用于提示,或者强制用户去做某个动作等场景。alert=dirver.switch_to.alertalert.accept()#确认2、JavaS...原创 2019-10-18 10:04:27 · 995 阅读 · 0 评论 -
python+selenium自动化测试-16自动化测试模型
自动化测试模型,即自动化测试框架与工具设计的思想。有四种常用模型,分别是线性模型、模块化驱动模型、数据驱动模型和行为驱动模型(也称关键字驱动模型)。在工作实践中,最常用的是模块化驱动和数据驱动两种,联合使用的场景十分广泛。1、线性模型概念:线性模型的每个脚本都是相互独立的,且不会产生其他依赖与调用,单纯的来模拟用户完整的操作场景。逻辑清晰,但缺点非常明显:开发成本高,用例之间存在重复的操作。...原创 2019-10-24 22:13:29 · 580 阅读 · 0 评论 -
python+selenium自动化测试-12yaml数据配置
1、简介YAML是一个可读性高,用来表达数据序列化的格式。最明显的特征是:以数据为中心,而不是以标记语言为重点,通过缩进程度的不同来表达层次结构式的数据结构。其语法特点有:(1)大小写敏感(2)使用缩进表示层级关系(3)缩进时不允许使用Tab键,只允许使用空格(4)缩进的空格数目不重要,只要相同层级的元素左侧对齐即可yaml下载地址:http://pyyaml.org/wiki/PyYAML...原创 2019-10-22 09:09:35 · 1192 阅读 · 0 评论 -
python+selenium自动化测试-9WebElement类的常用函数
WebElement是页面元素的意思。在引用find_element(by,value)时,常常后面会对定位的元素进行操作。如find_element(By.ID,"btn").click()表示,对属性id为‘btn’的元素进行点击。下面讲一些常用的方法:1、.click() #点击,一般用于操作按钮、链接2、.clear() #清除信息,一般用于文本框清除文本值以作修改3...原创 2019-10-18 17:58:43 · 555 阅读 · 0 评论 -
python+selenium自动化测试-11excel文件的读写删改
...原创 2019-10-21 00:06:46 · 866 阅读 · 0 评论 -
python+selenium自动化测试-15断言与验证
在测试用例中,执行完测试用例后,最后一步是判断测试结果是pass还是fail,自动化测试脚本一般把这种生成测试结果的方法称为断言(assert)。断言,能够验证应用程序的状态是否同所期望的一致,提供了测试结果是True还是False,所有的断言方法都有一个msg参数,如果指定msg参数的值,则将该信息作为失败的错误信息返回。。断言的方法很多,下面只介绍几种常用的断言方法:1、assert#...原创 2019-10-24 08:47:55 · 2032 阅读 · 0 评论 -
python+selenium自动化测试-19CLASS_NAME定位元素错误
web自动化过程中,对于风格比较统一的界面,很多样式会出现重复,可能在使用CLASS_NAME定位时导致定位错误。如下图,你想用CLASS_NAME定位【新增】,find_element(By.CLASS_NAME,“btn.btn-sm.btn-info”),但是因为【一键删除】在【新增】的前面,且其class属性值为"btn btn-sm btn-info del-item",根据元素的查...原创 2019-11-01 10:22:02 · 675 阅读 · 0 评论 -
python+selenium自动化测试-20unittest跳过用例(skip)
一般有以下几种情况,会用到跳过用例:(1)当测试用例写完后,有些模块需要改动,会影响到部分用例的执行,这个时候我们希望暂时跳过这些用例,而不是将之删除;(2)前面某个功能运行失败了,后面的几个用例是依赖于这个功能的用例,如果第一步就失败了,后面的用例也就没必要去执行了,直接跳过就行;(3)选择的类型不同,导致操作该类型的页面功能有所差异,这时候需要跳过一些该类型不存在的功能。跳过用例,会用...原创 2019-11-06 14:10:51 · 1370 阅读 · 0 评论 -
python+selenium自动化测试-13使用JavaScript操作页面元素(含改变元素属性值)
在webdriver脚本代码中执行JavaScript代码,来实现对页面元素的操作。此种方式主要用于解决在某些情况下,页面元素的.click()、.send_keys()无法生效等问题。JavaScript操作页面元素为selenium自动化进阶部分。下面以例子做简单介绍。1、输入文本值searchInputBoxJS=”document.getElementById(‘kw’).value=...原创 2019-10-23 09:19:16 · 1473 阅读 · 0 评论 -
python+selenium自动化测试-6操作富文本框iframe
富文本的常见技术用到了iframe标签,并且在iframe里面实现了一个完整的HTML网页结构,使用普通定位模式将无法直接定位到富文本框对象。frame与iframe两者可以实现的功能基本相同,不过iframe比frame具有更多的灵活性。frame是整个页面的框架,iframe是内嵌的网页元素,也可以说是内嵌的框架。iframe和frame最大区别是在iframe所包含的内容与整个页面是一...原创 2019-10-17 14:22:10 · 985 阅读 · 0 评论 -
python+selenium自动化测试-23setUp()和tearDown()及setUpClass()和tearDownClass()的配对使用
① setUp():每个测试函数运行前运行② tearDown():每个测试函数运行完后执行③ setUpClass():必须使用@classmethod 装饰器,所有test运行前运行一次④ tearDownClass():必须使用@classmethod装饰器,所有test运行完后运行一次1、setUpClass()和tearDownClass()import unittestcl...原创 2019-11-12 23:31:23 · 1311 阅读 · 0 评论 -
python+selenium自动化测试-28Jenkins定时器功能
1、Jenkins简介Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。从持...原创 2020-01-05 20:58:02 · 312 阅读 · 0 评论 -
python+selenium自动化测试-22python单元测试框架unittest(原理详解)
1、unittest概述单元测试框架提供了一种统一的编程模型,可以将测试定义为一些简单的类,这些类中的方法可以调用希望测试的应用程序代码。单元测试框架提供了测试运行程序(runner),只需要单击按钮就可以执行所有测试。unittest单元测试框架是针对python语言开发的框架,适用WEB自动化测试用例的开发与执行,该测试框架可组织执行测试用例,并且提供了实际结果与预期结果对比的断言方法,判...原创 2019-11-11 18:04:32 · 866 阅读 · 0 评论 -
python+selenium自动化测试-24设计模式Page Object(PO)
Page Object是Selenium自动化测试项目开发实践的最佳设计模式之一。Page Object主要体现了面向对象的两大基本特征:继承和封装。对界面交互细节的封装,这样可以使测试用例更关注业务而非界面细节,提高测试用例的可读性;通过抽象封装成一个BasePage类(封装公共方法),所有页面对象(Page类)均继承该基类,大幅减少冗余的代码,同时也提高了可维护性。而前面提过的,TestC...原创 2019-11-14 12:21:21 · 453 阅读 · 0 评论 -
python+selenium自动化测试-31cookie简单介绍
客户端请求服务器后,服务器会颁发一个具有唯一标识的通行证以确认用户身份,即cookie,返回给客户端,客户端可获取到并保存在本地,cookie可以跟踪会话,弥补HTTP无状态协议的不足。cookie分为会话cookie和持久cookie。会话cookie是指在不设定它的生命周期expires时的状态,浏览器开启到关闭就是一次会话,当关闭浏览器时,会话cookie就会跟随浏览器而销毁。当关闭一个页...原创 2020-03-26 17:55:54 · 133 阅读 · 0 评论 -
python+selenium自动化测试-3HTML元素及属性介绍
要想实现web端自动化测试,那能够看懂HTML标签是必要的。虽然说好的前端设计,元素标签会带上常用id、class、name等属性,我们可以用这些属性和属性值进行定位。实际的项目中,我们常常会遇到元素不带这些常用属性的,若该元素标签没有其他的属性是唯一的,此时就会采用Xpath进行元素定位。所以不了解什么是元素、什么是属性值、什么是文本值,自动化测试之路就这样了。不多说,下面简单介绍一下。打开...原创 2020-02-22 17:32:34 · 558 阅读 · 0 评论 -
python+selenium自动化测试-30unittest执行testcase的三种方法
这是对python+selenium自动化测试-22python单元测试框架unittest(原理详解)的补充。前提:test_unittest类继承unittest.TestCase,该自定义类下有test_addNum1()和test_addNum2()两个方法,还有继承自unittest.TestCase的setUp()和tearDown()。1、将testcase逐个加入testsui...原创 2020-02-28 09:43:39 · 750 阅读 · 0 评论 -
python+selenium自动化测试-7HTML5实现视频播放
videoPlayer=self.driver.find_element_by_tag_name(“video”)#获取到video标签#currenttSrc属性获取视频文件的网络存储地址videoSrc=self.driver.execute_script(“return arguments[0].currentSrc;”,videoPlayer)#duration属性...原创 2020-02-22 17:32:16 · 2054 阅读 · 0 评论 -
python+selenium自动化测试-27python取随机数的常用方法
1、取整数random.randint(x,y)表示取的是[x,y]所有的整数。2、取小数(没有精度)random.uniform(1,4)表示取[1,4]之间所有的小数3、取小数(精确到小数点后两位)randFloat = random.uniform(1,4)num = round(randFloat,2)4、从列表里面取随机数应用实例:python与selenium结合,...原创 2019-12-11 23:39:25 · 1603 阅读 · 0 评论 -
python+selenium自动化测试-21pycharm执行结果说明(. s F E)
初学python+selenium2时,用的是pycharm集成开发工具,对于"."、“F”、“E”、"S"这些执行结果里面出现的符号含义并不是太了解,现在网上去查也是很难查到,可能是随着深入了解,都明白是啥意思了,大家都懒得写了。我在这里列出来,希望对初学者有所帮助。.代表一个测试用例通过,…代表两个测试用例通过,以此类推;s,即Skip,代表用例跳过执行;F,即Failure,代表用例不...原创 2019-11-11 13:16:15 · 1104 阅读 · 0 评论 -
selenium报异常:it is not in the current frame context, or the document has been refreshed
问题描述:下拉框选择了某个值去查询,查询后将下拉框复原为默认值,出现了报错。1、代码及报错代码 def type_query(self,target_loc,row): try: ele_sel = Select(self.find_element(*target_loc)) ele_sel.select_by_index...原创 2019-11-20 16:12:31 · 765 阅读 · 0 评论 -
python+selenium自动化测试-26pycharm一些重要工具包的引用(持续更新)
#时间类from time import sleep #强制等待from time import ctime #以某种格式获取当前时间import datetime #时间#页面操作类from selenium.webdriver.common.by import By #元素定位from selenium.webdriver.support.ui import Select #下拉...原创 2019-11-26 23:50:40 · 525 阅读 · 0 评论 -
python+selenium自动化测试-25自动通过邮件发送测试报告
在web自动化测试过程中,常常需要定时执行,得到测试报告,然后通过邮件自动发送给指定的人员查看执行结果。lastest_report.py# -- coding: utf-8 --import os#存放报告的位置report_dir='./Test_Report'def Latest_Report(report_dir): #os.listdir()方法用于返回指定文件夹包...原创 2019-11-26 08:47:53 · 1097 阅读 · 0 评论