初识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 ...
随机推荐
- SNN_文献阅读_Spiking Deep Convolutional Neural Networks for Energy-Efficient Object Recognition
两种方法将CNN转化成为SNN: 直接训练一个类似CNN架构的SNN「虽然有类似于STDP等无监督方法,但是处于起步状态」 训练初始的CNN,将训练得到的权重直接应用于类似于CNN架构的SNN「将CN ...
- 比较Spring Security6.X 和 Spring Security 5.X的不同
项目使用了SpringBoot3 ,因此 SpringSecurity也相应进行了升级 版本由5.4.5升级到了6.1.5 写法上发生了很大的变化,最显著的变化之一就是对 WebSecurityCon ...
- 【开源】int,long long去一边去:高精度大合集!
加法 \(add\) string add(string s1, string s2) { //时间复杂度 O(log n) string res = ""; int c = 0, ...
- Linux删除‘-’开头的文件
版权声明:原创作品,谢绝转载!否则将追究法律责任. ----- 作者:kirin 先看两个特殊文件(以--开头) [root@kirin ~]# ll total 0 -rw-r--r-- 1 roo ...
- json数组根据某属性去重
数据: let arry = [ {name: "张三", age: 23, work: '计算机'}, {name: "王五", age: 29, work: ...
- 报错Error running 'Tomcat 9.0.68': Can't find catalina.jar【解决办法】
修改tomcat路径,肯定是你移动了jar包在硬盘的位置 将路径改成当前所在的文件位置
- .NET企业应用安全开发动向-概览
太长不读版:试图从安全的全局视角触发,探讨安全的重要性,讨论如何识别安全问题的方法,介绍.NET提供的与安全相关的基础设施,以及一些与时俱进的安全问题,为读者建立体系化的安全思考框架. 引言 关于&q ...
- 有序对的LCP
求\(\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{n} LCP(s_i, s_j)\) 方法一 \(1.\)Trie . \(2.\)求\(cnt\),\(cnt[ ...
- ConcurrentModificationException日志关键字报警引发的思考
本文将记录和分析日志中的ConcurrentModificationException关键字报警,还有一些我的思考,希望对大家有帮助. 一.背景 近期,在日常的日志关键字报警分析时,发现我负责的一个电 ...
- [ICPC2015WF] Tours
题目描述 The Arca Carania Mountain national park is opening up for tourist traffic. The national park ha ...