【测试运维】web自动化全知识点笔记第1篇:什么是Web自动化测试(已分享,附代码)

本系列文章md笔记(已分享)主要讨论Web自动化测试相关知识。了解什么是自动化,理解什么是自动化测试以及为什么要使用自动化测试。具体包含:WebDriver的基本操作,WebDriver的鼠标、键盘操作,下拉选择框、警告框、滚动条操作,frame表单切换、多窗口切换,掌握WebDriver屏幕截图方法。以及自动化测试-高级篇,掌握UnitTest框架的基础使用方法,掌握断言assertEqual、assertIn方法,以及掌握如何生成HTML测试报告方法和基本布尔型断言。

全套笔记和代码自取在个人博客: https://gitee.com/yinuo112/Devops/tree/master/测试/web自动化/1.md

感兴趣的小伙伴可以自取哦,欢迎大家点赞转发~


共 5 章,14 子模块

Web自动化测试

目标

1. 了解什么是自动化
2. 理解什么是自动化测试
3. 为什么要使用自动化测试

1. 什么是自动化?

概念:由机器设备代替人为自动完成指定目标的过程

1.1 优点:

1. 减少人工劳动力
2. 工作效率提高
3. 产品规格统一标准
4. 规模化(批量生产)

2. 什么是自动化测试

概念:让程序代替人为去验证程序功能的过程

2.1 为什么要进行自动化测试?

1. 解决-回归测试
2. 解决-压力测试
3. 解决-兼容性测试
4. 提高测试效率,保证产品质量回归测试:项目在发新版本之后对项目之前的功能进行验证;
压力测试:可以理解多用户同时去操作软件,统计软件服务器处理多用户请求的能力
兼容性测试:不同浏览器(IE、Firefox、Chrome)等等

2.2 自动化测试在什么阶段开始?

功能测试完毕(手工测试)手工测试:就是由人去一个一个输入用例,然后观察结果;
自动化测试所属分类
1. 黑盒测试(功能测试)
2. 灰盒测试(接口测试)
3. 白盒测试(单元测试)提示:Web自动化测试属于黑盒测试(功能测试)
优点
1. 较少的时间内运行更多的测试用例;
2. 自动化脚本可重复运行;
3. 减少人为的错误;
4. 测试数据存储
缺点
1. 不能取代手工测试;
2. 手工测试比自动化测试发现的缺陷更多;
3. 测试人员技能要求;误区:    1). 自动化测试完全替代手工测试2). 自动化测试一定比手工测试厉害3). 自动化可以发掘更多的BUG
为什么要进行自动化测试-总结
1. 自动化测试能代替人为解决繁琐的回归测试验证问题
2. 自动化测试脚本设计一次能重复运行
3. 模拟多用户操作
4. 提高测试效率提示:当然自动化脚本带来的好处不止以上几条,但对于刚接触自动化,了解以上几点足够了;

思考

我们理解了为什么要学习自动化测试,那么在软件测试领域中,自动化测试又有哪些分类呢?

3. 自动化测试分类

1. Web-(UI)自动化测试(本阶段学习)
2. 接口-自动化测试
3. 移动(app)-自动化测试
4. 单元测试-自动化测试

目标

1. 知道什么是自动化测试并能说出优缺点
2. 了解什么是webdriver,能够搭建基于python的webdriver环境
3. 掌握driver对象定位标签元素获取标签对象的方法
4. 了解driver对象常用的浏览器操作方法
5. 掌握action对象等装的鼠标操作 方法
6. 了解Keys中的键盘操作方法 
7. 掌握下拉选择框的操作 方法
8. 掌握警告框处理
9. 了解使用js调用window句柄拖动滚动条
10. 了解显示等待和隐式等待的区别
11. 了解切换表单的方法
12. 知道截图的操作
13. 掌握unittest的四要素使用方法

Web自动化测试

目标

1. 了解什么是Web自动化测试
2. 了解Web自动化测试常用工具

1. 什么是Web自动化测试?

概念:让程序代替人为自动验证Web项目功能的过程

2. 什么项目适合做自动化测试?

1.需求变动不频繁
2.项目周期长
3.项目需要回归测试

3. 如何进行自动化测试?(主流测试-工具)

