自动化测试能解决什么问题
回归测试,压力测试,兼容性(浏览器,分辨率),操作系统
误区
自动化测试可以完全替代人工;可以发现更多bug,适用于所有功能
自动化测试分类
web,移动(app),接口(工具代码),单元测试
web自动化
程序代替人工自动验证web项目功能的过程
什么web适合自动化测试
1.需求变动不频繁
2.项目周期长
3.项目需要回归测试
web自动化在什么阶段开始
功能测试完毕(手工测试之后),因为时间问题,以及功能完善问题,需要手动先测试一下
web自动化测试所属分类
黑盒测试(功能测试);白盒测试(单元测试);灰盒测试(接口测试)
按照代码分为:黑白灰
web自动化测试工具
QTP:收费,支持web,桌面自动化测试(本地软件)
Selenium(本阶段学习):web,免费,开源(你可以改代码,公开代码),主要做功能测试
robot framework:基于python可扩展的关键字驱动的测试自动化框架,免费
Selenium
特点:
开源软件;跨平台:linux;windows;mac
支持多种浏览器,语言(java,python,jsp...)
成熟稳定,功能强大
发展历程:
1.0版本:IDE录制自动化代码工具,Grid是分布式工具,同时启动多个浏览器;RC,通过JS模拟浏览器,实现自动化方式
selenium 2.0/3.0 比较多,2.0最多,比较稳定,推荐
元素定位方式
id定位
element=driver.find_element_by_id(id) //前提是有id属性并且唯一
web测试name定位
name一般名称会重复
id,name,class区别
id:一般为唯一标识符 name:可重名 class:多个命名
tag_name定位(了解)
parcial_link_text
XPath
XPath定义
XPath依赖于元素路径
XPath常用定位策略
绝对路径/开头
相对路径以//开始
也可以使用通配符查找,但是,效率没有指定后的高
所有属性必须用@id='id值'
XPath延伸
CSS定位方法(强推)
element=driver.find_element_by_css_selector('css_selector')
CSS选择器案例
driver.find_element_by_css_selector(‘#userA’).send_keys('admin')
driver.find_element_by_css_selector("[name='passwordA']").send_keys('123456')
driver.find_element_by_css_selector(‘.telA’).send_keys('18611112222')
span=driver.find_element_by_css_selector(‘span’).text获取文本值
driver.find_element_by_css_selector(‘p>input[placeholder='电子邮箱A']’).send_keys('123@qq.com')
CSS延伸
八种元素定位汇总
用CSS或者partical_link_text
定位一组元素
扩展8种元素定位的底层实现
ctrl+alt+空格,快速导包