Python + Selenium,分分钟搭建 Web 自动化测试框架
在程序员的世界中,一切重复性的工作,都应该通过程序自动执行。
「自动化测试」就是一个最好的例子。
随着互联网应用开发周期越来越短,迭代速度越来越快,只会点点点,不懂开发的手工测试,已经无法满足如今的业务要求,只能被企业逐步裁员淘汰。「自动化测试和持续测试」就成为了业界主流。
如果在招聘网站搜索「测试工程师」的职位,95% 的招聘都会有「掌握自动化测试以及 Python」的相关要求。可以说,python 自动化已经不是加分项了,而成了面试成功的必备技能。
所以,如果你正准备入行或者转岗做测试工程师的工作,Python 自动化测试将是必学技能之一。
Python + Selenium
说到自动化测试,就不得不提大名鼎鼎的Selenium
。
Selenium 是如今最常用的自动化测试工具之一,支持快速开发自动化测试框架,且支持在多种浏览器上执行测试。
Selenium
学习难度小,开发周期短。对测试人员来说,如果你编程经验不足,python + Selenium
是个很好的选择。语法简约,清晰,可以显著减少后期维护难度和工作压力。
今天,我们就介绍一下如何用 Selenium 快速开始 Web 测试工作!
Selenium 基础知识
本节课程介绍 Selenium 的功能作用及安装、环境配置,并介绍 Selenium 常用的语法。
知识点
- Selenium 介绍
- 安装 Selenium
- 安装 geckodriver 浏览器驱动
- Selenium 的元素定位
- 点击元素
- 清空文本输入框、向文本输入框输入文本
- 获取元素属性
- 下拉页面
- 页面弹窗的定位以及弹窗文本的获取
- 窗口跳转
- iframe 定位
安装需要的库:
sudo pip3 install --upgrade pip sudo pip3 install selenium
实验环境
- Firefox 浏览器
- python 3.5
- geckodriver 0.22.0
- selenium 3
实验步骤
Selenium 在进行回归测试的时候会被经常用到,接下来我们就学习 Selenium 的知识。当我们进入selenium 官网时可以看到,网站的 title 上写的是 Selenium - Web Browser Automation
,翻译过来就是网站浏览器自动化。也就是说我们把平时在网页上做的功能测试用 Selenium 代码实现,这样在回归测试的时候就可以达到省时省力的目的。Selenium 在工作中的应用常见于功能基本稳定、没有频繁大变动的网页。所以我们一般是在业务功能上线以后,为确保页面稳定,用 Selenium 实现自动化回归测试,结合 git、Jenkins 一起,每当有新功能上线时都会执行写好的 Selenium 代码以验证新上线的业务对原有页面功能没有造成影响。如有报错,则发送相应的通知,这样就可以确保对线上功能出现的未预期 bug 进行及时的修复。
安装 Selenium
在 xfce
中输入sudo pip3 install selenium
安装最新版本的 Selenium。
浏览器、geckodriver
既然名为网页浏览器自动化自然要安装浏览器,一般来说,Chrome
、Firefox
等浏览器都可以,这里我们使用当前系统自带的Firefox
作为实验浏览器。现在我们需要下载对应的浏览器驱动geckodriver
,在xfce
中输入以下命令:
$ wget https://labfile.oss.aliyuncs.com/courses/1163/geckodriver-v0.22.0-linux64.tar.gz
下载成功后继续输入:
$ tar zxvf geckodriver-v0.22.0-linux64.tar.gz $ sudo mv geckodriver /usr/local/bin
以上操作为:将文件解压,并移动至/usr/local/bin
文件夹中。
将目录切换至桌面:
$ cd /home/shiyanlou/Desktop
下面我们来验证是否正常安装,在终端使用命令vim demo.py
创建文件并写入代码:
#! /usr/bin/python3 from selenium import webdriver driver = webdriver.Firefox() driver.get("https://www.shiyanlou.com")
输入python3 demo.py
如果浏览器打开并进入实验楼网站,则环境配置就成功了。
浏览器操作
在终端使用命令vim demo2.py
创建文件并写入代码:
#! /usr/bin/python3from selenium import webdriver
from time import sleepdriver = webdriver.Firefox()# 浏览器进入百度网站
driver.get("https://www.baidu.com")# 设置浏览器宽800,高400
driver.set_window_size(800, 400)# 等待3秒
sleep(3)# 刷新页面
driver.refresh()# 等待3秒
sleep(3)# 最大化窗口
driver.maximize_window()# 退出浏览器
driver.quit()- name: check filescript: |#!/bin/bashls /home/shiyanlou/Desktop/demo2.pyerror:还没有在 /home/shiyanlou/Desktop 目录下新建 demo2.py 文件
- 打开浏览器
- 进入百度网站
- 设置窗口大小为宽 800,高 400
- 等待 3 秒
- 刷新页面
- 最大化窗口
- 退出浏览器
演示
这里我们使用51Testing 软件测试论坛作为演示网站,如果大家没有账号需要先去注册一个,下面的代码将会使用到账号信息,在终端使用命令vim demo3.py
创建文件并写入代码:
#! /usr/bin/python3
from selenium import webdriver
from time import sleep
driver = webdriver.Firefox()
# 进入51testing网站driver.get("http://bbs.51testing.com/forum.php")
sleep(3)# 用id定位账号输入框并输入账号
driver.find_element_by_id("ls_username").send_keys("您的用户名")# 用id定位密码输入框并输入密码
driver.find_element_by_id("ls_password").send_keys("密码")# 定位“登录”按钮并获取登录按钮的文本
txt = driver.find_element_by_xpath('//*[@id="lsform"]/div/div[1]/table/tbody/tr[2]/td[3]/button').text# 打印获取的文本
print(txt)# 定位“登录”按钮并获取登录按钮的type属性值
type = driver.find_element_by_xpath('//*[@id="lsform"]/div/div[1]/table/tbody/tr[2]/td[3]/button').get_attribute("type")# 打印type属性值
print(type)# 定位“登录”按钮并进行点击操作
driver.find_element_by_xpath('//*[@id="lsform"]/div/div[1]/table/tbody/tr[2]/td[3]/button').click()
在终端执行python3 demo3.py
运行,结果显示如下:页面显示:
执行以上代码后会在 xfce 中输出如下信息:
1、学习思路和方法
这个大纲涵盖了目前市面上企业百分之99的技术,这个大纲很详细的写了你该学习什么内容,企业会用到什么内容。总共十个专题足够你学习
2、想学习却无从下手,该如何学习?
这里我准备了对应上面的每个知识点的学习资料、可以自学神器,已经项目练手。
3、软件测试/自动化测试【全家桶装】学习中的工具、安装包、插件....
4、有了安装包和学习资料,没有项目实战怎么办,我这里都已经准备好了往下看
最后送上一句话:
世界的模样取决于你凝视它的目光,自己的价值取决于你的追求和心态,一切美好的愿望,不在等待中拥有,而是在奋斗中争取。
如果我的博客对你有帮助、如果你喜欢我的文章内容,请 “点赞” “评论” “收藏” 一键三连哦!
Python + Selenium,分分钟搭建 Web 自动化测试框架相关推荐
- Python + Selenium,带你分分钟搭建 Web 自动化测试框架!
在程序员的世界中,一切重复性的工作,都应该通过程序自动执行.「自动化测试」就是一个最好的例子. 随着互联网应用开发周期越来越短,迭代速度越来越快,只会点点点,不懂开发的手工测试,已经无法满足如今的业务 ...
- Python + Selenium,分分钟搭建 Web 自动化测试框架!
在程序员的世界中,一切重复性的工作,都应该通过程序自动执行.「自动化测试」就是一个最好的例子. 随着互联网应用开发周期越来越短,迭代速度越来越快,只会点点点,不懂开发的手工测试,已经无法满足如今的业务 ...
- 基于Selenium实现的web自动化测试框架
目录 一.什么是Selenium? 二.自动化测试框架 三.自动化框架的设计和实现 四.需要改进的模块 五.总结 一.什么是Selenium? Selenium是一个基于浏览器的自动化测试工具,它提供 ...
- python 自动化框架_学会Python+Selenium,分分钟搭建Web自动化框架!
用python+selenium实现UI自动化测试,要有一些HTML和xpth的基础,当然python基础一定是必须要会的.笔者建议花点时间了解下相关基础知识,不至于后面发懵. 一.什么是seleni ...
- 【万字长文】2022年最全的搭建Web自动化测试框架教程
测试框架的设计有两种思路,一种是自底向上,从脚本逐步演变完善成框架,这种适合新手了解框架的演变过程.另一种则是自顶向下,直接设计框架结构和选取各种问题的解决方案,这种适合有较多框架事件经验的人.本章和 ...
- 从0开始搭建Web自动化测试框架
前言: 测试框架的设计有两种思路,一种是自底向上,从脚本逐步演变完善成框架,这种适合新手了解框架的演变过程.另一种则是自顶向下,直接设计框架结构和选取各种问题的解决方案,这种适合有较多框架事件经验的人 ...
- 大厂年薪43w测试开发手把手教你搭建Web自动化测试框架,超详细
测试框架的设计有两种思路,一种是自底向上,从脚本逐步演变完善成框架,这种适合新手了解框架的演变过程.另一种则是自顶向下,直接设计框架结构和选取各种问题的解决方案,这种适合有较多框架事件经验的人.本章和 ...
- python selenium 获取元素下的元素个数_Python + Selenium,分分钟搭建 Web 自动化框架!(送自动化测试书籍)...
前言 在程序员的世界中,一切重复性的工作,都应该通过程序自动执行.「自动化测试」就是一个最好的例子.随着互联网应用开发周期越来越短,迭代速度越来越快,只会点点点,不懂开发的手工测试,已经无法满足如今的 ...
- jenkins+python+git自动化测试框架_使用jenkins + python + selenium一步步搭建web自动化测试“框架”(1) - 各部件简介...
原先搭建过一个自动化测试框架,迷迷糊糊不求甚解,算是搭建了一个仅限于能用的.根本算不上框架的玩意儿. 现在回过头来好好看看究竟每一步是怎么联系起来的,是怎么运行起来的. 本次博客先说说各部件都是干什么 ...
最新文章
- spring cloud互联网分布式微服务云平台规划分析--服务统一配置中心
- 重磅!可以发朋友圈和搜一搜的PC端微信来了,赶紧来下载!
- IDEA中安装MyBatis Log Plugin插件完整显示执行的mybatis的sql语句
- php连接MYSQL(2)
- cf 786 B 线段树优化建图
- 填补服务机器人市场空白,九号机器人提供智能服务场景解决方案!
- 提升有监督学习效果的实战解析
- Linux下java web服务器搭建(JDK1.6、MySQL5.1、Apache2.2+2...
- javascript java map_javascript实现java的map对象,js实现new map()
- hive元数据为什么使用Mysql?不使用默认的Derby
- matlab仿真之大尺度衰落因子的产生
- php strictbool,PHP 7 Bool类型提示不起作用
- 《概率论与数理统计》之常见概率分布
- Python_Pandas_分组汇总数据和创建数据透视表
- 深度学习 | 误差反向传播法
- mysql failover_MySQL 8.0.22 新特性Async Replication Auto failover
- CF1526C2 Potions (Hard Version) (贪心 + 线段树)
- android 滑动取值_Android中滑屏实现
- dubbo配置多协议
- 单元测试mock框架——jmockit实战