1. QTP(收费)QTP是商业的功能测试工具,收费,支持web,桌面自动化测试。
2. Selenium(开源)【本阶段学习】Selenium是开源的web自动测试工具,免费,主要做功能测试。
3. Jmeter(开源、Web、接口、性能, 接口测试使用)Jmeter是由Apache公司使用Java平台开发的一款测试工具,支持(Web、接口测试、性能测试)提示:Web测试在通信层(无UI界面)
5. Loadrunner(收费、Web、性能)Loadrunner是商业性能测试工具,收费,功能强大,适合做复杂场景的性能测试
6. Robot frameworkRobot Framework是一个基于Python可扩展地(关键字驱动)的测试自动化框架;

3.1 主流工具-汇结:

Web自动化测试:selenium、robot frameworkApp端自动化测试:Appium、Monkeyrunner、UIautomationPC客户端(win32)自动化测试:QTP接口自动化测试:Jmeter、Postman、httpUnit、RESTClient云测平台:Testin Testbird性能测试:Jmeter、LoadRunner

4. 什么是Selenium?

概念: Selenium是一个用于Web应用程序测试的工具;中文的意思(硒)

4.1 Selenium特点

1. 开源软件:源代码开放可以根据需要来增加工具的某些功能
2. 跨平台:linux 、windows 、mac
3. 核心功能:就是可以在多个浏览器上进行自动化测试
4. 多语言:Java、Python、C#、JavaScript、Ruby等
5. 成熟稳定:目前已经被google , 百度, 腾讯等公司广泛使用
6. 功能强大:能够实现类似商业工具的大部分功能,因为开源性,可实现定制化功能

4.2 Selenium家族(发展史) 【了解】

senium

重点:    1. SeleniumIDE2. Selenium2.0(WebDriver)

WebDriver概述、 环境搭建

目标

1. 了解WebDriver概述
2. WebDriver环境搭建

1. 什么是WebDriver?

1. Webdriver (Selenium2)是一种用于Web应用程序的自动测试工具;
2. 它提供了一套友好的API;
3. Webdriver完全就是一套类库,不依赖于任何测试框架,除了必要的浏览器驱动;说明:API:应用编程接口说明(WebDriver类库内封装非常多的方法,要使用这些方法,就需要友好的调用命名规则)

1.1 WebDriverAPI 支持的浏览器

1. Firefox (FirefoxDriver)【推荐-本阶段学习使用】
2. IE(InternetExplorerDriver)
3. Opera(OperaDriver)
4. Chrome (ChromeDriver)
5. safari(SafariDriver)
6. HtmlUnit (HtmlUnit Driver)提示:Firefox、Chrome:对元素定位和操作有良好的支持,同时对JavaScript支持也非常好。IE:只能在windows平台运行,所有浏览器中运行速度最慢HtmlUnit:无GUI(界面)运行,运行速度最快;推荐原因:1. Selenium IDE2. FireBug3. 对WebDriver API支持良好

1.2 WebDriverAPI 支持的开发语言

官网文档:https://docs.seleniumhq.org/docs/03_webdriver.jsp


1. Java
2. Python
3. PHP
4. JavaScript
5. Perl
6. Ruby
7. C# ```## 2. 环境搭建### 2.1 为什么要环境搭建?```python
1. 盖房子
2. MP3
3. 开发语言

2.2 基于Python环境搭建

1. Windows系统
2. Python 3.5(以上版本)
3. 安装selenium包
4. 浏览器
5. 安装PyCharm说明:Python3 和PyCharm咱们上阶段课已使用,在这里不在重复;
2.3 selenium 安装、卸载、查看命令
安装:pip install selenium==2.48.01). pip:通用的 Python 包管理工具。提供了对 Python 包的查找、下载、安装、卸载的功能。 2). install: 安装命令3). selenium==2.48.0: 指定安装selenium2.48.0版本(如果不指定版本默认为最新版本)
卸载:pip uninstall selenium
查看:pip show selenium

注意: 在安装selenium时,前提是Python3.5以上版本安装完毕且能正常运行

2.4 火狐浏览器【推荐】
1. FireFox 48以上版本Selenium 3.X +FireFox驱动——geckodriver
2. Firefox 48 以下版本Selenium2.X 内置驱动
2.5 谷歌浏览器
selenium2.x/3.x +Chrome驱动

