python+selenium+unittest的自动化
壹佰大多
坚持不懈,保持每天学习,顺境不狂傲,逆境不妥协
展开
-
生成HTML可视化报告的两个常见模块
所谓数据驱动测试,简单的理解为数据的改变从而驱动自动化测试的执行,最终引起测试结果的改变。通过使用数据驱动测试的方法,可以在需要验证多组数据测试场景中,使用外部数据源实现对输入、输出与期望值的参数化,避免在测试中使用硬编码的数据。这种方法对于测试步骤相同而使用不同的输入值和期望值的测试场景尤为重要数据驱动的模式不仅可以帮助增加类似复杂条件场景下的测试覆盖,还可以极大的减少对测试代码的编写和维护工作一、结合ddt模块及字典数据类型实现数据驱动测试ddt模块在使用ddt.data将数据引入到测试用例时候原创 2020-11-09 19:33:42 · 281 阅读 · 0 评论 -
生成HTML可视化报告的两个常见模块
在自动化测试中,我们更希望能够得到一个直观、清晰的可视化报告,而不是一个文本文件、或者是日志格式的报告,在Python+Selenium+unitttest的自动化测试框架中,有两个不错的模块可以使用,那就是HTMLTestRunner和BeautifulReport。一、HTMLTestRunner模块的使用HTMLTestRunner是python标准库unittest单元测试框架的一个扩展,它生成易于使用的HTML测试报告。1、在测试用例执行文件中,使用HTMLTestRunner运行运行测试集原创 2020-11-09 19:28:39 · 263 阅读 · 0 评论 -
单元测试框架 Unittest使用
现在市面上大多采用Python+selenium+unittest进行web自动化测试,在前面的文章中主要讲解的是Python+selenium,下面我们引入unittest框架进行自动化测试脚本的组织管理。引入unittest单元测试框架的好处有:提供用例组织与执行提供丰富的断言方法提供丰富的日志和报告(HTML格式的更好一些)一、单元测试框架的原理TestCase:在unittest中的一个TestCase的实例就是一个测试用例,就是一个完整的测试流程,包括测试前资源初始化(setUp),执原创 2020-11-09 19:04:45 · 233 阅读 · 0 评论 -
模块化驱动测试
模块化驱动测试:把常用、公用的一些功能、业务、步骤专门提取出来,写在一个专门的模块中,以方法、类的形式实现出来,再其他的模块如果需要这些功能,直接调用即可,无需重复显示这些代码。最大限度的消除了重复,提高了测试用例的可维护、复用性。比如可以做登录模块、退出模块、邮件发送模块、数据库处理模块等。1、电商系统的登录、退出模块在自动化测试用例中,有很多是需要先登录再进行操作的,所以我们可以将登录做成模块,在使用的时候进行调用即可。class verydows(): def verylogin(se原创 2020-11-09 17:34:54 · 604 阅读 · 0 评论 -
WebDriver API之页面元素时间等待
元素等待:如今很多web都在使用AJAX技术,运用这种技术的软件当浏览器加载页面时,页面上的元素可能不会被同步加载完成,如此一来,定位元素时就会出现困难,我们可以通过设置元素等待来改善这类问题导致的测试脚本不稳定。WebDriver脚本开发中可以使用三种种元素等待方式:一、强制等待:time.sleep(5),单位是s,就是直接让线程休眠,这几秒啥事也不用干import time #导入时间模块time.sleep(5) #休眠5s钟二、隐式等待:在脚本创建driver对象之后,给dr原创 2020-11-07 20:46:12 · 178 阅读 · 0 评论 -
WebDriver API之消息框处理
webdriver处理javascript生成的alert、confirm、prompt消息框的方式十分简单,都是统一使用switch_to.alert将driver的控制权限交给消息框,然后再调用相应方法进行操作:text:返回alert/confirm/prompt中的文字信息accep():接受现有警告信息,相当于确认按钮dismiss():放弃现有警告信息,相当于取消按钮send_keys(keysToSend):发送文本至警告框一、警告消息框alertalert 方法生成的警告消息框提原创 2020-11-07 20:38:59 · 101 阅读 · 0 评论 -
WebDriver API之iframe、frame页面嵌套操作
在一个页面中可以嵌套另外一个页面,如frame/iframe技术,这是现在很多web应用中使用的一种方式,webdriver对象只能在一个页面(外层是默认的)中定位元素,需要一种方式将driver对象从外层切换给内层使用才能对内层的对象进行处理。下图是qq邮箱登录页面,其中的登录框就是一个内嵌的frame页面,下面我们就以他为案例。webdriver中提供的对iframe/frame操作API常用到有:driver.switch_to.frame()driver.switch_to.default_原创 2020-11-07 20:33:03 · 2362 阅读 · 3 评论 -
WebDriver API之鼠标、键盘操作方法
使用 Selenium WebDriver 做web自动化测试的时候,会经常模拟鼠标和键盘的一些行为:比如使用鼠标单击、双击、右击、拖拽、悬浮等动作或者键盘输入、快捷键使用、组合键使用等模拟键盘的操作在 WebDeriver 中,有专门的类来负责实现这些测试场景,那就是 ActionChains和Keys类。1、鼠标的操作方法Actionchains类封装了对鼠标时间的操作方法,常见的方法有:context_click()右击————>此方法模拟鼠标的右键double_click()双击原创 2020-11-07 20:25:51 · 498 阅读 · 0 评论 -
浏览器的控制方法
一、控制浏览器窗口的大小希望浏览器以某种尺寸打开,让访问的网页在这种尺寸下运行,webdriver提供的API:set_window_size():设置浏览器的大小maxmize_window():最大化显示minmize_window():最小化显示#导包、创建浏览器对象、获取一下url地址from selenium import webdriverimport time#driver:就是一个普通的变量,dr也行driver = webdriver.Chrome()driver.g原创 2020-11-07 12:54:01 · 1083 阅读 · 0 评论 -
webdriverAIP之常见元素操作方法
做自动化测试脚本的时候,我们通常会有如下的步骤:通过某些方式定位到我们要执行的对象、目标(Target)对这个对象进行什么操作(command)通过操作对定位到的元素赋值(value)添加断言操作前面讲过了如何定位到页面的元素,下面我们再来研究下如何对定位到的元素进行操作吧。下面是selenium webdriver提供的常见的元素操作方法:clear(): 清除文本。send_keys (value): 模拟按键输入,除了能够发送字母外,还可以发送快捷键。click(): 单击元素。例如按原创 2020-11-07 12:23:26 · 299 阅读 · 0 评论 -
python+selenium+unittest的自动化脚本的编写
python环境的搭建现在市面上的web自动化测试,一般采用python+selenium+unittest+Jenkins的开源组合,python作为开发语言、selenium是自动化测试框架、unittest是负责测试用例的组织、Jenkins负责持续集成,所谓兵马未动,粮草先行,下面我们就先把测试环境搭建起来,本文采用win10系统下搭建。一、python环境搭建1、官网下载python3.7.x的版本:https://www.python.org/,下载windows版本的可执行版安装包到本地原创 2020-11-07 10:54:58 · 769 阅读 · 0 评论