内容一:UI自动化的测试灵魂三问:
什么是UI自动化测试?
是人为驱动测试 转换机器自动执行的过程 WebUI自动化 测试 工具 Selenium 手机UI自动化 测试工具 appium
测试分类 按照软件自动化程度 手工测试和自动化测试(黑盒自动化) |
为什么学习UI自动化测试?
需求: 测试被测网站 打开关闭100次+登录多用例 手工测试怀疑人生 解决: 写一个python脚本,控制工具 网站自动执行(自动打开 自动完成业务流程)===》UI自动化(python—》selenium–》浏览器—》网站自动执行) 优点: 1)减少重复工作量+提高测试效率+速度快 2)人力成本+代码重复使用+回归测试 3)针对网站监控 4)测试数据模拟
引入UI自动化先决条件 不是万能的(比如安全控件(验证码,在测试环境让开发万用码+Cookie值(保留登录成功状态)))
缺点:
3实际工作中 selenium不可定位元素(验证码 安全控件 非标准html元素)
|
如何掌握UI自动化测试?
Web自动化工具 selenium 其它(QTP UFT贵) 目标 用selenium 让web网站自动运行 即可 |
经典UI自动化搭配
测试脚本 Python+pycharm+selenium+Unittest(python自带测试框架)+驱动(帮助selenium识别浏览器)+浏览器(chrome)+被测的网站
不关心被测试网站(java python php 测试对象对我们都是一样的)
内容二:环境:
建议:放在一套纯净的虚拟机中去
全新解压
1安装selenium库:(在python上面扩展) 1.1 在线安装(依赖网络+简单)
1.2 离线安装(pypi网站)
|
2安装浏览器和驱动(驱动必须要和浏览器版本进行对应~~) 注意:selenium 能够识别浏览器是有驱动版本选择的 以google chrome(谷歌浏览器) http://chromedriver.storage.googleapis.com/
火狐:根据版本选择驱动
https://github.com/mozilla/geckodriver/releases
安装浏览器—注意防止浏览器自动更新(浏览器自动更新了 驱动也必须更新)
浏览器安装结束
驱动:只要将驱动放在 python安装路径下即可
|
3快速安装被测网站: (3.1 wamp (自带mysql 确保虚拟机里面没有别的mysql) (windows 服务集成软件类似xampp))(W-windows a-apache m-mysql p-php或者jsp)
注意:修改Apache的端口号80 很容易彼得软件占用80==》8081
搜索 80 =全部改成==》8081 Stop all service ===>start 直到变成绿色 或者黄色即可
3.2 将 Discuz网站交给 wamp 网站发布路径即可
|
http://localhost:8081/Discuz_X2_SC_UTF8/upload/install/
得出被测网址
http://localhost:8081/Discuz_X2_SC_UTF8/upload/forum.php
内容三: 第一个UI自动化例子
例子 使用python控制selenium 工具自动控制chrome/或者Firefox打开 百度
|
安装了 selenium 本质 基于 webdriver对象(有对象调用对象即可)
对象(媳妇)的名字 |
对象的功能(API—方法功能) API不关心定义 只关心调用 |
志玲 |
炒菜 做饭 |
Webdriver |
Chrome() 打开chrome浏览器 Firefox() 打开火狐浏览器 get() 访问网址 maximize_window() .current_url title 。。。。很多
|
|
|
学习selenium 过程 就是学习webdriver的API过程
目标 拿到selenium这一套API (工具)测试不同网站即可~~
# 一个函数 打开chrome浏览器
# 导包 alt和enter from time import sleep
from selenium import webdriver
def open_chrome(): # 严格区分大小写 jwchrome=webdriver.Chrome() # 去找 python安装路径下驱动 调度Chrome浏览器 # 操作jwchrome相当于操作Chrome浏览器 jwchrome.get(“http://www.baidu.com”) jwchrome.maximize_window() #浏览器最大化 # 验证:被测网站是否登录成功 打印当前的 # 当前浏览器地址 current_url # 当前浏览器标题 title print(“浏览器当前的地址”,jwchrome.current_url) print(“浏览器当前的标题”, jwchrome.title) #from time import sleep sleep(3) #等待后退出 jwchrome.quit()
def open_Firefox(): # 严格区分大小写 jwchrome=webdriver.Firefox() # 去找 python安装路径下驱动 调度Chrome浏览器 # 操作jwchrome相当于操作Chrome浏览器 jwchrome.get(“http://www.baidu.com”) jwchrome.maximize_window() #浏览器最大化 # 验证:被测网站是否登录成功 打印当前的 # 当前浏览器地址 current_url # 当前浏览器标题 title print(“浏览器当前的地址”,jwchrome.current_url) print(“浏览器当前的标题”, jwchrome.title) #from time import sleep sleep(3) #等待后退出 jwchrome.quit()
if __name__ == ‘__main__’: #调用函数 #open_chrome() open_Firefox() |
小结:
- UI自动化优缺点(面试)
- Selenium环境搭建以及被测网站搭建
- 第一个脚本自动化打开关闭 浏览器
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/python/289259.html