文章目录
- 1、什么是自动化测试
- 2、自动化测试的优缺点
- 3、什么是数据驱动的自动化测试技术?
- 4、自动化测试开发的流程
- 5、解释功能自动化测试及其常用的工具有哪些?
- 6、WEB UI自动化测试脚本的典型场景
- 7、简单介绍Selenium自动化测试工具
- 8、Selenium的元素定位方式、常用的哪种
- 9、如何判断页面元素是否存在
- 10、简单介绍appium及工作原理
- 11、appium的控件有哪些
- 12、阐述接口自动化测试和UI自动化测试在测试中是如何协同测试的
- 13、简述Robot Framework自动化测试框架
- 14、简述pytest自动化测试框架
- 15、接口测试当中,测试工程需要知道接口的哪些信息
- 16、结合项目描述如何设计接口测试用例
- 17、接口和UI的侧重点
1、什么是自动化测试
答:利用工具或代码代替手工测试来测试被测系统
2、自动化测试的优缺点
优点:
- 提高测试质量
- 提高测试效率
- 提高测试覆盖率:通过数据驱动来测试功能,可以提高覆盖率
- 执行手工测试不能完成的测试任务:压力测试、负载测试、大数据量测试、崩溃性测试
- 更好的重现软件缺陷的能力:自动化测试具有更好的一致性和可重复性
- 更好的利用资源:可以在周末或晚上执行测试,充分利用资源
局限性:
- 不适合周期短的项目
- 业务规则复杂的对象:工具难实现,需要投入的测试准备时间比直接进行手工测试所需的时间更长
- 人体感官与易用性的测试:界面的美观、声音的体验、易用性的测试,无法使用测试工具来实现
- 不稳定的软件:不稳定可能会导致自动化测试失败,或测试结果本身就是无效的
- 涉及物理交互:如刷卡器的测试
- 不能完全代替手工测试
- 若测试人员对测试工具不熟悉,测试进度会收到影响
- 不能立即降低测试投入,提高测试效率。自动化测试成本可能高于手工测试,因为工具的购买和维护的开支很大
- 不能保证100%的测试覆盖率
- 需要更长时间去分析和隔离所发现的缺陷
3、什么是数据驱动的自动化测试技术?
答:指的是将自动化脚本与测试数据进行分离。数据存在excel或数据库中,测试脚本来读取这些数据,从而一个测试脚本可以执行多个相似测试,很容易建立新的测试
4、自动化测试开发的流程
- 分析被测系统是否适合做自动化,考虑投入产出比
- 提取适合做自动化的业务功能和场景
- 根据被测系统的特点,选择合适的自动化测试工具
- 为自动化测试脚本创建测试数据,即测试脚本参数化
- 执行自动化测试,分析测试结果
5、解释功能自动化测试及其常用的工具有哪些?
答:功能自动化通常通过模拟用户操作,将预期结果与实际结果进行比较,这大大减轻了黑盒测试的工作量,提高测试效率和质量。在产品迭代中,可以很好的进行回归测试。
主要测试工具:
- windows界面自动化——UFT(QTP)
- Web页面自动化——selenium
- App界面自动化——Appium
6、WEB UI自动化测试脚本的典型场景
- 元素定位:常用定位方式:ID、Name、CSS、Xpath,需要等待元素
- 交互操作:文本框、单选框、多选框、按钮、表格单元的输入或点击
- 页面操作:页面切换和关闭、对话框切换和关闭
- 其他:对主流浏览器测试的支持、对JavaScript的支持
7、简单介绍Selenium自动化测试工具
答:Selenium是测试Web界面功能的免费开源自动化测试工具,功能强大。2.0版本可以在windows、linux上运行,提供了各类主流编程语言(JAVA、Python等)可调用的API。
8、Selenium的元素定位方式、常用的哪种
- id
- name
- class name
- xpath
- css
- tag name
- link text
- partial link text
最常用的是css,因为大部分html标签属性不规范,不能通过id或name唯一定位
9、如何判断页面元素是否存在
答:Selenium中没有提供原生的方法判断元素是否存在,解决办法:
- ① 元素定位+异常捕获的方式判断(try+except)
- ② 获取元素列表,判断列表长度是否为0
10、简单介绍appium及工作原理
答:Appium是一个开源测试自动化框架,可用于移动端原生APP、混合APP、H5页面的自动化测试。
特点:
- 支持多语言,针对流行语言开发了不同的appium库
- 支持多平台,针对mac和windows开发了appium-server
- 同时支持IOS、Android两个操作系统
工作原理:
执行测试脚本时,请求首先到appium-sever,appium-sever通过解析,驱动移动设备来执行自动化脚本
11、appium的控件有哪些
元素定位:
- id
- name
- xpath
- class name
- accessibility_id(适用场景: 目标元素有content-desc属性)
元素操作:
- click()
- send_keys()
- swipe() 滑动
- scroll() 滚动
元素信息提取:
- get_window_size()
- location()
其他操作:
- wait_activity()
- quit()
12、阐述接口自动化测试和UI自动化测试在测试中是如何协同测试的
答:接口自动化测试和UI自动化测试其实是有一部分重叠的,UI自动化测试是通过操作前端的界面来调用接口,而接口自动化是直接调用接口。如果在UI上只测试前端逻辑,最终可能会忽视很多原有的功能点,导致了UI测试的不充分。
13、简述Robot Framework自动化测试框架
答:RF是一个开源的自动化测试框架,使用关键字驱动。
14、简述pytest自动化测试框架
答:pytest是一款强大的软件测试框架,具有丰富的基础库,可大幅提高用例编写效率。并且支持用户自己编写插件,也可安装第三方插件。很容易的和其他工具集成到一起使用,如持续集成(Git、Jenkins)
15、接口测试当中,测试工程需要知道接口的哪些信息
- 接口说明
- 接口地址
- 请求方法
- 请求参数、参数类型、请求参数说明
- 返回参数说明
16、结合项目描述如何设计接口测试用例
接口功能验证:
- 按照接口文档上的参数,正常传参,检查是否可以返回正确的结果
- 传递不合法参数,针对异常情况校验
接口安全验证:
- 传入非法参数,检测后端是否做验证
- 无权限用户访问数据,检测是否做权限校验
- 通过接口传敏感信息,检测是否做加密
17、接口和UI的侧重点
UI:适合偏向流程的验证,测试对象主要是前端
适用场景:
- 业务操作涉及多个页面的流程
- 一步操作涉及多个接口
- 前后端不分离的系统(因为返回的是html页面)
API:偏向数据验证,绕过前端只测试后端
适用场景:
- 单个业务只需少量接口即能实现
- 利用接口准备测试数据
- 系统只有后端没有前端(只对外提供API的系统)