玩转UI自动化测试1
1.自动化测试的目的是什么?
在项目需要做大量回归测试中,全量回归成本太高,不全量回归会存在风险,自动化测试主要是为了提高回归测试的效率
2.什么样的项目适合做自动化测试?
<1>.版本迭代比较频繁,项目(产品)需要反复测试回归的需求
<2>.对于UI自动化迭代不是很频繁的(至少不是每天都改动)
3.UI自动化测试工具
selenium 开源 稳定
cypress 需要写js
robot framework 可以使用
airtest 网易开发的自动化测试工具
4. Selenium 原理
selenium 翻译器 selenium core 把 测试代码(Python,java) 翻译成JSON报文({"操作":"点击","元素":"id=aaa"}),
把JSON报文发给浏览器,浏览器厂商(chrome,firefox)根据selenium厂家联合在一起定制浏览器,浏览器有一套机制,
看到selenium的JSON代码,浏览器就会生成一段JS,执行相关的操作,执行完以后,把执行结果返回给selenium core{"status":ok},
继续执行下一步操作,selenium 与浏览器采用的是webdriver协议
5.selenium 安装
在python环境下,使用pip 方式进行安装,pip 安装的位置在 python安装目录 /python36/lib/sitepackages/selenium
pip install selenium ,如果需要指定版本号,则是命令 pip install selenium==3.141.0
需要查看安装的版本,输入命令: pip list|findstr selenium
6.下载webdriver
使用selenium时,还需要webdriver,不同的浏览器,webdriver也不同,具体下载地址如下:
Chrome浏览器: http://chromedriver.storage.googleapis.com/index.html
Firefox浏览器: https://github.com/mozilla/geckodriver/releases
Edge浏览器: https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/
下载webdriver时,需要注意与浏览器版本一致,否则selenium启动会闪退,浏览器最好关闭自动更新
chrome浏览器关闭更新:
<1>.首先是【右键计算机->管理】,在【计算机管理(本地)->系统工具->任务计划程序->任务计划程序库】中找到两个和Google自动更新相关的任务计划 【GoogleUpdateTaskMachineCore】与【GoogleUpdateTaskMachineUA】,并把它俩禁用掉
<2>.【服务和应用程序->服务】中,找到两个和Google更新相关的服务【Google更新服务(gupdate)】、【Google更新服务(gupdatem)】,并右键,选 择属性,把启动类型改为禁用。
<3>.不要在Chrome中点击【帮助->关于Google Chrome】
为了测试方便,一般都将浏览器driver放到项目目录下
实例化driver对象时,需要指定下driver路径: driver = webdriver.Chrome(executable_path='../driver/chromedriver.exe')
7.测试selenium 环境是否配置成功,代码如下:
from selenium import webdriver
# 实例化一个chrome浏览器的webdriver对象
driver = webdriver.Chrome(executable_path='../driver/chromedriver.exe')
# 跳转到百度首页
driver.get("http://www.baidu.com")
# 将百度首页截图保存为base64编码内容
print(driver.get_screenshot_as_base64())
# 退出当前浏览器窗口
driver.close()
运行上面的代码,浏览器能够正常启动,并打印base64编码内容,则说明环境配置成功
至此,selenium环境配置完成