一.自动化概述
通过测试工具或者其他手段,按照测试人员的预定计划对软件产品进行自动化测试,他是软件测试的一个重要组成部分。
二.自动化的好处
1.缩短测试周期 2.避免人为出错 3.测试信息存储 4.轻易获取覆盖率 5.其他
注:自动化测试的方向是对的,而且趋势也是如此,但是有些自动化实现不了的还是会手动测试的
三.自动化的分类
1.整体分类: (1).自动化功能测试 (2).自动化性能测试
2.自动化功能测试 : (1).单元测试:程序员搞定 (2).功能测试 (3).接口测试:大中型项目或长期项目可以采用自动化测试
3.自动化性能测试主要使用的工具:Loadrunner、Jmeter等,对软件进行压力测试、负载测试等等,因为这些无法用手工进行代替,所以必须自动化。为了测试一个web站点的服务能力,需要模拟上千上万的请求(比如打开浏览器访问站点),人的速度是远远达不到这样的操作的
四.自动化测试的前提条件
1.手动测试已经完成 2.项目周期比较长 3.项目变更不大 4.自动化脚本复杂度比较低 5.可以重复利用
五.自动化场景
1.回归测试 2.冒烟测试 3.性能测试
六.web自动化常用工具及环境
1.自动化工具:Selenium
2.定位工具:css_selector、Xpath
3.环境准备:Firefox35、FirePath、FireBug、SeleniumIDE
七.Xpath
1.概念:xml路径语言。xml:传输和存储数据,HTML:显示数据
2.获取元素
八.CSS选择器
1.定义:用于选择需要添加样式的元素
2.语法
九.框架
1.定义:第三方已经完成某个特定功能的框子
2.好处:(1).自己实现太复杂 (2).使用框架可以专注于我们业务逻辑 (3).细节 (4).使用多,稳定性、扩展性好
十.Selenium
1.原理: webdriver是按照server–client的经典设计模式设计的。
server端就是remote server,可以是任意的浏览器。当我们的脚本启动浏览器后,该浏览器就是remote server,它的职责就是等待client发送请求并做出相应;client端简单说来就是我们的测试代码,我们测试代码中的一些行为,比如打开浏览器,转跳到特定的url等操作是以http请求的方式发送给被测试浏览器,也就是remote server;remote server接受请求,并执行相应操作,并在response中返回执行状态、返回值等信息。
2.环境搭建: (1).FireFox35 (2).python3.7 (3).selenium(2.48.0) (4).驱动器:谷歌/火狐下载
3.selenium对浏览器的操作
4.元素八大定位方式
5.元素的操作
6.多标签切换:打开先标签以后无法定新标签的元素
获取所有句柄:handles = driver.window_handlers
切换句柄: driver.switch_to_window(handles[n]) driver.switch_to.window(handles[n])
定位新标签元素
7.表单切换:获取到表单 :form = driver.find_element_by_id('表单id')
切换表单: driver.switch_to.frame(form)
8.弹出框的操作:进入警告框:alert = driver.switch_to.alert 接收:alert.accept() 解散:alert.dismiss()
警告框输内容:alert.send_keys("内容")
9.下拉框: eles = driver.find_elements_by_id()
10.鼠标和键盘:1.鼠标: 导包:fromselenium.webdriverimportActionChains
悬浮: ActionChains(driver).move_to_element(ele).perform()
点击鼠标右键: ActionChains(driver).context_click(ele).perform()
点击鼠标左键: ActionChains(driver). double_click(ele).perform()
2.键盘: 导包: from selenium.webdriver.common.keys import Keys
十一.浏览器等待
注:使用优先级:隐式等待->显示等待->固定等待
1.固定等待:必须等到指定时间才继续执行
2.显示等待:在设置时间内,默认每隔一段时间检测一次当前页面元素是否存在,如果超过设置时间检测不到则抛出异常
3.隐式等待: 根据是件进行等待,等待特定时间 driver.implicitly_wait(n)
十二.脚本录制-Selenium-IDE
1.打开火狐浏览器因为有插件,输入http://www.baidu.com打开
2. 导入python文件是如有错误则修改错误:ERROR