web自动化测试

本文探讨了Web技术的发展,包括Ajax的使用如何提升服务器响应速度和JavaScript在前端交互中的核心作用。同时,指出传统手工测试的局限性,如效率低、覆盖不全等问题,并介绍了测试用例的挂起方式、Jasmine Spies的使用方法以及AngularJS自定义指令的调用方式。此外,详述了JavaScript单元测试中的异步代码形式和$controller的参数作用。还讨论了代码覆盖率的衡量标准,AngularJS组件Controller、Service、Directive的功能,以及ngMock在测试中的应用。自动化测试的优势和适用项目类型也被提及,同时列举了Selenium WebDriver的定位策略和Protractor的定位及测试工具。最后,总结了数据驱动测试的好处以及Protractor实现多浏览器测试的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简述Web技术的发展与挑战

在现代Web应用中,当网页部分内容需要更新时,运行在浏览器内的JS代码通常会向服务器发送Ajax请求;在现代Web应用中,服务器负荷降低,响应速度也更快了;JavaScript最初目的是为了满足用户浏览页面时产生的交互需求;JavaScript有着强大的语言特性,是一种面向过程的动态语言;基于JavaScript前端应用越来越重要,功能越来越复杂,对前端开发测试带来了极大的挑战。

简述传统手工测试的局限性

1.重复性工作,测试质量低

2.测试效率低

3.无法保证覆盖代码全路径

4.无法有效兼顾多浏览器、多平台

简述三种测试用例的三种挂起方式

 

 

 简述Jasmine Spies的6种使用方式

使用spy跟踪函数的调用

使用spy调用实际函数

使用spy控制函数的返回结果

使用spy将实际函数替换成新函数

创建新的spy函数

创建spy对象

简述AngularJS自定义指令的各种调用方式

  1. 元素名<runoob-directive></runoob-directive>
  2. 属性<div runoob-directive></div>
  1. 类名<div class="runoob-directive"></div>
  2. 注释<!-- directive: runoob-directive -->

 简述JavaScript单元测试需要考虑的三种异步代码形式。 

  1. 包含调用setTimeout或setInterval的代码。
  2. 需要花费一点时间才能显示的界面效果,例如网页元素的淡入淡出。
  3. Ajax调用。

$controller是一个函数,获得$controller的实例后就可以调用它来得到被测应用的Controller的实例。它主要接受三个参数:$controller(constructor, locals, [bindings])。分别简述三个参数的具体作用。

  1. 通过回调函数创建匿名Controller
  2. 使用locals注入Controller的依赖组件
  3. 使用bindings初始化Controller

简述代码覆盖率的衡量标准

  1. 函数覆盖率
  2. 语句覆盖率
  3. 分支覆盖率
  4. 条件覆盖率

简述AngularJS的组件Controller、Service、Directive的作用

Controller:它的主要作用是向视图传递数据、操作页面逻辑和增强视图。

Service:它的主要作用是封装业务逻辑。

Directive:它的主要作用是操作DOM

简述AngularJS的测试专用的软件包ngMock里的两个主要函数的作用

   

函数

描述

angular.mock.module

在单元测试中加载模块

angular.mock.inject

在单元测试中注入依赖组件

简述前端自动化任务构建工具gulp相较于grunt优点  

  1. 易用
  2. 高效
  3. 高质量
  4. 易学

简述自动化测试的优势

  1. 充分利用硬件资源
  2. 充分调动测试人员的积极性
  3. 有效实施数据驱动的测试
  4. 高效的回归测试
  5. 一致性
  6. 测试脚本具有可复用性

简述具有哪些特点的项目比较容易实施自动化测试

  1. 需求较稳定
  2. 较大型项目
  3. 测试人员良好的编程经验
  4. 良好的团队合作

简述+++工具套装内的包括哪些部分

简述Selenium WebDriver可以由哪些编程语言驱动,并且测试方案已经非常成熟

C#,NUint,java,TestNG

简述WebDriver提供的哪些函数可以用来定位单个、多个页面元素

FindElement

  1. 如果没有找到任何符合查找条件的元素,则抛出NoSuchElementException异常。
  2. 如果找到一个相符元素,则返回对应的IWebElement对象。
  3. 如果找到多个相符元素,则返回第一个IWebElement对象。

FindElements

  1. 如果没有找到任何符合查找条件的元素,则返回一个列表,里面元素为空。
  2. 如果找到一个相符元素,则返回包含一个IWebElement对象的列表。
  3. 如果找到多个相符元素,则返回包含多个IWebElement对象的列表

简述WebDriver定位页面元素的方式

  1. 基于Id定位
  2. 基于Name定位
  3. 基于ClassName定位
  4. 基于TagName定位
  5. 基于LinkText定位
  6. 基于PartialLinkText定位
  7. 基于CssSelector定位
  8. 基于XPath定位

简述除了具有WebDriver原生的定位策略,Protractor提供了哪些新的定位策略

  1. 基于binding定位
  2. 基于model定位
  3. 基于options定位
  4. 基于buttonText定位
  5. 基于repeater定位
  6. 基于js定位
  7. 链式调用定位操作
  8. 使用$和$$
  9. 自定义定位策略

简述数据驱动测试的优点

  1. 充分共享数据源
  2. 可重复性
  3. 数据与测试代码分离
  4. 灵活添加数据

Protractor实现多浏览器测试需要Selenium Server间接完成操作,配置Selenium Server环境过程包括哪些步骤

  1. 安装Java JDK
  2. 下载Selenium Server Standalone
  3. 下载浏览器驱动
  4. 配置Protractor
  5. 启动Selenium Server

Protractor通过提供3个对象实现对浏览器的操作和元素定位,请简述它们

  1. browser:代表当前浏览器的一个实例,是一个对WebDriver的包装,主要用于页面浏览以及获得页面信息。
  2. by:元素定位策略选择器,决定用什么方式定位元素。
  3. element:功能函数,结合by实现元素定位并返回定位到的元素。

简述自动化测试框架Protractor的特点

  1. 自动执行等待,无需专门的代码进行页面同步。
  2. 针对AngularJS提供专有元素定位方式。
  3. 同时支持AngularJS和非AngularJS的应用。
  4. 使用相同的JavaScript语言进行开发、单元测试和自动化测试。
  5. 可以搭配多种BDD测试框架,包括Jasmine,Mocha和Cucumber等。

简述自动化测试的一般实施步骤

  1. 自动化测试适应性分析
  2. 自动化测试需求分析
  3. 自动化测试框架的搭建
  4. 设计与编写测试脚本
  5. 测试的持续集成

 

 

本文章只是学习记录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值