一、介绍ui自动化
1、selenium是一个第三方库,python中有很多第三方库;第三方库在哪里:
2在pycharm中的setting中查看第三方库;
3、什么是ui自动化?
ui就是界面设计,
通过模拟手工操作用户页面方式,用代码来实现自动化操作和验证的行为。
4、ui自动化的优点?
(1)解决重复性的功能测试和验证
(2)减少测试人员在回归测试时用例漏测和验证点的漏测
(3)减少冒烟测试,减少回归测试人力成本,
(4)节省时间,提高测试效率
5、ui自动化的缺点?
(1)需求不稳定,比如敏捷开发速度快,ui频繁变更,定位不稳定,提高用例维护的成本
(2)自动用例的覆盖率,占用例总数大概20%-30%,
(3)场景覆盖占当前功能场景70%-80%
6、ui自动化和功能测试那个重要?
都重要,先把功能测试成功,在进行ui自动化测试,
功能测试是ui自动化基础,先熟悉功能的前提下才能做好ui自动化
=================================
二、介绍selenium库
1、定义:
Selenium是一个应用于web应用程序的测试工具,支持多平台,多浏览器,多语言 去实现ui自动化测试,我们现在讲的Selenium版本其实是Selenium2版本
2、支持的浏览器有哪些?
Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包 括IE,Firefox,Safari,Google Chrome等
3、selenium 是一套完整的web应用程序测试系统,包含了测试的录制(selenium IDE),编写及运行(Selenium Remote Control)和测试的并行处理(Selenium Grid)
4、用selenium的优点?
(1)、工具免费
(2)安装简单,小巧,selenium其实就是一个包
(3)支持多语言(java,python)+selenium完成自动化测试
(4)支持多平台(window,linux)
(5)支持多浏览器 (ie,firefox,chrome)
5、Selenium工具原理?
Selenium2的核心是webdriver webdriver是按照 client-server设计原理设计 client:简单来说就是我们写的代码,以http请求的方式发送给server端,server 端接收请求,执行相应操作,并返回给client端。 server:客户端的脚本启动后,被控制的浏览器就是server端,职责就是等待 client端发送请求并作出响应。 使用的协议: JSON Wire protocol(作用是可以让同一个浏览器驱动处理不同编程语言的脚本)
========================================
三、安装selenium
安装方法:
方法一:在dos下通过pip安装selenium
(1)pip3 install selenium3.141.0
或
pip install selenium3.141.0
(2)查看是否安装成功
pip show selenium
方法二:
在pycharm中的setting中安装selenium
注意点:
1、如果安装报错:pip版本太低
解决方案:升级pip直接输入 : python -m pip install --upgrade pip
2、记得配置pip环境变量
3、安装出现pip 安装不是内部命令
解决:安装环境变量的问题,
2、安装驱动 讲课用谷歌浏览器(驱动和谷歌版本一致)
(1)下载谷歌浏览器;
查看谷歌的版本
2、下载对应谷歌版本驱动
对应版本镜像链接:http://npm.taobao.org/mirrors/chromedriver/
3、下载好的驱动,放到python下
路径:C:\python37
或
C:\python37\Scripts
===========================================
selenium基础语句使用:
一、selenim调用语句:
格式:
from selenium import webdriver #导入selenium库 中webdriver 函数
from time import * #导入time模块
d=webdriver.Chrome() #创建一个d的对象来打开浏览器,对浏览器实现操作,浏览器
d.get(“https://www.baidu.com/”) #通过对象谷歌浏览器输入网址,用get方法url来打开一个网址
d.maximize_window() #窗口最大化
sleep(2) #休眠时间(秒数)
d.find_element_by_id(‘kw’).send_keys(“多测师”) #id定位方法,send_keys输入(内容)
二、打开页面方法
第一步导入库
from selenium import webdriver #导入selenium库 中webdriver 函数
from time import * #导入time模块
第二步创建对象
(1)创建对象d=webdriver.Chrome()
第三步:通过对象,打开浏览器
格式:d.get(“网址”)
案例:情况1:打开一个窗口
from selenium import webdriver #导入selenium库 中webdriver 函数
from time import * #导入time模块
d=webdriver.Chrome()
d.get(“https://www.baidu.com/”)
案例:情况2:打开两个窗口 (在一个窗口下是覆盖)
from selenium import webdriver #导入selenium库 中webdriver 函数
from time import * #导入time模块
d=webdriver.Chrome()
d.get(“https://www.baidu.com/”)
sleep(2)
d.get(“https://www.jd.com/”)
案例3:情况2:打开两个窗口 (另开一个窗口下是覆盖)
from time import * #导入time模块
d=webdriver.Chrome()
d.get(“https://www.baidu.com/”)
sleep(2)
w=‘window.open(“https://www.jd.com/”)’
d.execute_script(w)
==============================
1、时间等待:
(1)强制等待 :一定要等待到指定的时间
(2)隐性等等
格式:对象.implicitly_wait(时间)
d.implicitly_wait(3)
(3)显性等待
webdirvewite (不讲)
================================================================
页面刷新;
refresh
案例:
from selenium import webdriver #导入selenium库 中webdriver 函数
from time import * #导入time模块
d=webdriver.Chrome()
d.get(“https://www.baidu.com/”)
sleep(5)
d.refresh()
sleep(5)
d.close()
=================================
back() :返回上下一页
from selenium import webdriver #导入selenium库 中webdriver 函数
from time import * #导入time模块
d=webdriver.Chrome()
d.get(“https://www.baidu.com/”)
sleep(3)
d.get(“https://www.jd.com/”)
sleep(3)
d.back()
sleep(5)
d.close()
=================================
forward 切换到下一页
案例:
from selenium import webdriver #导入selenium库 中webdriver 函数
from time import * #导入time模块
d=webdriver.Chrome()
d.get(“https://www.baidu.com/”)
sleep(3)
d.get(“https://www.jd.com/”)
sleep(3)
d.back()
sleep(5)
d.forward()
sleep(5)
d.close()
set_window_size(200,200) 设置指定窗口的大小
d.set_window_size(200,200)
from selenium import webdriver #导入selenium库 中webdriver 函数
from time import * #导入time模块
d=webdriver.Chrome()
d.get(“https://www.baidu.com/”)
sleep(3)
d.set_window_size(200,200)
sleep(10)
d.close()
======================
退出;
(1) close() 关闭当前窗口
from selenium import webdriver #导入selenium库 中webdriver 函数
from time import * #导入time模块
d=webdriver.Chrome()
d.get(“https://www.baidu.com/”)
sleep(3)
w=‘window.open(“https://www.jd.com/”)’
d.execute_script(w)
sleep(10)
d.close()
(2)qiut () 关闭所有的窗口
from time import * #导入time模块
d=webdriver.Chrome()
d.get(“https://www.baidu.com/”)
sleep(3)
w=‘window.open(“https://www.jd.com/”)’
d.execute_script(w)
sleep(10)
d.quit()