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 语言基础之函数
函数的定义: 函数就是定义在类中的具有特定功能的一段独立小程序 函数也称为方法 函数定义格式: 修饰符 返回值类型 函数名(参数类型 形式参数1, 参数类型 形式参数2,...) { 执行语句; re ...
- 我的Android进阶之旅------>解决DownloadManager报错java.lang.SecurityException: Invalid value for visibility: 2
1.问题描述 今天使用Android系统的DownloadManager进行下载操作时,爆了如下所示的错误: java.lang.RuntimeException: Unable to start s ...
- mysql进阶(一)
本节目录 1.视图 2.存储过程 3.函数 4.事务 5.触发器 6.流程控制语句 1.视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用 ...
- centos上源码安装clang 3.8
之前想在centos系统上安装clang 3.6版本,由于yum上版本太低,想通过源码编译安装.按照网上说的源码安装步骤,下好llvm.clang.clang-tools-extra和compiler ...
- 关于\r和\n的区别
回车和换行来源 在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符.但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两 ...
- vue指令详解
一.vue简绍 1. Vue.js是什么 Vue.js也称为Vue,读音/vju:/,类似view,错误读音v-u-e. 版本分为v1.0 和 v2.0 2.Vue.js的特点 1. 是一个构建 ...
- day13 迭代器
迭代器 'iterable' 可迭代的 内部含有__iter__方法的数据类型就是可迭代的 —— 可迭代协议 print(dir([])) print(dir({})) print(dir(5)) p ...
- PHPcms 调用命令的基本格式:
PHPcms 调用命令的基本格式: 开始:{pc:content action="模块操作名" catid="调用栏目ID" num="数据调用数量& ...
- LeetCode:翻转二叉树【226】
LeetCode:翻转二叉树[226] 题目描述 翻转一棵二叉树. 示例: 输入: 4 / \ 2 7 / \ / \ 1 3 6 9 输出: 4 / \ 7 2 / \ / \ 9 6 3 1 题目 ...
- python入门三:文件操作
一.文件操作 1.文件对象:和c一样,要想对一个文件进行操作,需要获取该文件的对象 f = open("xxx") # 打开文件并获取文件对象 f.xxx # 对文件进行某些操作 ...