python3+selenium框架设计10-发送邮件】的更多相关文章

什么是自动化测试框架 自动化测试框架能够提供便利给用户高效完成一些事情,比如,结构清晰开发脚本,多种方式.平台执行脚本,良好的日志和报告去跟踪脚本执行结果. 关于自动化测试框架的定义有很多,在我大致理解下就是把能实现不同功能的软件组合在一起,实现特定的目的,这就是一个简单的自动化测试框架. 界面自动化测试框架核心是选择 一个用来编写脚本的语言,一个用来web界面的库,管理脚本的执行工具.这里选择python,web界面库用的selenium,脚本管理工具可以用unittest单元测试框架.测试报…
首先我们先来实现日志的功能,日志可以使用python3自带logging模块,不会的可以百度一下相关文章,也可以看我另外一篇文章Python3学习笔记24-logging模块 在封装日志类前,我们需要想一下,我们需要实现怎样的日志功能,需要把日志放到项目下指定路径,文件名为日期.log,需要把所有日志输出到一个文件中,需要把报错的日志单独输出到另一个文件,info和error需要不同的日志格式 那先在PyCharm里新建一个项目,在这个项目下新建一个Logs文件夹,和getcwd.py文件.然后…
使用python3的email模块和smtplib模块可以实现发送邮件的动能.email模块用来生成email,smtplib模块用来发送邮件,接下来看如何在生成测试报告之后,并将报告放在邮件附件中并发送给项目组的人,在framework文件夹下新建my_email.py文件,项目结构如下. ​ ​ 以qq邮箱为例,在使用qq邮箱的SMTP服务时,需要在qq邮箱-账户中先开启,并且生成授权码,然后密码那里填写授权码 具体代码如下. #!/usr/bin/python3 import smtpli…
页面对象模型Page Object Modal是一种脚本设计模型,将页面元素,业务操作分割,当实际页面发生变化的时候,只需要修改页面元素文件,业务操作不需要修改. 具体实现需要先写一个页面公共类,里面写公共的方法,比如把元素定位,元素操作等方法重新封装.之后所有页面类继承页面公共类,页面类中只写该页面需要定位的元素,并把对应元素的操作封装成一个个方法.最后测试类调用这些方法组成一个业务测试用例. 还是以百度搜索为例子 ​ framework包下面放一些公共类 pageobject包下面放需要测试…
可以自行百度学习下单元测试框架,或者看Python3学习笔记26-unittest模块 在项目下新建一个entrance.py文件.并使用之前的测试用例进行演示.目前项目结构. ​ 在entrance.py文件加上如下代码并运行 import testsuites.test_baidu import unittest if __name__ == "__main__": suite = unittest.TestSuite() suite.addTest(testsuites.test…
之前我们已经把测试基类,配置文件操作,浏览器引擎类封装完成.接下来使用POM的设计思路来创建我们的测试用例.接下来看一个实例,先在项目下新建pageobject文件夹.这个文件夹下放所有要测试的页面类,在下面新建BaiduPage.py.用来写关于百度首页的元素定位和操作.在项目下新建testsuites文件夹.这个文件夹下方所有页面对应的测试类,在下面新建test_baidu.py.用来编写测试百度首页的测试代码. ​ 先写BaiduPage.py,将搜索输入框,和搜索按钮定位.然后封装相应操…
python3配置文件的增删改查等操作可以使用内置的ConfigParser模块,可以自行百度学习,也可以看Python3学习笔记27-ConfigParser模块 配置文件一般存放着环境信息,比如url和一些测试过程中后续需要用到的字段.还有测试中需要导入,导出的一些文件.在项目下新建Config文件夹,文件夹下新建config.ini文件.项目结构如下 ​ 实际项目测试中,比如测试环境和生产的地址的切换,用户信息这些都是放在配置文件中,所以会频繁的使用对配置文件进行操作的方法,那我们就需要对…
在完成了日志类封装之后,那我们就要对测试基类进行实现,在其中对一些请求再次封装,在项目下新建一个framework文件夹,在文件夹下新建Base_Page.py文件,这是用来写测试基类的文件.在项目下新建screenshots文件件,用来存放截图.项目结构如下. ​ 具体怎么封装还是要看被测试需要什么,只能提供一个大致思路,我项目能用的封装,你项目并不一定能用 测试基类的思路就是把所有能公用的方法全部封装,并加上日志输出.报错截图等. 看下Base_Page.py下具体代码 from Logs.…
之前都是只有一个页面,一个用例.这次两个页面.两个测试用例.其实界面自动化测试最大的难点在于driver的传递,需要保持唯一性.另外就是断言的难点. 修改之前的BaiduPage,新增部分代码 from Selenium_lesson.framework.Base_Page import BasePage class BaiduPage(BasePage): kw = ['id','kw']#搜索输入框 su = ['id','su']#搜索按钮 new = ['link','新闻'] def…
使用HTMLTestRunner可以生成测试报告.HTMLTestRunner是unittest模块下的一个拓展,原生的生成报告样式比较丑,GitHub上有大佬优化过后的版本:GitHub地址.下载之后解压应该是这样的 ​ 我们需要使用的是HTMLTestRunnerCN.py和EN.py 这两个.一个生成的是中文报告,一个生成的是英文报告.想用哪个版本的就把对应版本的.py文件复制到pytho3安装目录下的Lib文件夹下.能import进来相应的文件就可以了.最下面两个test开头的.py文件…
1. 简介 前边宏哥一边一边的喊框架,就如同一边一边的喊狼来了!狼来了!.....这回是狼没有来,框架真的来了.从本文开始宏哥将会一步一步介绍,如何从无到有地创建自己的第一个自动化测试框架.这一篇,我们介绍,如何封装自己的日志类和浏览器引擎类. 2. 创建项目层级结构 如何创建,怎么创建.这个就需要我们前边介绍的框架概要设计以及框架的详细设计的思维导图,宏哥就是根据那个图,轻松地.清楚的.思路清晰地一步一步创建项目层级结构. 相关步骤: 1. 打开PyCharm,创建如下格式的项目层级结构,为了…
1.简介 前面文章,我们实现了框架的一部分功能,包括日志类和浏览器引擎类的封装,今天我们继续封装一个基类和介绍如何实现POM.关于基类,是这样定义的:把一些常见的页面操作的selenium封装到base_page.py这个类文件,以后每个POM中的页面类,都继承这个基类,这样每个页面类都有基类的方法,这个我们会在这篇文章由宏哥实现. 2.项目层级结构 1. 上一篇中我们已经创建好了项目层级结构,具体项目层级结构如下图.这里不再赘述,相关文件也如下: 3. 定位和截图类封装 1. 在实现封装基类里…
1. 简介 其实,到前面这一篇文章,简单的Python+Selenium自动化测试框架就已经算实现了.接下来的主要是介绍,unittest管理脚本,如何如何加载执行脚本,再就是采用第三方插件,实现输出html的测试报告.本文来介绍下,在同一个类中,多个测试函数时候,测试固件如何写和进一步实现POM和可能遇到问题解决办法. 2. 一个类文件多个测试方法情况下测试固件的写法 为了说明这个问题,我们在之前的测试类基础上,再写一个test_search2()的测试用例,看看会发生什么. 2.1 代码实现…
一.自动化测试框架 感谢木棉花的漂泊分享,内容转自链接:http://www.cnblogs.com/fengyiru6369/p/8053035.html 1.什么是自动化测试框架 简单来说,自动化测试框架就是由一些标准,协议,规则组成,提供脚本运行的环境.自动化测试框架能够提供很多便利给用户高效完成一些事情,例如,结构清晰开发脚本,多种方式.平台执行脚本,良好的报告去跟踪脚本执行结果. 框架具有以下一些优点: 1)代码复用 2)最大覆盖率 3)很低成本维护 4)很少人工干预 5)简单报告输出…
前面文章已经简单介绍了一些关于自动化测试框架的介绍,知道了什么是自动化测试框架,主要有哪些特点,基本组成部分等.在继续介绍框架设计之前,我们先来学习一个工具,叫unittest.       unittest是一个单元测试框架,是Python编程的单元测试框架.有时候,也做叫做“PyUnit”,是Junit的Python语言版本.这里了解下,Junit是Java语言的单元测试框架,Java还有一个很好用的单元测试框架叫TestNG,本系列只学习Python,所以只需要unittest是Pytho…
1.什么是自动化测试框架 简单来说,自动化测试框架就是由一些标准,协议,规则组成,提供脚本运行的环境.自动化测试框架能够提供很多便利给用户高效完成一些事情,例如,结构清晰开发脚本,多种方式.平台执行脚本,良好的报告去跟踪脚本执行结果. 框架具有以下一些优点: 1)代码复用 2)最大覆盖率 3)很低成本维护 4)很少人工干预 5)简单报告输出 2.常见的测试框架分类 好多Selenium自动化测试开发人员是有QTP那边转过来的,所以,他们在早期设计的框架大致可分为以下几类: 1)基于模块的测试框架…
1. 什么是自动化测试框架 在了解什么是自动化测试框架之前,先了解一下什么叫框架?框架是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法:另一种定义认为,框架是可被应用开发者定制的应用骨架.前者是从应用方面,而后者是从目的方面给出的定 义. 从框架的定义可以了解,框架可以是被重用的基础平台:框架也可以是组织架构类的东西.其实后者更为贴切,因为框和架本来就是组织和归类所用的. 所以自动化测试框架的定义为:由一个或多个自动化测试基础模块.自动化测试管理模块.自动化测试统计模块等组…
1. 简介 上一篇介绍了自动化框架的架构,今天宏哥就带领小伙伴或者童鞋们开始开工往这个框架里开始添砖加瓦.主要是介绍一个框架unittest单元测试框架和一种设计思想POM. 2. unittest单元测试框架 前面文章已经简单介绍了一些关于自动化测试框架的介绍,知道了什么是自动化测试框架,主要有哪些特点,基本组成部分等.在继续介绍框架设计之前,我们先来学习一个工具,叫unittest. unittest是一个单元测试框架,是Python编程的单元测试框架.有时候,也做叫做“PyUnit”,是J…
前面我们介绍了Python中的单元测试框架unittest,以后我们所有的测试类文件,都采用unittest来辅助我们进行debug和脚本开发.搞定了debug机制和确定了unittest来进行创建和管理我们的自动化测试脚本,接下来我们来考虑下,框架设计中一种很普遍的设计思想-POM(Page Object Model) POM,中文字母意思是,页面对象模型,POM是一种最近几年非常流行的自动化测试模型,或者思想,POM不是一个框架,就是一个解决问题的思想.采用POM的目的,是为了解决前端中UI…
背景 最近要求项目组成员开发一个通用的分页组件,要求是这个组件简单易用,通用性,兼容现有框架MVVM模式,可是最后给我提交的成果勉强能够用,却欠少灵活性和框架兼容性. 设计的基本思想 传入数据源,总页数,当前页码,每页记录数,达到分页显示数据的功能. 优化 我把原本不支持MVVM的源码改善了一下,可能还可以再优化得好些,支持MVVM模式,较果如下图: 添加一解决方案:TLAgent.Pager 设计DataPager类,继承UserControl, INotifyPropertyChanged…
原文地址https://blog.csdn.net/u011541946/article/details/70269965 作者:Anthony_tester 来源:CSDN    博客地址https://blog.csdn.net/u011541946 前面文章,我们实现了框架的一部分功能,包括日志类和浏览器引擎类的封装,今天我们继续封装一个基类和介绍如何实现POM.关于基类,是这样定义的:把一些常见的页面操作的selenium封装到base_page.py这个类文件,以后每个POM中的页面类…
POM(Page Object Model):页面对象模型,POM是一种最近几年非常流行的自动化测试模型,或者思想,POM不是一个框架,就是一个解决问题的思想.采用POM的目的,是为了解决前端中UI变化频繁,从而造成测试自动化脚本维护的成本越来越大.下图,形象描述了POM的好处. 从上图看出,采取了POM设计思路和不采取的区别,左侧把测试代码和页面元素都写在一个类文件,如果需要更改页面,那么就要修改页面元素定位,从而要修改这个类中测试代码,这个看起来和混乱.右侧,采取POM后,主要的区别就是,把…
目录 7.Excel数据读取 7.1.读取配置文件 7.1.编写Excel操作类 8.用例组装 9.用例运行结果校验 10.运行用例 11 .小结 上一篇:Python3简易接口自动化测试框架设计与实现(上) 7.Excel数据读取 用例是放在Excel中的,用xlrd来读取数据,写数据需要用到xluntils,先安装: pip install xlrd pip install xluntils 7.1.读取配置文件 读取Excel数据,我们需要知道对应的行和列,列相对固定,在配置文件setti…
目录 1.开发环境 2.用到的模块 3.框架设计 3.1.流程 3.2.项目结构 5.日志打印 6.接口请求类封装 接口开发请参考:使用Django开发简单接口:文章增删改查 1.开发环境 操作系统:Ubuntu18 开发工具:IDEA+PyCharm插件 Python版本:3.6 2.用到的模块 requests:用于发送请求 xlrd:操作Excel,组织测试用例 smtplib,email:发送测试报告 logging:日志追踪 json:数据格式化 Django:接口开发 configp…
一.自动化测试框架 1.什么是自动化测试框架 简单来说,自动化测试框架就是由一些标准,协议,规则组成,提供脚本运行的环境.自动化测试框架能够提供很多便利给用户高效完成一些事情,例如,结构清晰开发脚本,多种方式.平台执行脚本,良好的报告去跟踪脚本执行结果. 框架具有以下一些优点: 1)代码复用 2)最大覆盖率 3)很低成本维护 4)很少人工干预 5)简单报告输出 2.常见的测试框架分类 好多Selenium自动化测试开发人员是有QTP那边转过来的,所以,他们在早期设计的框架大致可分为以下几类: 1…
1.简介 上一篇宏哥介绍了如何设计支持不同浏览器测试,宏哥的方法就是通过来切换配置文件设置的浏览器名称的值,来确定启动什么浏览器进行脚本测试.宏哥将这个叫做浏览器引擎类.这个类负责获取浏览器类型和启动不同浏览器,并做一些前提操作,例如:最大化浏览器窗口和,打开测试服务器地址. 今天这篇宏哥打算介绍如何封装几个Selenium公共的方法到页面基类中去.首先宏哥给小伙伴或者童鞋们解释一下页面基类,看到基类,我们想起了继承.没错,在这个框架基于POM的思想上,我们需要利用继承的特点,来实现,减少我们重…
对于很多PHP开发新手来说,测试自己编写的代码是一个非常棘手的问题.如果出现问题,他们将不知道下一步该怎么做.花费很长的时间调试PHP代码是一个非常不明智的选择,最好的方法就是在编写应用程序代码之前就写好测试代码:www.itxdl.cn.自动化测试可以极大的缓解并改善PHP开发的工作流程,它能帮助开发人员管理大部分任务,使其更专注于开发逻辑的测试代码.本文将为大家介绍PHP自动测试框架Top 10,欢迎品鉴! PHPUnit PHP Unit是一个轻量级的PHP测试框架.它是在PHP 5下面对…
Atitit.加密算法ati Aes的框架设计 版本进化 c:\1t\aesC47.java c:\1t\aes.java 增加了public static byte[] encrypt(byte[] byteContent, String password) { public static byte[] decrypt(byte[] content, String password) public static  String encrypt(String  str, String passw…
#cnblogs_post_body p{ text-indent:2em!important; } 历时两年多,我的书终于付梓出版了.应各方面的要求,写软文一篇,隆重介绍一下此书对各位程序员的钱途有什么帮助及阅读顺序等疑问.作为国内第一本讲述前端框架构的书,它里面充斥着许多大家前所未闻的知识,这些知识有50%只见于github的issue,讲述各种隐秘的浏览器兼容性问题及各种神奇的修复方案,或者是某些危险但美丽的黑魔法,另外50%我深夜梦游般在外国某些大牛(不局限于英语,有日语,俄语,韩语等,…
Atitit.加密算法ati Aes的框架设计v2.2 版本进化1 V2.2   add def decode key api1 v1版本1 Aes的历史2 Atitit.加密算法 des  aes 各个语言不同的原理与解决...2 版本进化  V2.2   add def decode key api /atiplat_cms/src/com/attilax/secury/AesV2q421.java V2.1 * @author attilax * v2.1   add def key ap…