chromewebdriver

2.6 浏览器-总结

各个驱动下载地址: http://www.seleniumhq.org/download/

1. 浏览器的版本和驱动版本要一致! (如果是32bit浏览器而Driver是64bit则会导致脚本运行失败!)
2. 浏览器驱动下载好后需要添加Path环境便令中,或者直接放到Python安装目录,因为Python以添加到Path中
3. 推荐使用火狐浏览器(2435)

3. 总结

1. WebDriver是什么?
2. 为什么要搭建环境?
3. selenium 安装、卸载、查看命令
4. 为什么推荐火狐浏览器和火狐48版本以下

学习目标

掌握driver对象定位标签元素获取标签对象的方法

了解driver对象常用的浏览器操作方法

#### 2.5 谷歌浏览器```python
selenium2.x/3.x +Chrome驱动

[外链图片转存中…(img-Qv97FnMj-1706958678520)]

2.6 浏览器-总结

各个驱动下载地址: http://www.seleniumhq.org/download/

1. 浏览器的版本和驱动版本要一致! (如果是32bit浏览器而Driver是64bit则会导致脚本运行失败!)
2. 浏览器驱动下载好后需要添加Path环境便令中,或者直接放到Python安装目录,因为Python以添加到Path中
3. 推荐使用火狐浏览器(2435)

3. 总结

1. WebDriver是什么?
2. 为什么要搭建环境?
3. selenium 安装、卸载、查看命令
4. 为什么推荐火狐浏览器和火狐48版本以下

学习目标

掌握driver对象定位标签元素获取标签对象的方法

了解driver对象常用的浏览器操作方法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/667454.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot RestTemplate 上传文件

