初识Selenium自动化(为什么要去用自动化?)
什么是自动化测试
- 让程序代替人去验证程序功能的过程
- 自动化测试就是把以人为驱动的测试行为转化为机器执行的一种过程
- 比如说:我们设计好执行脚本,通过驱动连接浏览器去模拟人去操作浏览器一般
为什么要进行自动化测试
- 解决回归测试
- 解决压力测试
- 解决兼容测试
- 提高测试效率,保证产品质量
自动化测试所属分类
- 黑盒测试(功能测试)
- 灰盒测试(接口测试)
- 白盒测试(单元测试)
注意:Web自动化测试属于黑盒测试(功能测试)
自动化测试优缺点
优点:
- 比较少时间运行更多的测试用例
- 自动化脚本可以重复使用
- 减少人为的错误
- 测试数据存储
缺点:
- 不能取代手工测试
- 手共测试比自动化测试发现的缺陷多,实际测试里面,手共bug80%,自动化工具20%(性能和功能)
- 测试人员技能要求,要懂代码
自动化测试过程
自动化测试与软件开发过程从本质上来讲是一样的,无非是利用自动化测试工具(相当于软件开发工具),经过对测试需求的分析(软件过程中的需求分析),设计出自动化测试用例(软件过程中的需求规格),从而搭建自动化测试的框架(软件过程中的概要设计),设计与编写自动化脚本(详细设计与编码),测试脚本的正确性,从而完成该套测试脚本(即主要功能为测试的应用软件)。
自动化测试需求分析
当测试项目满足了自动化的前提条件,并确定在该项目中需要使用自动化测试时,我们便开始进行自动化测试需求分析。此过程需要确定自动化测试的范围以及相应的测试用例,测试数据,并形成详细的文档,以便于自动化测试框架的建立。
自动化测试框架的搭建
所谓自动化测试框架便是像软件架构一般,定义了在使用该套脚本时需要调用哪些文件,结构,调用的过程,以及文件结构如何划分。
而根据自动化测试用例,我们很容易能够定位出自动化测试框架的典型要素
公用的对象
不同的测试用例会有一些相同的对象被重复使用,比如窗口,按钮,页面等。这些公用的对象可被抽取出来,在编写脚本时随时调用。当这些对象的属性因为需求的变更而改变时,只需要修改该对象属性即可,而无需要修改所有的测试脚本
公用的环境
各测试用例也会用到相同的测试环境,将该测试环境独立封装,在各个测试用例中灵活调用,也能增强脚本的可维护性
公用的方法
当测试工具没有需要的方法时,而该方法又会被经常使用,我们便需要自己编写该方法,我们便需要自己编写该方法,以方便脚本的调用
测试数据
也许一个测试用例需要执行很多个测试数据,我们便可以将测试数据放在一个独立的文件中,由测试脚本执行到该用例时读取文件,从而达到数据覆盖的目的。
在该框架中需要将这些典型要素考虑进去,在测试用例中抽取出公用的元素放入已定义的文件,设定好调用的过程
自动化测试分类
- web -(UI)自动化测试
- 接口自动化测试
- 移动(app)自动化测试
- 单元测试--------------自动化测试
什么是Web自动化测试
让程序代替人为去验证web项目功能的过程
什么web项目适合自动化测试
需求变动不频繁
测试脚本的稳定性决定了自动化测试的维护成本。如果软件需求变动过于频繁,测试人员需要根据变动的需求来更新测试用例以及相关的测试脚本,而脚本维护的本身就是一个代码开发的过程,需要修改,调式,必要的时候还要修改自动化测试的框架,如果所花费的成本不低于利用其节省的测试成本,那么自动化测试便是失败的
项目中的某些模块需求变动性很多。我们便可对相对稳定的模块进行自动化测试,而变动较大的仍是用手工测试
项目周期足够长
自动化测试需求的确定,自动化测试框架的设计,测试脚本的编写与调式均需要相当长的时间来完成。这样的过程本身呢个就是一个测试软件的开发过程,需要较长的时间来完成。如果项目的周期较短,没有足够的时间去支持这样的一个过程,那么自动化测试便成为笑谈。
自动化测试脚本可重复使用(项目需要回归调式)
如果费劲心思开发了一套近乎完美的自动化测试脚本,但是脚本的重复使用率很低,至其所消耗的成本大于所创建的经济价值,自动化测试便成为了测试人员的练手之作,而并非是真正产生效益的测试手段了
另外,在手共测试无法完成,需要投入大量时间与人力时也需要考虑引入自动化测试。比容性能测试,配置测试,大数据量输入测试等。
主流测试工具
web自动化测试工具:selenium,QTP,Robot Framework功能自动化测试框架
性能自动化测试工具:loadrunner ,Jmeter
接口自动化测试工具:SoapUI,Postman,Jmeter,restclient
移动(app)自动化测试工具:robotium(Android 自动化测试框架),appium,Monkey(压力测试,随机测试工具)
云测平台:testin
功能测试工具Selenium简介
selenium是一款基于web应用程序的开源测试工具
它支持Firefox,Chrome,IE等众多浏览器
他同时支持Java,C#,Ruby,Python,PHP等众多的主流语言
Selenium特点
- 开源,跨平台,运行在浏览器中
- 简单灵活,支持很多种语言
Selenium核心组件
selenium Core:支持DHTML的测试案列(效果类似数据驱动测试),它是Selenium IDE 和 Selenium的引擎
selenium IEDS是一个Firefox浏览器的一个插件,可以实现对浏览器的简单操作的录制与回放功能。一般用于测试人员在测试过程中发现bug,通过selenium IDE将重测步骤录制下来,快速创建了bug重现版本,从而提供开发人员容易重现bug。IDE除了录制回放外还可以导出录制的脚本,并导出多种语言,不同版本的selenium脚本,供测试人员快速开发脚本
Selenium RC:Selenium Remote Control。Selenium RC 使用的是javascript注入的方式跟浏览器打交道。这样 Selenium RC 需要启动一个Server,然后将操作页面元素的API 转成javascript脚本,再把这段脚本注入到浏览器中去执行。而通过这种javascript注入的方式一来太依赖翻译成javascript质量的好坏,二来javascript存在同源问题。这使测试变得不那么容易。
Selenium Grid:允许同时并行地、在不同的环境上运行多个测试任务,极大地加快Web 应用的功能测试。
Selenium IDE
command:表示要进行打开点击操作所要执行的命令
- open:打开指定的URL,www.baidu.com
- clickAndWait:命令,表示进行点击操作、其中有AndWait表示页面需要进行刷新、
- type:设置输入关键字 美女
- target:执行命令的对象。需要找到link才可以执行 clickAndWait操作。
- 其中target:是按照css或者Xpath的语法在页面寻找到对应元素
1、指的是你当前录制时的开始连接地址。
2、这里就是你的测试用例,刚开始录制好之后都是没有命名的。
3、脚本命令内容,command:方法关键字;Target:元素定位;Value:参数。
4、新建和修改脚本的地方。
5、日志输出。
6、右上角的红色圆,空心的时候表示的正在录制,实心表示录制结束。
五、录制第一个脚本,打开www.baidu.com,再输入框输入Selenium,点击百度一下按钮。我们只需要打开seleniumIDE,然后在Firefox中操作以上步骤,之后打开seleniumIDE关闭录制按钮,生成脚本。
初识Selenium自动化(为什么要去用自动化?)的更多相关文章
- 测试自动化:java+selenium3 UI自动化(2) - 启动Firefox
1. selenium和浏览器 基于selenium的这套自动化体系,其实现关键就在于对于各浏览器的顺畅操作. 事实上当selenium刚开始起家的时候,他使用的还是javascript注入的方式来驱 ...
- 测试自动化:java+selenium3 UI自动化(1) - 环境搭建
1.前言 我大概是在2012年第一次正式接触到自动化测试,那个时候跟随我的团队一起,就当时项目的UI自动化尝试做出了探索. 在我离开那家公司的时候,我们的自动化测试体系仍然难言完美,但是也已经达到了非 ...
- 前端开发自动化工作流工具,JavaScript自动化构建工具grunt、gulp、webpack介绍
前端开发自动化工作流工具,JavaScript自动化构建工具grunt.gulp.webpack介绍 前端自动化,这样的一个名词听起来非常的有吸引力,向往力.当今时代,前端工程师需要维护的代码变得及为 ...
- Selenium基础教程(三)自动化插件Katalon
Katalon-一款好用的selenium自动化测试插件 Selenium 框架是目前使用较广泛的开源自动化框架,一款好的.基于界面的录制工具对于初学者来说可以快速入门:对于老手来说可以提高开发自动化 ...
- Selenium系列(十二) - 自动化必备知识之CSS选择器的详细使用
如果你还想从头学起Selenium,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1680176.html 其次,如果你不懂前端基础知识, ...
- Java+selenium+Firefox/ IE/ Chrome主流浏览器自动化环境搭建
一.java+selenium+firefox 1.环境准备:JDK1.8 2.安装firefox浏览器v59 3.下载驱动:https://github.com/mozilla/geckodrive ...
- selenium(12)-web UI自动化项目实战(PO模式,代码封装)
web UI自动化项目实战-项目 项目使用禅道,所以你需要搭建1个禅道,搭建禅道的方法和步骤见 https://www.cnblogs.com/xinhua19/p/13151296.html 搭建U ...
- 初识TPOT:一个基于Python的自动化机器学习开发工具
1. TPOT介绍 一般来讲,创建一个机器学习模型需要经历以下几步: 数据预处理 特征工程 模型选择 超参数调整 模型保存 本文介绍一个基于遗传算法的快速模型选择及调参的方法,TPOT:一种基于Pyt ...
- python+selenium,实现带有验证码的自动化登录功能
python+selenium的环境准备,请自行安装完成,这里直接贴代码,方便做项目时直接使用. import time from selenium import webdriver from PIL ...
- python + selenium + unittest实现简单的UI自动化
使用的版本是python 3,其中HTMLTestRunner是修改版本,参考以下博客并下载 https://blog.csdn.net/zhanin123/article/details/78950 ...
随机推荐
- Python 机器学习入门:数据集、数据类型和统计学
机器学习是通过研究数据和统计信息使计算机学习的过程.机器学习是迈向人工智能(AI)的一步.机器学习是一个分析数据并学会预测结果的程序. 数据集 在计算机的思维中,数据集是任何数据的集合.它可以是从数组 ...
- 来世再不选Java!
危机感 距离上一次找工作面试已经过去快2年了,那时候正值疫情肆虐,虽然还未感受到"寒潮来临"的苗头,但最终还是成功通过了几轮面试,顺利签约.在目前公司待了2年了,在大环境的影响下, ...
- 【PySide6】QChart笔记(三)—— QPieSeries的使用
一.QPieSeries简介 1. 官方描述 https://doc.qt.io/qtforpython-6/PySide6/QtCharts/QPieSeries.html 一个饼图序列(QPieS ...
- Vivado生成bitstream时报错[Opt 31-67] Problem: A LUT3 cell in the design is missing a connection on input pin I1, which is used by the LUT equation
这个原因主要是因为有一个引脚没有用到,解决方法. 1.打开Schematic. 2.根据提示的模块去找,比如说我的报错. [Opt 31-67] Problem: A LUT3 cell in the ...
- iOS APP包分析工具
介绍 分享一款用于分析iOSipa包的脚本工具,使用此工具可以自动扫描发现可修复的包体积问题,同时可以生成包体积数据用于查看.这块工具我们团队内部已经使用很长一段时间,希望可以帮助到更多的开发同学更加 ...
- Opencv实例练习
实例所用的函数可在另一篇文章查询: https://www.cnblogs.com/Zhouce/p/17867164.html 1.图像读取 1 import cv2 # 引入opencv库 2 ...
- 为啥不建议用BeanUtils.copyProperties拷贝数据
在实际的业务开发中,我们经常会碰到VO.BO.PO.DTO等对象属性之间的赋值,当属性较多的时候我们使用get,set的方式进行赋值的工作量相对较大,因此很多人会选择使用spring提供的拷贝工具Be ...
- MySQL 8.0.32 InnoDB ReplicaSet 配置和手动切换
1.环境准备 主库:192.168.137.4 mytest3 从库:192.168.137.5 mytest4 MySQL: 8.0.32 2.配置 ReplicaSet 实例 启动 mysql s ...
- AD域配置和域用户登录
DSC控制台连接域服务器的基准DN选中域服务器会显示 客户端电脑无法连接服务器时将DNS填写成域服务器IP,并将网络改成自动获取
- 数字孪生和GIS融合会为各自带来什么样的改变?
数字孪生和地理信息系统(GIS)是两个强大的技术,它们在各自领域发挥着重要作用.而当数字孪生与GIS融合时,将会为它们带来更加深远的改变和增益. 数字孪生技术以数字化的方式模拟和复制现实世界中的物理对 ...