简述Web技术的发展与挑战
在现代Web应用中,当网页部分内容需要更新时,运行在浏览器内的JS代码通常会向服务器发送Ajax请求;在现代Web应用中,服务器负荷降低,响应速度也更快了;JavaScript最初目的是为了满足用户浏览页面时产生的交互需求;JavaScript有着强大的语言特性,是一种面向过程的动态语言;基于JavaScript前端应用越来越重要,功能越来越复杂,对前端开发测试带来了极大的挑战。
简述传统手工测试的局限性
1.重复性工作,测试质量低
2.测试效率低
3.无法保证覆盖代码全路径
4.无法有效兼顾多浏览器、多平台
简述三种测试用例的三种挂起方式
简述Jasmine Spies的6种使用方式
使用spy跟踪函数的调用
使用spy调用实际函数
使用spy控制函数的返回结果
使用spy将实际函数替换成新函数
创建新的spy函数
创建spy对象
简述AngularJS自定义指令的各种调用方式
- 元素名<runoob-directive></runoob-directive>
- 属性<div runoob-directive></div>
- 类名<div class="runoob-directive"></div>
- 注释<!-- directive: runoob-directive -->
简述JavaScript单元测试需要考虑的三种异步代码形式。
- 包含调用setTimeout或setInterval的代码。
- 需要花费一点时间才能显示的界面效果,例如网页元素的淡入淡出。
- Ajax调用。
$controller是一个函数,获得$controller的实例后就可以调用它来得到被测应用的Controller的实例。它主要接受三个参数:$controller(constructor, locals, [bindings])。分别简述三个参数的具体作用。
- 通过回调函数创建匿名Controller
- 使用locals注入Controller的依赖组件
- 使用bindings初始化Controller
简述代码覆盖率的衡量标准
- 函数覆盖率
- 语句覆盖率
- 分支覆盖率
- 条件覆盖率
简述AngularJS的组件Controller、Service、Directive的作用
Controller:它的主要作用是向视图传递数据、操作页面逻辑和增强视图。
Service:它的主要作用是封装业务逻辑。
Directive:它的主要作用是操作DOM。
简述AngularJS的测试专用的软件包ngMock里的两个主要函数的作用
函数 |
描述 |
angular.mock.module |
在单元测试中加载模块 |
angular.mock.inject |
在单元测试中注入依赖组件 |
简述前端自动化任务构建工具gulp相较于grunt优点
- 易用
- 高效
- 高质量
- 易学
简述自动化测试的优势
- 充分利用硬件资源
- 充分调动测试人员的积极性
- 有效实施数据驱动的测试
- 高效的回归测试
- 一致性
- 测试脚本具有可复用性
简述具有哪些特点的项目比较容易实施自动化测试
- 需求较稳定
- 较大型项目
- 测试人员良好的编程经验
- 良好的团队合作
简述+++工具套装内的包括哪些部分
简述Selenium WebDriver可以由哪些编程语言驱动,并且测试方案已经非常成熟
C#,NUint,java,TestNG
简述WebDriver提供的哪些函数可以用来定位单个、多个页面元素
FindElement
- 如果没有找到任何符合查找条件的元素,则抛出NoSuchElementException异常。
- 如果找到一个相符元素,则返回对应的IWebElement对象。
- 如果找到多个相符元素,则返回第一个IWebElement对象。
FindElements
- 如果没有找到任何符合查找条件的元素,则返回一个列表,里面元素为空。
- 如果找到一个相符元素,则返回包含一个IWebElement对象的列表。
- 如果找到多个相符元素,则返回包含多个IWebElement对象的列表
简述WebDriver定位页面元素的方式
- 基于Id定位
- 基于Name定位
- 基于ClassName定位
- 基于TagName定位
- 基于LinkText定位
- 基于PartialLinkText定位
- 基于CssSelector定位
- 基于XPath定位
简述除了具有WebDriver原生的定位策略,Protractor提供了哪些新的定位策略
- 基于binding定位
- 基于model定位
- 基于options定位
- 基于buttonText定位
- 基于repeater定位
- 基于js定位
- 链式调用定位操作
- 使用$和$$
- 自定义定位策略
简述数据驱动测试的优点
- 充分共享数据源
- 可重复性
- 数据与测试代码分离
- 灵活添加数据
Protractor实现多浏览器测试需要Selenium Server间接完成操作,配置Selenium Server环境过程包括哪些步骤
- 安装Java JDK
- 下载Selenium Server Standalone
- 下载浏览器驱动
- 配置Protractor
- 启动Selenium Server
Protractor通过提供3个对象实现对浏览器的操作和元素定位,请简述它们
- browser:代表当前浏览器的一个实例,是一个对WebDriver的包装,主要用于页面浏览以及获得页面信息。
- by:元素定位策略选择器,决定用什么方式定位元素。
- element:功能函数,结合by实现元素定位并返回定位到的元素。
简述自动化测试框架Protractor的特点
- 自动执行等待,无需专门的代码进行页面同步。
- 针对AngularJS提供专有元素定位方式。
- 同时支持AngularJS和非AngularJS的应用。
- 使用相同的JavaScript语言进行开发、单元测试和自动化测试。
- 可以搭配多种BDD测试框架,包括Jasmine,Mocha和Cucumber等。
简述自动化测试的一般实施步骤
- 自动化测试适应性分析
- 自动化测试需求分析
- 自动化测试框架的搭建
- 设计与编写测试脚本
- 测试的持续集成
本文章只是学习记录