多测师讲解 自动化测试理论(1)_高级讲师肖sir
自动化测试理论
什么是自动化测试?
广义的:通过工具或程序替代或辅助人工测试的行为叫自动化测试
狭义的:通过工具录制或编写脚本模拟手工测试的过程,通过回放或运行脚本执行测试用例,从而代替人工对系统的功能验证。
分层自动化测试
金字塔模型:UI层,接口层,单元测试层。大多数人认为自动化测试就是产品UI自动化测试,其实不是的。UI自动化测试只是3层中的最上一层,操作简单,投入比例少,价值最低,我们倡导根据产品开发阶段分别进行自动化测试
UI层:关注模拟用户操作
接口层:关注函数,方法提供的接口是否可靠
调用函数或方法,进行传参,查看返回值是否正确。
接口测试通过url进行传递,通过get方式向服务器发起请求,服务器接收请求,返回值是否正确
单元测试层:主要关注代码实现逻辑
投入比例和价值体现
UI接口自动化:投入10%,全面UI自动化测试不现实,考虑人力,时间,资金投入,维护成本高(页面元素层级改变),价值低。但又并不可少,UI层直接呈现给用户。
接口自动化:投入20%,价值居中。
单元测试自动化:投入70%,价值最高,需求变动不大,如果有,也是直接增减用例。
自动化测试的必要性
目前测试行业的普遍现状
手工测试的人员占测试行业80%,主要还是测试入门门槛低,虽然测试人员对专业知识有一定的广度,但缺乏深度,这也是开发自认清高的原因。目前手工测试人员已经有一定的饱和,初级,门槛低,技术含量低等各种标签,那么被淘汰的可能性也会相应的增加,要想不被淘汰,那么提升自己就很有必要了。自动化测试就是一个很好的选择。
什么项目适合做自动化测试
需求变动不频繁
每一次需求变动,需要更新测试用例和测试脚本,脚本的维护本身就是一个花费时间的过程,比如修改,调试都会花很多时间。
项目周期时间长
需求的确定,测试框架的设计,用例的编写,调试需要相当的时间去完成
自动化脚本重复使用
自动化脚本根据项目本身,c/s,,b/s不同的架构,选择的自动化工具也可能不同。最重要的是脚本可以在以后的日子里重复使用,如果只是一次性的,那就失去了原本的价值。
选择什么工具做自动化测试
看你做什么项目,是桌面程序(c/s架构)web应用(b/s架构)
C/s架构 测试工具:QTP autorunner
B/s架构 测试工具:QTP Autorunner robotframework watir selenium
目前流行robotframework和 selenium,selenium支持多语言。 如果选择了selenium ,那么就需要学习一门语言,selenium支持多语言开发,java,c#,rube,python,php.
了解selenium
Selenium1.0
Selenium是一个开源的web功能测试工具。selenium核心是用javascript写的。通过javascript代码注入与浏览器进行交互。javascript全程管理测试流程,例如导入套件,执行用例,记录执行结果。Javascript与浏览器进行通信,浏览器执行,模拟用户真实的操作,包括浏览页面,点击链接,输入内容,提交表单等事务,从而达到自动化测试目的。
selenium是一个工具,这个工具分1.0,2.0,3.0,三个版本。
Selenium的组成
SeleniumIDE
一个浏览器插件,实现浏览器录制回放功能。
Selenium Grid
并行执行用例,通过一台主机控制用例在不同的环境,浏览器中运行
seleniumRC
核心,编写测试脚本,通过seleniumRC服务器作为代理服务器访问应用达到测试目的。
SeleniumRC组成
Seleniumclient,seleniumserver
seleniumclient编写测试脚本,seleniumclient库控制seleniumserver库。
Seleniumserver分launcher,http proxy,core
launcher:发射器,用于启动浏览器,把core加载到浏览器页面中,并把服务器代理设置selenium server的http proxy.
http proxy: seleniumserver 代理
Core:js函数集合
Selenium2
Selenium2=selenium1+webdriver
Selenium2核心是webdriver, webdriver取代了seleniumRC.
Webdriver和seleniumRC的区别
SeleniumRC核心是selenium Core,把core,也就是js函数,加载到浏览器页面中,使用js执行selenese命令,webdriver是使用原生api进行封装成selenium webdriver api直接控制浏览器。两者最大区别就是一个采用js代码注入浏览器页面技术,一个是用原生api进行封装成selenium webdriver api 控制浏览器。
学习selenium需要学习元素定位方法
元素定位提供了id,name,classname,tagname,link text,partial link text,xpath,css定位方法。还有javascript,jquery,xpath,css使用较难,但功能强大。
定位元素的目的是操作元素。例如输入框,下拉框,按钮点击,文件上传,对话框,单选多选按钮。
当用例写的多了,会发现很多关键字都是常用的,有些步骤都是重复的,就会学习案例分层。
当用例写的多了,维护脚本就成了问题,那么就会把所有变量提取出来,统一放在一个变量文件中。这样方便脚本维护
用例是流水线的,自己执行的用例如何判断执行成功了,那么就会学习脚本中一些验证和断言。
多测师讲解 自动化测试理论(1)_高级讲师肖sir的更多相关文章
- 多测师讲解自动化测试 _RF连接数据库_高级讲师肖sir
RF连接数据库:1.Connect To Database(连接数据库)2.Table Must Exist(表必须存在)3.Check If Exists In Database(查询某条件是否存在 ...
- 多测师讲解自动化测试_rf测试报告_高级讲肖sir
(一)运行失败 1.1 1.2 用例失败log 2.3Repor 1.4Output (二)运行成功 (三)分析报告 3.1 log: 3.2Report (测试报告) 3.3 Output
- 多测师讲解requests __介绍_高级讲师肖sir
我们今天讲解的内容 一.什么是Requests? Requests是用Python语言编写的简单易用的HTTP库,用来做接口测试的库. 二.安装requests库 1.按住Windows标志+r,在运 ...
- 多测师讲解 _requests安装问题解决_高级讲师肖sir
步骤一:"dos下新建一个pip文件,在文件下建一个pip.ini 文件,步骤二:文件中内容[global]index-url=http://mirrors.aliyun.com/pypi/ ...
- 多测师讲解requests __中_高级讲师肖sir
(1)生成报告 import unittest #导入单元测试框架 import requests #导入接口库 import time # #时间戳,导入time模块 from api.HTMLTe ...
- 多测师讲解requests __上_高级讲师肖sir
1.三种接口接口请求方式 # # 在python当中接口的请求方式有哪些:# import requests # 导入requests接口库# # # # 请求方式有三种:# # # # 第一种:# ...
- 多测师讲解自动化测试 _RF分配id_高级讲师肖sir
1.Assign Id To Element.
- 多测师讲解自动化 _rf 变量_高级讲师肖sir
rf变量 log 打印全局变量 列表变量: 字典变量: 查看当前工程下的变量 紫色表示变量名有误 设置全局变量 设置列表变量 设置字段变量 关键字书写格式问题
- 多测师讲解seleniun_ ACTIONCHAUNS定位_高级讲师肖sir
1.传统方法定位 2.模拟鼠标定位
- 多测师讲解selenium_iframe框定位_高级讲师肖sir
iframe 框定位方法: 查看iframe框 京东点击登录定位元素 定位qq: qq登录定位的元素 查找iframe框 定位iframe框 from selenium import webdrive ...
随机推荐
- shell知识点:${} 的神奇用法
为了完整起见,我这里再用一些例子加以说明 ${ } 的一些特异功能:假设我们定义了一个变量为:file=/dir1/dir2/dir3/my.file.txt我们可以用 ${ } 分别替换获得不同的值 ...
- kali linux 开启ssh服务
kali linux 一般默认不开启ssh服务,可使用命令查看ssh服务是否开启 命令:service ssh status 如果显示ssh服务没有开启需要修改ssh配置文件将ssh服务开启,kali ...
- TP6.0 一对一模型关联 belongsTo 相对关联(反向关联)
1. 创建数据表 一对一反向关联使用率很高 附表关联主表称为反向关联,又称为相对关联(tp官方手册这样叫) -- 分类表 CREATE TABLE `category` ( `id` int(10) ...
- 一文解开java中字符串编码的小秘密
目录 简介 Unicode的发展史 Unicode详解 UTF-8 UTF-16 UTF-32 Null-terminated string 和变种UTF-8 简介 在本文中你将了解到Unicode和 ...
- mongodb3.4.5用http访问28017端口
4.要想用28017去访问,百度说必须开启http服务 4.1.前提: windows下安装mongodb必须装在没有中文和空格的目录下,我直接装在了D盘根目录 删掉MongoDB\Server\3. ...
- STL(常用)
STL 简单记录.讲解一些初级阶段常用的用法. STL是C++的一个标准模板库,其中包含了许多在计算机领域常用的基本数据结构以及基本算法.STL主要依赖于模板,使得STL具有广泛的通用性.这篇文章旨在 ...
- three.js学习3_相机相关
Three.Camera Camera是所有相机的抽象基类, 在构建新摄像机时,应始终继承此类. 常见的相机有两种类型: PerspectiveCamera(透视摄像机)或者 Orthographic ...
- vue项目初始化自定义webpack与eslint
文章目录 问题 简化步骤 问题 // main.js import Antd from "ant-design-vue"; import "ant-design-vue/ ...
- 处理IOS浏览器在input或者textarea获取焦点后底部留一块灰色空白区域的bug
document.body.addEventListener('focusout',function() { window.scrollTo(0,0) },false);
- Redis中String类型的相关命令操作
String append 如果key已存在,则直接在value追加值,如果key不存在,则会插件一个新的value为空的key,然后在追加 127.0.0.1:6379> set name l ...