python测试系列教程——python+Selenium+chrome自动化测试框架
需要的环境
- 浏览器(Firefox/Chrome/IE…)
- Python
- Selenium
- Selenium IDE(如果用Firefox)
- FireBug、FirePath(如果用Firefox)
- chromedriver、IEDriverServer、phantomjs.exe
- IDE(Pycharm/Sublime/Eclipse…)
1、浏览器建议用Firefox或Chrome,千万不要用最新版本,要用早两到三个版本的。
2、Python不要使用python2,而使用python3。
3、Selenium安装使用命令pip install selenium
4、Selenium IDE可以录制回放,只能应用与Firefox浏览器。作为Firefox插件插件而存在。
5、如果要使用Firefox,必备的插件就是FireBug和FirePath,这俩都可以在附加组件管理器中搜到。
6、果需要使用Chrome浏览器或者IE浏览器,则需要对应的驱动,下载链接如下:
chromedriver,chromedriver没有64位版本,32即可驱动:
http://chromedriver.storage.googleapis.com/index.html
IEDriverServer,下面链接能够下载所有版本的selenium以及IEDriverServer,IEDriverServer区分32位/64位:
http://selenium-release.storage.googleapis.com/index.html
选择合适的版本并下载即可。
找个容易找到的文件夹放起来,在启动chrome浏览器以及IE时需要用到。
注意:chromedriver、IEDriverServer等浏览器测试驱动都是调用系统的谷歌浏览器和IE浏览器,所以驱动和浏览器客户端必须相互匹配(而最新的测试驱动往往比最新的浏览器差了好几个版本)。所以在下载驱动时尽量下载最新的,在下载浏览器时要尽量使用旧一点的版本。
Selenium Webdriver下载链接
| 模块名称 | 模块描述 | Selenium Webdriver下载链接 |
|---|---|---|
| Selenium Standalone Server 3.0 | 这是Selenium Webdriver的最新稳定版本。你要执行remote Selenium Webdriver时需要它。同时,注意Selenium 3.0+不再支持RC API。你应该用一个备用接口来启动那些旧的东西 | Selenium Webdriver 3.0下载(稳定版本) |
| Selenium Java 包(3.0.1)、Selenium Python 包(3.0.0) | 这些包包括了一系列的扩展Selenium功能的库 | Selenium Java 包 3.0.1(稳定版本)、Selenium Python 包 3.0.0(稳定版本) |
| IE Server Driver(2.53.1) | 如果你想要启动IE来做网页测试,你必须有这两个驱动之一。根据你的系统架构来选择。 | 32-位 IE Server Driver(稳定版本)、64-位 IE Server Driver(稳定版本) |
| GECKO Driver(最新版) | 这个驱动是用来支持新版本的Firefox浏览器,从这里下载最新版 | Mozilla GECKO Driver(稳定版本) |
| Google Chrome Driver(最新版) | 从这里下载最新版本的Google Chrome驱动 | Google Chrome Driver(稳定版本) |
Selenium安装链接(谷歌浏览器)
https://chrome.google.com/webstore/detail/selenium-ide/mooikfkahbdckldjjndioackbalphokd/related
YAML文件语法
YAML 是专门用来写配置文件的语言,非常简洁和强大,远比 JSON 格式方便。它的语法规则可以参考:http://blog.csdn.net/luanpeng825485697/article/details/79478338
GIitHub托管
自动化测试的架构代码托管在github上,读者可以自行下载
https://github.com/626626cdllp/Test/tree/master/Test_framework
自动化测试框架
在这个自动化测试框架中。
在config目录中存放的是测试配置相关的文件,配置文件可以使用ini、xml、yml等文件类型。例如,要测试的网址、调试日志的文件名、日志的输出格式等
在data目录中存放的是需要测试的数据。可以使用xmls、xml等文件类型。例如,测试网址中要提交的各种各样的内容。
在drivers目录中存放的是测试需要用到的浏览器驱动。主要为chromedriver.exe、IEDriverServer.exe、phantomjs.exe
在log目录下存放输出日志.log文件。
在report目录下存放测试报告文件html类的文件。
在test目录下存放所有测试相关的文件。
– 在test/case目录下,用于存放测试用例。
– 在test/common目录下,用于存放跟项目、页面无关的封装。
– 在test/interface目录下,用于存放以前台角色测试后台接口的测试用例。
– 在test/page目录下,用于存放具体页面测试时的重复性过程。
– 在test/suite目录下,用于存放测试套件,用来组织用例。
- 在utils目录下存放公共方法。
– utils/assertion.py文件用于添加各种自定义的断言(测试结果和目标结果是否一致的判断),断言失败抛出AssertionError就OK。
– utils/client.py文件用于测试web后台接口的前端client,对于HTTP接口添加HTTPClient,发送http请求。还可以封装TCPClient,用来进行tcp链接,测试socket接口等等。
– utils/config.py文件用于项目公共内容配置,以及读取配置文件中的配置。这里配置文件用的yaml,也可用其他如XML,INI等,需在file_reader中添加相应的Reader进行处理。
– utils/extractor.py文件用于抽取器,从响应结果中抽取部分数据,这里实现的是json返回数据的抽取,可以自己添加XML格式、普通字符串格式、Header的抽取器
– utils/file_reader.py文件用于文件的读取,包含配置文件和数据文件的读取函数.根据文件地址,返回文件中包含的内容
– utils/generator.py文件用于一些生成器方法,生成随机数,手机号,以及连续数字等,以便使用这些数据进行测试
– utils/HTMLTestRunner.py是一个第三方模块,用于生成html的测试报告。读者可以不改动它。
– utils/log.py文件通过读取配置文件,定义日志级别、日志文件名、日志格式等。
– utils/mail.py文件用来给指定用户发送邮件。可指定多个收件人,可带附件。
– utils/support.py文件用来编写一些支持方法,比如签名、加密等
相关提示:
pycharm中如果无法引入自定义模块,要先在pycharm中右键点击项目根目录->标记目录为Resource Root,然后再右键点击项目根目录->根源。这样就能引用项目根目录下的所有自定义模块了。
python测试系列教程——python+Selenium+chrome自动化测试框架的更多相关文章
- python基础系列教程——Python的安装与测试:python的IDE工具PyDev和pycharm,anaconda
---恢复内容开始--- python基础系列教程——Python的安装与测试:python的IDE工具PyDev和pycharm,anaconda 从头开启python的开发环境搭建.安装比较简单, ...
- python基础系列教程——Python中的编码问题,中文乱码问题
python基础系列教程——Python中的编码问题,中文乱码问题 如果不声明编码,则中文会报错,即使是注释也会报错. # -*- coding: UTF-8 -*- 或者 #coding=utf-8 ...
- python基础系列教程——Python库的安装与卸载
python基础系列教程——Python库的安装与卸载 2.1 Python库的安装 window下python2.python3安装包的方法 2.1.1在线安装 安装好python.设置好环境变量后 ...
- python基础系列教程——Python3.x标准模块库目录
python基础系列教程——Python3.x标准模块库目录 文本 string:通用字符串操作 re:正则表达式操作 difflib:差异计算工具 textwrap:文本填充 unicodedata ...
- 接口自动化 基于python实现的http+json协议接口自动化测试框架源码(实用改进版)
基于python实现的http+json协议接口自动化测试框架(实用改进版) by:授客 QQ:1033553122 欢迎加入软件性能测试交流QQ群:7156436 目录 1. ...
- 【python可视化系列】python数据可视化利器--pyecharts
学可视化就跟学弹吉他一样,刚开始你会觉得自己弹出来的是噪音,也就有了在使用python可视化的时候,总说,我擦,为啥别人画的图那么溜: [python可视化系列]python数据可视化利器--pyec ...
- Python Twisted系列教程15:测试诗歌
作者:dave@http://krondo.com/tested-poetry/ 译者: Cheng Luo 你可以从”第一部分 Twist理论基础“开始阅读:也可以从”Twisted 入门!“浏览 ...
- Python基础教程系列目录,最全的Python入门系列教程!
Python是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言. 在现在的工作及开发当中,Python的使用越来越广泛,为了方便大家的学习,Linux大学 特推出了 <Python基 ...
- python 爬虫系列教程方法总结及推荐
爬虫,是我学习的比较多的,也是比较了解的.打算写一个系列教程,网上搜罗一下,感觉别人写的已经很好了,我没必要重复造轮子了. 爬虫不过就是访问一个页面然后用一些匹配方式把自己需要的东西摘出来. 而访问页 ...
- Appium+python自动化(四十一)-Appium自动化测试框架综合实践 - 即将落下帷幕(超详解)
1.简介 今天我们紧接着上一篇继续分享Appium自动化测试框架综合实践 - 代码实现.到今天为止,大功即将告成:框架所需要的代码实现都基本完成. 2.data数据封装 2.1使用背景 在实际项目过程 ...
随机推荐
- 《程序是怎样跑起来的》读书笔记1——对程序员来说CPU是什么
一丶什么是程序 程序是指令和数组的组合体,如:print("你好世界"),其中print是指令,你好世界是数据. CPU能直接识别和执行的只有机器语言,使用C,java这种高级语言 ...
- 为什么 Python、Go 和 Rust 都不支持三元运算符?
在编程时,我们经常要作条件判断,并根据条件的结果选择执行不同的语句块.在许多编程语言中,最常见的写法是三元运算符,但是,Python 并不支持三元运算符,无独有偶,两个最热门的新兴语言 Go 和 Ru ...
- CentOS 9 开局配置
CentOS 9 开局配置 CentOS 9 发布有几年了,一直没有尝试使用,CentOS 9 有一些变动. 查看系统基础信息 # 查看系统基础信息 [root@chenby ~]# neofetch ...
- 四月十九号java基础知识
1.总括:类的继承是使用已有的类为基础派生出新的类.通过类继承的方式,便能开发出新的类,而不需要编写相同的程序代码,所以说类的继承是程序代码再利用的概念抽象与接口都是类概念的扩展.通过继承扩展出的子类 ...
- 【Java SE】枚举类和注解
1.枚举类的使用 当类的对象由有限个,确定的时候,我们称这种类为枚举类.当需要定义一组常量时,建议使用枚举类.而当枚举类中只有一个对象时,可以使用单例模式. 1.1 enmu关键字 省略private ...
- Spring Boot 中使用 Redis
Redis 环境 redis 安装.配置,启动:(此处以云服务器上进行说明) 下载地址:https://redis.io/download/ 下载后上传到云服务器上,如 /usr/local 中 gc ...
- ubutn在线服务器python Package安装到离线服务器
1.在线服务器导出requirement.txt pip freeze > requirement.txt 该文件生成完毕后,需要做些修改,去掉不需要的库,否则下载的时候会出错. 2.下载whl ...
- Windows防病毒Defender 排除病毒误报
开发的软件安装后,windows上提示病毒,默默被系统删除了. 一开始以为是自己软件的签名问题,后面发现,将被隔离的文件还原,文件的签名是存在的. 这是微软denfender的误报,为啥会报病毒呢? ...
- “结巴”中文分词:做最好的 Python 中文分词组件
jieba "结巴"中文分词:做最好的 Python 中文分词组件 "Jieba" (Chinese for "to stutter") C ...
- [双目视差] 立体匹配算法推理 - SGBM算法(二)
文章目录 立体匹配算法推理 - SGBM算法(二) 一.SGM算法 二. 后处理 立体匹配算法推理 - SGBM算法(二) 一.SGM算法 SGM算法的全称为Semi-Global Matching, ...