Selenium学习笔记(1) - 自动化测试体系与原理
技术体系
- 基于代码的测试(Code-Based Testing)
- 基于协议的测试(Protocol-Based Testing)
- 基于界面的测试(GUI-Based Testing)
工作原理
- 基于代码
- 定义期望结果
- 调用被测对象
- 对比实际结果
难点:1.前置条件或环境的准备;2.被测代码又大量的异常
- 优点:1.容易实施;2.原理简单;3.不需要太复杂的编程能力
- 基于协议
- 并非直接调用代码,而是模拟用户发送数据包
- 典型的接口测试,偏黑盒
- 非常清楚协议的工作过程
- 能够利用编程语言来操作协议
- 经常用于安全性测试,可靠性测试,性能测试,功能测试
- 多线程,基于协议的测试方法
- 基于界面
- 对象识别
- 坐标定位:按键精灵
- 图像识别:Sikuli IDE
- 特征识别:最稳定的手段
软件测试分类
- 根据项目流程分:单元测试-》集成测试-》系统测试-》验收测试
- 白盒测试、黑盒测试、灰盒测试
- 功能测试(逻辑功能测试,界面测试,易用性测试,安装测试,兼容性测试等)、性能测试(时间性能,空间性能)
- 手工测试、自动化测试(功能自动化测试,性能自动化测试)
- 冒烟测试、回归测试、随机测试、探索性测试和安全测试
分层的自动化测试

- 单元自动化测试(70%)
- Java:Junit、TestNG
- C#:NUnit
- Python:unittest、pytest
- 接口自动化测试(20%)
- 内部接口
- 浏览器与服务器的接口。前端调用后端接口获得所需要的数据,通常通过HTTP协议实现前后端的数据传递
- HTTP协议测试:HttpUnit、Postman
- Webservice协议测试:SoapUI
- 外部接口
- 指调用的接口由第三方系统提供。例如第三方登录,第三方支付等。
- 内部接口
- UI 自动化测试(10%)
- UI展示层:UFT、Watir、Robot Framework、Selenium等
- 前端代码:QUnit,针对 JavaScript 的一个强大的单元测试框架
什么样的项目适合自动化测试
- 软件需求变动不频繁
- 项目周期较长
- 自动化测试脚本可重复使用
自动化测试工具简介
- 代码级
- 单元测试框架:JUnit,GoogleTest,TestNG,PyUnit,CppUnit...
- 协议级
接口,性能,安全:SoapUI,JMeter,HP-LoadRunner,IBM-RPT,AppScan...
- 界面级
- HP-QTP,Selenium,IBM-RFT,Sikuli IDE,Robot Framework...
前端技术介绍
- HTML
- JavaScript
- XML
前端工具介绍
- FireBug
- FirePath
- Chrome开发人员工具
***微信扫一扫,关注“python测试开发圈”,了解更多测试教程!***
Selenium学习笔记(1) - 自动化测试体系与原理的更多相关文章
- ZooKeeper学习笔记(二)——内部原理
zookeeper学习笔记(二)--内部原理 1. zookeeper的节点的类型 总的来说可以分为持久型和短暂型,主要区别如下: 持久:客户端与服务器端断开连接的以后,创建的节点不会被删除: 持久化 ...
- Netty 学习笔记(1)通信原理
前言 本文主要从 select 和 epoll 系统调用入手,来打开 Netty 的大门,从认识 Netty 的基础原理 —— I/O 多路复用模型开始. Netty 的通信原理 Netty 底层 ...
- Selenium 学习笔记(一)
selenium 学习整理 初学者,如果有不当得地方请指出,非常感谢. 准备事项: 1. Python 安装包 安装Python,并勾选添加环境变量. 安装完成后,打开dos窗口,输入python,看 ...
- TensorFlow学习笔记之--[compute_gradients和apply_gradients原理浅析]
I optimizer.minimize(loss, var_list) 我们都知道,TensorFlow为我们提供了丰富的优化函数,例如GradientDescentOptimizer.这个方法会自 ...
- Web自动化测试Selenium 学习笔记(一)
1.Web自动化测试简介自动化基础:自动化用例编写.Selenium优势及原理.自动化环境搭建Selenium基础:常见8大元素定位(表格).常见元素处理.下拉框元素处理.不同窗口切换.元素进阶.元素 ...
- 【学习笔记】大数据技术原理与应用(MOOC视频、厦门大学林子雨)
1 大数据概述 大数据特性:4v volume velocity variety value 即大量化.快速化.多样化.价值密度低 数据量大:大数据摩尔定律 快速化:从数据的生成到消耗,时间窗口小,可 ...
- selenium学习笔记11——driver.get(url) 页面加载时间太长
在执行自动化测试用例过程中,发现因为网络慢或其他原因导致driver.get(url) 时,页面一直在加载,页面没有加载完成就不会去继续执行下面的动作,但是实际上需要操作的元素已经加载出来了. 解决方 ...
- selenium 学习笔记 ---新手学习记录(1) 问题总结
说明:每次学习各种语言时,环境搭建访问国外网址最头疼了,现在只要是工具下载好放到自己网盘,可以随时用. 1.首先工具准备,selenium需要用到的 下载地址 访问密码 ff8f 2.我选择的语言时j ...
- Three.js 学习笔记(1)--坐标体系和旋转
前言 JavaScript 3D library The aim of the project is to create an easy to use, lightweight, 3D library ...
随机推荐
- Java实现对List去重
方式一,使用for循环遍历去除List中的重复元素代码如下 public static void main(String[] args) { Test07 test07 = new Test07(); ...
- 转!!Java设置session超时(失效)的时间
Java设置session超时(失效)的时间 在一般系统登录后,都会设置一个当前session失效的时间,以确保在用户长时间不与服务器交互,自动退出登录,销毁session具体设置的方法有三种:1 ...
- flannel源码分析---初始化部分
// main.go 1.func main() ..... 首先调用sm, err := newSubnetManager()创建subnet manager .... 调用ctx, cancel ...
- Django内置分页器
分页 在Django中实现分页功能非常简单.因为Django已经内置了两个处理分类的类.分别是Paginator和Page.Paginator用来管理整个分类的一些属性,Page用来管理当前这个分页的 ...
- 安全必须作为基础,融入到产品开发过程——By Me
安全必须作为基础融入,让公司兄弟姐妹具备足够的安全意识,且逐渐具备必要的安全经验,带着安全思维去执行产品的架构设计.研发.测试.运维(甚至完整的产品生命周期),这是一种有远见.负责人的产品过程!! 下 ...
- mui请求数据
var rh = new Object(); rh.ReqId = "ls123"; rh.Salt = "sssseee"; var rb = new Obj ...
- 启动一个支持文件上传的HTTP-Server
Python实现,源码来自网络,代码内部有作者信息. HTTP方式共享文件,对于不需要用户名和密码验证的系统非常方便.通过浏览器就可以实现文件上传和下载.非常适合用作测试系统的脚手架. 对于系统使用c ...
- tarball源码安装
软件最原始的安装方法 用tarball来安装升级make命令执行make ,会在当前路径下搜索makefile这个文本文件,这个文件中记录了源码如何编译的详细信息.软件开发商通常会写一个检测程序,检测 ...
- Swap 2 Variables in Python
In Python, it's concise, easy and faster to swap 2 variables compared in other Programming languages ...
- iOS学习之应用偏好设置
如今,即便是最简单的计算机程序也会包含一个偏好设置窗口,用户可以在其中设置应用专属的选项.在MAC OS X中,Preferences...菜单通常位于应用菜单中.选择该菜单项会弹出一个窗口,用户可以 ...