一、了解自动化测试
1、什么是自动化
自动化可以有效地减少人力的消耗,同时提高产品的质量。
2、自动化测试的分类
(1) 接口自动化测试
(2) UI自动化测试(界面测试)
(a) 移动端自动化测试
(b) web端自动化测试
3、为什么选择selenium
(1) 开源免费;
(2) 支持多种浏览器,如谷歌、火狐、Edge、IE等;
(3) 支持多种操作系统,如Windows、Linux、MacOS等;
(4) 支持多种语言,如Java、Python、JS等;
(5) 提供了很多可供测试使用的API。
二、selenium常用方法
2.1 selenium工具包中的常用API
2.1.1 查找页面元素
方法:findElement() 参数:By类
2.1.2 元素的定位(By类)
2.1.3 常见的元素操作
操作 | 方法 |
输入文本 | sendKeys() |
点击 | click() |
提交(不推荐使用) | submit() |
清除 | clear() |
获取文本 | getText() |
获取URL | getCurrentUrl() |
获取标题 | getTitle() |
2.1.4 窗口操作
(1) 窗口大小的设置
(2) 窗口切换
(3) 屏幕截图
2.1.5 等待
(1) 强制等待
Thread.sleep(),不能多用
(2) 隐式等待
隐式等待会作用域driver的整个生命周期
隐式等待会一直轮询元素是否存在,如果不存在就等待设置好的时间,在等待的时间里也会一直询问元素是否存在。
(3) 显示等待
2.1.6 浏览器导航栏
2.1.7 弹窗
处理弹窗的步骤:
(1) 将driver对象作用到弹窗上;
(2) 选择确认、取消或输入文本
2.1.8 选择框
2.1.9 执行脚本
2.1.10 文件上传
2.2 Junit 中的注解和方法
2.2.1 注解
(1) 用例是否要被执行
(2) 用例的执行顺序
先使用@TestMethodOrder注解来说明当前类下的测试用例要进行排序,然后通过@Order注解来对每个测试用例进行排序。
(3) 参数化
单参数:
多参数:
动态参数:
(4) 测试套件
2.2.2 断言 Assertions类
断言是否匹配:assertEquals / assertNotEquals
断言是否为空:assertNull / assertNotNull
断言结果是真/假:assertTrue / assertNotFalse