SpringBoot RestTemplate 上传文件 Testpublic void testUpload() throws Exception {String url "http://127.0.0.1/file/upload";String filePath "C:\\temp\\1.png";RestTemplate rest new RestTemplate();FileSystemResource resource new FileSys…

【教学类-46-01】吉祥字门贴1.0(华光通心圆_CNKI 文本框 空心字涂色,最好繁体字)

作品展示 背景需求: 马上就要过年了,家家户户大门上贴上对联和福字 我想用正方形红色手工纸(15CM)也做一个幼儿描线版的福字 问题一:福字顺时针旋转45度 打印纸上制作福字,需要让这个字顺时针旋转45度&am…

C语言:简单排序

题目描述 输入11个整数,如果第1个数为1,则将其中的第2至11个数升序排列;如果第1个数为0,则降序排列。 输入格式 输入一行,包含11个整数,用空格符分隔。 输出格式 输出1行,包含10个顺序排列的整…

Qt程序设计-使用QSplashScreen制作开机界面

目录 QSplashScreen简介 实例演示 QSplashScreen简介 在Qt中,QSplashScreen类就是用来创建启动画面的。它是一个窗口类,可以显示一个图片,并在图片上显示一些文本信息。QSplashScreen类提供了一些方法,可以方便地设置启动画面的图片和文本,以及控制启动画面的显示和隐藏…

【C++栈和队列:数据结构中的经典组合,高效处理先进先出与后进先出问题的最佳方案】

[本节目标] 1. stack的介绍和使用 2. queue的介绍和使用 3. priority_queue的介绍和使用 4. 容器适配器 1. stack的介绍和使用 1.1 stack的介绍 1. stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中,其删除只能从容器的一端进行元素的…

【DC渗透系列】DC-2靶场

arp先扫 ┌──(root㉿kali)-[~] └─# arp-scan -l Interface: eth0, type: EN10MB, MAC: 00:0c:29:6b:ed:27, IPv4: 192.168.100.251 Starting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan) 192.168.100.1 00:50:56:c0:00:08 VMware, In…

DolphinScheduler实现隔几天调度

1.场景分析 dolphinscheduler(海豚)定时器模块-定时调度时每3秒|每3分钟|每3天这种定时,不能够跨分钟,跨小时,跨月,每次跨月等都会从每个月的第1天(第几天开始可以设定)开始重新计时…

Unity3d Cinemachine篇(四)— StateDrivenCamera

文章目录 前言使用StateDrivenCamera根据不同动画切换相机1. 创建一个游戏物体2. 创建StateDrivenCamera相机3. 创建动画4. 设置相机5. 完成 前言 上一期我们简单的使用了FreeLook相机,这次我们来使用一下StateDrivenCamera 使用StateDrivenCamera根据不同动画切换…

PFMEA的具体实施步骤都有哪些——FMEA软件免费

免费试用FMEA软件-免费版-SunFMEA 一、引言 PFMEA(Process Failure Mode and Effects Analysis)是一种用于识别、评估和优先处理生产过程中潜在失效模式的工具。它通过对生产过程中的各个环节进行深入分析,发现可能导致产品不合格、过程不稳…

docker maven插件使用介绍

1、配置docker连接 开放docker tcp连接参考本专栏下令一篇文章 2、docker service窗口 3、根据dockerfile 构建镜像 注意 idea 用通过管理员身份启动,否则连不上docker 构建前添加maven goal 打包 4、运行镜像 创建容器 5、运行docker compose 报错 需要先配置d…

面了昆仑天工大模型算法岗(实习),感觉彻底凉凉。。。

我是过年某985研二,过完年打算找大厂实习 offer,本文章主要记录了本小菜研找实习的坎坷历程。 应聘岗位:昆仑天工大模型算法工程师 面试轮数:第一面 1. 自我介绍 在自我介绍环节,我清晰地阐述了个人基本信息、教育背景…

django微博热搜数据分析与可视化系统python毕业设计

简而言之,数据可视化是以图形方式呈现结构化或非结构化数据,从而将隐藏在数据中的信息直接呈现给人们。但是有一个陷阱:它不仅仅是使用数据可视化工具将数据转化为图形。相反,它是从数据的角度看待世界。换句话说,数据可视化的对象…

(7)【Python/机器学习/深度学习】Deep-Learning模型与算法应用—深度学习基础搭建最小神经网络

目录 一、深度学习使用python建立最简单的神经元neuron 1、人工智能&机器学习&深度学习三者关系 2、机器学习& 深度学习区别 3、神经元 4、最小神经网络模型(神经元/感知器) 5、(案例)Predicting if a person would buy life insurn…

使用vue脚手架构建项目

一、前言 * 创建好vue-cli的环境,下载好vue包依赖* 本文使用环境:vue/cli 5.0.8二、步骤 创建vueTest文件夹,管理员身份运行cmd , 进入到vueTest文件夹 执行命令vue create 你的项目名 ,这里我定义的项目名为: my-project 基于…

基于微信小程序的校园水电费管理小程序的研究与实现

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…

DAY39: 动态规划不同路径问题62

Leetcode: 62 不同路径 机器人从(0 , 0) 位置出发,到(m - 1, n - 1)终点。 基本思路 1、确定dp数组(dp table)以及下标的含义 dp[i][j] :表示从(0 ,0)出发,到(i, j) 有dp[i][j]条…

SpringBoot整合Flowable最新教程(二)启动流程

介绍 文章主要从SpringBoot整合Flowable讲起,关于Flowable是什么?数据库表解读以及操作的Service请查看SpringBoot整合Flowable最新教程(一);   其他说明:Springboot版本是2.6.13,java版本是1…

【QT+QGIS跨平台编译】之二十:【xerces+Qt跨平台编译】(一套代码、一套框架,跨平台编译)

文章目录 一、xerces介绍二、文件下载三、文件分析四、pro文件五、编译实践一、xerces介绍 Xerces是一个开源的XML解析器,由Apache软件基金会维护。它是用Java语言编写的,提供了对XML文档进行解析、验证和操作的功能。Xerces具有高性能和广泛的兼容性,可用于各种Java应用程…

Sentinel应用笔记

概念 当A、B、G、H掉线,其他服务就没法通信了 随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、流量路由、熔断降级、系统自适应过载保护、热点流量防护等多个维度保护服务的稳定性。 特性…

Java 错误 java.net.MalformedURLException: No Protocol

我们将研究 Java 中的错误 java.net.MalformedURLException: no protocol。 为什么会发生这种错误,以及我们如何解决该错误。 Java 中的 java.net.MalformedURLException: no protocol 错误 当我们的 URL 出现问题时,会出现 java.net.MalformedURLExcep…