# 6、面试题:
# ui自动化测试和功能测试那个更要
# 都重要
# 功能测试是基础,只有功能没有问题了才可以做自动化
# ui 自动化可以减少人力 提高效率 更加完善
# 一、ui自动化测试理论
# 1、什么是ui自动化
# 原本用手工操作用户ui页面的方式,用代码去实现操作或者验证的动作
# 2、ui 自动化优点
# 1)解决重复性功能测试和验证
# 2)减少回归测试的人力,时间成本,提高效率
# 3)减少回归测试在测试时用例漏测的情况
# 3、什么样的项目适合左ui自动化
# 1)需要比较稳定,需求变更不频繁
# 2)项目周期比较长
# 3)ui 空间和页面元素不能变更
# 4、ui自动化场景和作用
# 用来做归回测试
# 注册--登录--加入购物车--下单==》功能测试好了==回归测试可以用自动化
# 5、ui自动化的覆盖率(用例400,自动化80条主流程的用例)
# 1)用例覆盖率:占当前本版的20-30%
# 2)场景覆盖率:占当前本版功能的70%-80%
# 6、面试题:
# ui自动化测试和功能测试那个更要
# 都重要
# 功能测试是基础,只有功能没有问题了才可以做自动化
# ui 自动化可以减少人力 提高效率 更加完善
# 7、目前市场比较主流的自动化工具
# 1)python +selenium
# 2)java +selenium
# 3)robotframework +selenium2library
# 8、自动化测试框架
# python + selenium +unittest +po 分层
# 9、selenium 安装
# 1)win +r 输入cmd
# 2)进入python安装路径 cd C:\Python37\Scripts
# 3)
# pip install selenium==3.141.0 (可能报错)
# 提示需要执行这个:python -m pip --upgrade pip 执行完之后再执行
# pip install selenium==3.141.0 【注意】
# 10、selenium 相关了解
# 1)在dos 窗口下 pip list ==》查看安装的库
# 2)安装的第三方库存放再哪里 C:\Python37\Lib\site-packages
# 11、selenium 原理
# 1)selenium 库中有一个webdriver包,webdriver包中有一个chrome包
# 2)C:\Python37\Lib\site-packages\selenium\webdriver\chrome
# 3)chromedriver.exe==》驱动,把这个文件放到 C:\Python37\Scripts 路径下
# 12、selenium 中定位元素方法
# 1)id 定位法
# 例子:把元素看成一个人,id就是身份证
# id 属性进行定位
# a. 谷歌浏览器f12
# b.鼠标空白处点击检查
# 2)name定位法
# name属性好比一个人的名字,可以重复,也可以是唯一的
# 3)class 定位法
# class属性好比一个人的名字,可以重复,也可以是唯一的
# 4)xpath 定位法
# 通过路径定位元素
# 13、实操
from selenium import webdriver #通过selenium 库导入webdriver包
from time import sleep
driver = webdriver.Chrome() #创建一个对象driver 或者说浏览器对象,开打一个空白浏览器
driver.get('https://www.baidu.com') #打开百度
driver.maximize_window() #浏览器最大化
sleep(3) #线程等待3s
# driver.close() #关闭浏览器
# 元素定位
# 1)id 定位方法
# driver.find_element_by_id('kw').send_keys('多测师')
# 2)name定位方法
# driver.find_element_by_name('wd').send_keys('多测师')
# 3)class 定位方法
# driver.find_element_by_class_name('s_ipt').send_keys('多测师')
# 4)link_text 定位链接
# driver.find_element_by_link_text('hao123').click() #点击链接
# 5)partial_link_text 模糊匹配
# driver.find_element_by_partial_link_text('123').click()
# 6)JavaScript 定位 var 是JavaScript 里面定义的变量的,a 是变量
# js = 'var a = document.getElementById("kw").value="多测师"'
# driver.execute_script(js) #执行
# 7)tag_name 定位标签
# driver.find_element_by_tag_name('input').send_keys('多测师')
#这个用法只能用于一个input标签
# s = driver.find_elements_by_tag_name('input') #定位所有的input标签赋值给s
# print(s)
# print(type(s)) #<class 'list'>
# print(len(s)) #17
# for i in s:
# if i.get_attribute('id') =='kw':
# i.send_keys('多测师')
# 8)xpath 定位
driver.find_element_by_xpath('//*[@id="kw"]').send_keys('多测师')
driver.find_element_by_xpath('//*[@name="wd"]').send_keys('多测师')
driver.find_element_by_xpath('//*[@class="s_ipt"]').send_keys('多测师')
driver.find_element_by_xpath('//*[@name="wd"and @class="s_ipt"]') .send_keys('多测师') #组合标签
driver.find_element_by_xpath('//*[@autocomplete="off"]').send_keys('多测师')
driver.find_element_by_xpath('//*[@id="form"]/span[1]/input[1]').send_keys('多测师')
|
|