3.29 ui自动化
ui自动化什么是自动化测试?
硬件行业:把人为的手工测试转换为机器实现的过程叫做自动化测试。
软件行业:把人为的手工测试转换为代码实现的过程叫做自动化测试。
做自动化需要满足那些要求?
1.需求 稳定,不会有频繁的需求变更;
2.项目周期长,有充足的时间开展自动化;
3.自动化测试用于回归测试,有频繁的回归测试活动;
4.需要测试人员具备一定的代码能力。
满足这些要求就可以开展自动化测试。
自动化用例脚本:
是使用功能测试例进行转换为自动化测试用例:
ui自动化是不写异常场景的
你项目总共多少条脚本数,你写过多少条ui自动化的用例脚本----
功能测试用例一年在(一万条左右---包含正常和异常场景用例,
正功能测试2000-3000条,在从这个正常的基础筛选你需要做自
动化测试的用例)
1.当前的项目有专业的自动化团队---80%-90%
2.当前项目没有专业的自动化团队---30%
自动化脚本在哪个阶段编写?
1.自动化测试用例,在功能测试通过,以及产品验收通过之后进行开始。
自动化脚本在哪个阶段执行?
2.在回归测试阶段。
自动化的常见测试工具?
QTP:它是一款商业化的自动化测试工具,它提供了录制和回放功能,它支持
b/s,c/s架构产品。
robot framework : 他是一款 由python编写的自动化框架工具,也支持python语
言,可以使用python当中的函数方法,提供了各种客服端的接口,能够支
持各种客服端进行使用。
selennium:他是一款基于web应用的自动化测试第三方工具包,它支持多台,
多语言,多浏览器的方式去实现自动化测试。
多平台:linux mac windows
多语言:javac++jspython
多浏览器:谷歌 火狐 ie
开展自动化测试的流程:
1、熟悉我们当前的项目需求,筛选出需要做自动化测试场景。
2、筛选出来,进行组织评审。
3、要根据业务流程去选择自动化用例测试的场景,以及找出当前有业务流程
自动化测试用例。
4、选择自动化测试的工具。
1)选取主流的自动化测试工具
5、设计自动化测试框架,进行搭建。
1)用例管理
2)用例的维护
3)用例的执行
4)生成自动化测试报告
5)发送自动化测试报告邮件
6、编写自动化测试脚本输出结果
7、执行和维护
from selenium import webdriver
driver=webdriver.Chrome() #实例化一个webdriver的实例化对象
webdriver 他是一个类
get:打开一个浏览器的网址
driver.get("https://www.baidu.com")
第一种定位方法:id定位
id 定位方法,通过页面id元素进行页面的功能
send_keys 输入的方法(函数)
driver.find_element_by_id("kw").send_keys("hello wuhan")
第二种:class定位class属性值定位
driver.find_element_by_class_name("s-ipt").send_keys("黄鹤楼")
driver.find_element_by_class_name("s_ipt").send_keys("黄鹤楼")
第三种:name属性定位
driver.find_element_by_name("wd").send_keys("多测师")
第四种:text文本值定位 click点击的操作
driver.find_element_by_link_text("hao123").click()
第五种:模糊文本值定位 partial_link_text
driver.find_element_by_partial_link_text("hao123").click()
第六种:tag name 定位
#element 只适合用于当前页面只有这样一个属性标签input、 kw、 s_ipt、
#elements 获取页面所有的页面标签获取所有input
a=driver.find_elements_by_tag_name("input")
print(a)
for i in a:
if i.get_attribute("name")=="wd":
i.send_keys("武汉多测师”)
#注释get_attribute 获取我当前标签的属性元素获取name属性
第七种:使用js定位
#var js语言定义变量的关键字
#getElementById("kw") 获取页面上kw的属性进行定位
# value="duoceshi" value输入内容
# execute_script(js):执行js语句的函数方法
js='var a=document.getElementById("kw").value="duoceshi"'
driver.execute_script(js)
第八种:路径定位xpath
#绝对路径定位
# 找到对应的元素,右键copy--->copyfull xpath 复制
driver.find_element_by_xpath("/html/body/div/div/div/div/div/form/span/input").send_keys("武汉每天不一样")
#相对路径 右键copy--->copy Xpath 复制
driver.find_element_by_xpath("//*[@class='s_ipt']").send_keys("武汉欢迎你”)
# //*[@id="kw"]
#路径组合定位:当我的路径存在重复情况 可以使用组合路径的方法定位
driver.find_element_by_xpath("//*[@id='kw' and @autocomplete='off]").send_keys("啦啦啦啦")
#路径找父级定位:根据父级的路径找到我的目标
driver.find_element_by_xpath("//*@id='from']/span/input".send_keys("巴拉巴拉")
第九种:css 定位
css定位通过id 选择器 定位
driver.find_element_by_css_selector("#kw").send_keys("祖国我爱你")
css 定位通过class 选择器定位
driver.find_element_by_css_selector(".s_ipt").send_keys("武汉我爱你")
css通过属性值定位
driver.find_element_by_css_selector(" ").send_keys("啦啦啦啦")
driver.find_element_by_css_selector(" ").send_keys("哈哈哈哈")
css组合定位 多个值的属性组合
driver.find_element_by_css_selector(" ").send_keys("呜呼啦呼黑魔变身")
上级路径定位
driver.find_element_by_css_selector("span>input ").send_keys("巴啦啦能量")
上上级路径定位
driver.find_element_by_css_selector("form>span>input ").send_keys("无卡拉卡小魔仙全身变")
隐藏下拉框定位:使用action_chains类当中的方法
定位百度页面设置的高级设置
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from time import sleep
driver=webdriver.Chrome()
driver.get("https://www.baidu.com")
driver.maximize_window()#先获取到我想移动的位置
id_setting=driver.find_element_by_id("s-usersetting-top")
#调用ActionChains这个类,第一个穿driver对象。
#move_to_element:鼠标移到的位置(移动到我获取id_setting 元素上)
ActionChains(driver).move_to_element(id_setting).perform()
sleep(2)
#点击设置隐藏下拉框里面的内容,高级搜索。
driver.find_element_by_xpath('//*[@id="s-user-setting-menu"]/div/a').click()
多个窗口如何进行切换
from selenium import webdriver
driver=webdriver.Chrome()
driver.get("https:www.jd.com")
driver.maximize_window()
driver.find_element_by_xpath('//*[@id="navitems-group2"]/li/a').click()
driver.find_element_by_xpath('//*[@id="extra-zhenpin"]/a').click()
#多个窗口如何进行切换
from selenium import webdriver
driver=webdriver.Chrome()
driver.get("https:www.jd.com")
driver.maximize_window()
#点击首页的拍卖按钮
driver.find_element_by_xpath('//*[@id="navitems-group2"]/li/a').click()
#获取页面的标识--->窗口的句柄--->通过句柄实现窗口的切换
all_hendle=driver.window_handles #获取所有的句柄
print(all_hendle) #打印所有的句柄
#切换以下句柄
driver.weithch_to.window(all_hendle)
#打印当前的句柄
#hendle=driver.current_window_hendle
#print(hendle)
#点击第二个窗口的珍品拍卖
driver.find_element_by_xpath('//*[@id="extra-zhenpin"]/a').click()
页:
[1]