多测师讲解 自动化测试理论(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 ...
随机推荐
- Oracle12C创建视图权限不足
授权: GRANT CREATE VIEW TO c##scott; 作者:彼岸舞 时间:2020\06\23 内容关于:Oracle 本文属于作者原创,未经允许,禁止转发
- ElasticsSearch初装 环境Win10
步骤: 1.从 http://how2j.cn/frontdownload?bean.id=1694 下载6.22 版本 2.双击elasticsearch.bat启动ElasticsSearch [ ...
- 20190923-04Linux用户管理命令 000 012
useradd 添加新用户 1.基本语法 useradd 用户名 (功能描述:添加新用户) useradd -g 组名 用户名 (功能描述:添加新用户到某个组) 2.案例实操 (1)添加一个用户 [ ...
- 原生JDK网络编程- Buffer
Buffer用于和NIO通道进行交互.数据是从通道读入缓冲区,从缓冲区写入到通道中的.以写为例,应用程序都是将数据写入缓冲,再通过通道把缓冲的数据发送出去,读也是一样,数据总是先从通道读到缓冲,应用程 ...
- flutter vscode 安卓打包apk文件
配置 VSCode默认是没有使用密钥签名的,往往我们在正式项目中是需要签名的.那就创建好了...所以需要自己创建并使用密钥签名 步骤一 创建密钥库 执行以下命令: keytool -genkey -v ...
- 如何把Github上好的项目pull到本地或者fork到本地(码云仓库同理)?
首先Github账户的注册我就不想再啰嗦了,我想大家都会的. 其次怎么把自己的项目push到自己的Github仓库请参考我的另一篇博客: 如何把自己开发的项目上传到GitHub仓库或者码云仓库? 最后 ...
- hystrix文档翻译之插件
插件 可以通过实现插件来改变Hystrix的行为.可以通过HystrixPlugins来注册自定义插件,这些插件会被应用到HystrixCommand,HystrixObservableCommand ...
- 【转】Locust-工具核心原理分析
Locust工具在市场上不如Loadrunner / JMeter流行,使用的范围也没有那么广,但不可否认其是一款很不错的工具.我个人觉得Locust使用不是那么广泛,主要是因为一下方式: Locus ...
- 并发编程(八)Lock锁
一.引言 线程并发的过程中,肯定会设计到一个变量共享的概念,那么我们在多线程运行过程中,怎么保证每个先拿获取的变量信息都是最新且有序的呢?这一篇我们来专门学习一下Lock锁. 我们先来了解几个概念: ...
- 使用eclipse启动tomcat,正常模式下可以启动tomcat,却在debug模式下无法启动tomcat 问题解决
这个问题可能是由于eclipse和tomcat的交互而产生的,在以debug模式启动tomcat时,发生了读取文件错误,eclipse自动设置了断点,导致tomcat不能正常启动. 解决方法把brea ...